florykhan/florykhan.github.io
Personal portfolio website built with vanilla HTML, CSS, and JavaScript, featuring curated projects, an interactive narrative timeline, skills & tech stack, and a Formspree-powered contact form.
๐ Personal Website โ Static Portfolio
This repository implements a static personal portfolio site showcasing projects, experience, education, and contact. Deployed to GitHub Pages with automatic CI/CD. Vanilla HTML, CSS, and JavaScript, no framework. Fast, accessible, and zero-cost hosting.
๐ฏ Project Overview
The goal of this project is to:
- Build a clean, fast-loading portfolio site without framework overhead.
- Present projects, experience, education, volunteering, and contact in a clear, scannable layout.
- Deploy reliably via GitHub Actions with automatic updates on every push to
main. - Keep the stack simple: HTML, CSS, JavaScript only โ no build step for local development.
This site demonstrates that a polished, interactive portfolio can be shipped with vanilla web technologies.
๐ด Live Site

Screenshot of the portfolio homepage
โจ Key Features
- Hero & Intro โ tagline, CTA links (Resume, GitHub, LinkedIn), profile photo.
- Featured Projects โ cards linking to project detail pages with demo/report labels and tech tags (e.g. GymWhisper, TelusGuardAI).
- Narrative Timeline โ horizontal marquee showcasing career path: Gallery โ SFU โ Synkron โ Projects โ Next.
- Skills & Tech Stack โ languages, ML/data tools, web tools grouped in chips.
- Experience, Education, Volunteering โ entries with company/institution logos, roles, dates, bullets, and skill tags.
- Posts โ cards linking to LinkedIn write-ups (ML Hackathon, TelusGuardAI, GymWhisper).
- Contact โ Formspree-powered form plus email, LinkedIn, GitHub links.
- Interactions โ sticky nav, scroll reveals, type-on-scroll effects, timeline marquee animation.
- Responsive layout for mobile and desktop.
๐งฑ Repository Structure
florykhan.github.io/
โ
โโโ src/ # Source files (development)
โ โโโ assets/ # Images, icons, resume PDF
โ โ โโโ icons/
โ โ โโโ images/
โ โ โโโ Ilian-Khankhalaev-Resume.pdf
โ โ
โ โโโ pages/ # HTML pages
โ โ โโโ index.html # Home page
โ โ โโโ projects.html # Projects listing
โ โ โโโ narrative/ # Narrative timeline pages
โ โ โ โโโ gallery.html
โ โ โ โโโ sfu.html
โ โ โ โโโ synkron.html
โ โ โ โโโ projects.html
โ โ โ โโโ next.html
โ โ โโโ projects/ # Project detail pages
โ โ โโโ gym-whisper.html
โ โ โโโ network-impact-analyzer.html
โ โ โโโ personal-website.html
โ โ โโโ ...
โ โ
โ โโโ scripts/ # Vanilla JavaScript
โ โ โโโ timeline-marquee-extend.js
โ โ โโโ type-on-scroll.js
โ โ โโโ scroll-arrow.js
โ โ โโโ text-scramble-reveal.js
โ โ โโโ gallery-carousel.js
โ โ
โ โโโ styles/
โ โโโ main.css # All styles
โ
โโโ scripts/
โ โโโ deploy-prepare.sh # Build step for GitHub Pages
โ
โโโ .github/workflows/
โ โโโ deploy.yml # GitHub Actions CI/CD
โ
โโโ dist/ # Output (generated, not tracked)
โ
โโโ .gitignore
โโโ LICENSE
โโโ README.md
๐๏ธ Note:
Thedist/directory is generated bydeploy-prepare.shduring CI and is not tracked by Git. Paths are rewritten so links work at the site root (https://florykhan.github.io/). Local development usessrc/directly โ paths assume pages are undersrc/pages/.
๐งฐ Run Locally
You can run this site on your machine with no build step โ just open or serve the src/ directory.
1๏ธโฃ Clone the repository
HTTPS (recommended):
git clone https://github.com/florykhan/florykhan.github.io.git
cd florykhan.github.ioSSH (if you have keys configured):
git clone git@github.com:florykhan/florykhan.github.io.git
cd florykhan.github.io2๏ธโฃ Open or serve the site
Option A โ Direct open (some paths may break for nested pages):
open src/pages/index.htmlOption B โ Serve locally (recommended):
cd src && python3 -m http.server 8000Then open http://localhost:8000/pages/index.html in your browser.
3๏ธโฃ Paths
All paths assume pages live under src/pages/. Styles, scripts, and assets are referenced relative to that structure.
๐ฆ Deployment
- Automatic: Push to
mainโ GitHub Actions runsdeploy-prepare.shโ buildsdist/โ deploys to Pages. - Setup: In GitHub repo Settings โ Pages โ Source, set GitHub Actions.
- The
deploy-preparescript copiessrc/intodist/and rewrites../styles/,../assets/,../scripts/so links work at the site root.
๐ Project Detail Page
For a full write-up, see the project detail page on the live site, which covers the problem and context, functionality, tech stack, architecture, and key takeaways:
Personal Website โ Project Detail
๐ Future Directions
Possible improvements for future iterations:
- Add a blog โ static markdown โ HTML pipeline or lightweight CMS.
- Dark / light theme toggle โ persist preference with
prefers-color-schemeorlocalStorage. - Performance โ lazy-load images, critical CSS, reduce main.css size.
- Accessibility โ axe audit, skip links, improved focus management.
- i18n โ optional multi-language support for key pages.
๐ง Tech Stack
- Frontend: HTML, CSS, JavaScript (vanilla, no framework)
- Hosting: GitHub Pages
- CI/CD: GitHub Actions
- Form: Formspree (contact form email delivery)
- Version Control: Git + GitHub
๐งพ License
MIT License, feel free to use and modify with attribution. See the LICENSE file for full details.
๐ค Author
Ilian Khankhalaev
CS Student, Simon Fraser University
๐ Vancouver, BC | florykhan@gmail.com | GitHub | LinkedIn