Project Walkthrough & Documentation
2025-11-23 · Documentation Python Guide
Python Static Portfolio - Walkthrough
Overview
We have built a fast, modern, and feature-rich portfolio website using Python and Jinja2. The site is generated as static HTML in the docs/ folder, making it perfect for hosting on GitHub Pages.
Features Implemented
- 🎨 Glassmorphism Design: A premium dark theme with blur effects and animations.
- 📝 Blog System: Write posts in Markdown (
content/posts/), and they are automatically converted to HTML. - 🏷️ Project Filtering: Filter projects by tags (Python, React, AI) using JavaScript.
- 🐙 GitHub Activity: Fetches your latest public events from the GitHub API during the build.
- 📄 Resume Download: Dedicated button in the navigation to download your resume.
Project Structure
.
├── build.py # Main script to generate the site
├── data.py # Configuration, bio, skills, and projects data
├── content/
│ └── posts/ # Markdown blog posts
├── templates/ # HTML templates (Jinja2)
├── static/ # CSS, JS, images, and resume.pdf
└── docs/ # Generated static site (Deploy this!)
How to Use
1. Update Content
- Profile: Edit
data.pyto change your bio, skills, and social links. - Projects: Add new projects to the
projectslist indata.py. - Blog: Add new
.mdfiles tocontent/posts/.
2. Build the Site
Run the build script to regenerate the docs/ folder:
python3 build.py
3. Preview Locally
Start a local server to see your changes:
python3 -m http.server 8000 --directory docs
Visit http://localhost:8000.
Deployment (GitHub Pages)
- Push this entire project to a GitHub repository.
- Go to Settings > Pages.
- Under Build and deployment, select Source as
Deploy from a branch. - Select
mainbranch and/docsfolder. - Click Save.
Your site will be live at https://yourusername.github.io/repo-name/.