Expense Tracker
A full-stack personal finance web application built with Python & FastAPI, backed by MySQL and served through a Bootstrap 5 admin dashboard. Users can log in, track daily expenses across categories, and view monthly & yearly statistics — fully containerized with Docker and deployed to AWS EC2 via an automated GitHub Actions CI/CD pipeline.
Key Features
Session-based login / logout
Monthly & yearly stats
Add, Edit, Delete expenses
7 expense categories
Responsive Bootstrap 5 UI
MySQL 8 database
CI/CD Pipeline
Push to main
Build image
Push to Hub
Deploy EC2
What Was Built
- FastAPI backend with full CRUD routes
- Session-based auth with bcrypt hashing
- Jinja2 templates + Bootstrap 5 UI
- MySQL schema with Pydantic models
- Dockerfile written & image built
- docker-compose.yml (local dev)
- docker-compose.prod.yml (production)
- Docker image pushed to Docker Hub
- AWS EC2 instance launched & configured
- GitHub Actions: build → push → SSH → deploy
- Live on EC2 (Ubuntu 24.04, t3.micro)
Python
FastAPI
MySQL 8
Docker
AWS EC2
GitHub Actions
Bootstrap 5