GitHunt
FL

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

https://florykhan.github.io

Website screenshot
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:
The dist/ directory is generated by deploy-prepare.sh during CI and is not tracked by Git. Paths are rewritten so links work at the site root (https://florykhan.github.io/). Local development uses src/ directly โ€” paths assume pages are under src/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.io

SSH (if you have keys configured):

git clone git@github.com:florykhan/florykhan.github.io.git
cd florykhan.github.io

2๏ธโƒฃ Open or serve the site

Option A โ€” Direct open (some paths may break for nested pages):

open src/pages/index.html

Option B โ€” Serve locally (recommended):

cd src && python3 -m http.server 8000

Then 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 runs deploy-prepare.sh โ†’ builds dist/ โ†’ deploys to Pages.
  • Setup: In GitHub repo Settings โ†’ Pages โ†’ Source, set GitHub Actions.
  • The deploy-prepare script copies src/ into dist/ 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-scheme or localStorage.
  • 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