A full-stack personal expense tracking application built using Streamlit (Frontend), FastAPI (Backend), and MySQL (Database).
The system allows users to add, view, delete, and analyze expenses through an interactive dashboard with dynamic charts and analytics.
- Add multiple expenses per day with category and notes
- View and manage expenses by date
- Delete expenses (individual or bulk)
- Interactive dashboard with:
- 📊 Pie chart (Category-wise breakdown)
- 📈 Bar chart (Monthly spending trend)
- Daily percentage change analysis
- Clean and user-friendly UI
- Auto-refresh and reset functionality
| Layer | Technology |
|---|---|
| Frontend | Streamlit |
| Backend | FastAPI |
| Database | MySQL |
| Visualization | pandas, matplotlib |
project-expense-tracking/
│
├── backend/
│ ├── server.py
│ ├── db_helper.py
│ └── server.log
│
├── frontend/
│ ├── app.py
│ ├── insert.py
│ ├── view_manage.py
│ ├── dashboard.py
│ └── analytics.py
│
├── images/
├── requirements.txt
├── test/
└── README.md
git clone https://github.com/shouviksarkar123/project-expense-tracking.git
cd project-expense-trackingpip install -r requirements.txtCreate a database (e.g., expense_db) and run:
CREATE TABLE expenses (
id INT AUTO_INCREMENT PRIMARY KEY,
expense_date DATE,
amount DECIMAL(10,2),
category VARCHAR(50),
notes TEXT
);Update MySQL credentials inside db_helper.py.
cd backend
uvicorn server:app --reloadcd frontend
streamlit run app.py- User Authentication
- Export data as CSV / Excel
- Monthly budget alerts
- Deployment on cloud (AWS / Render)
Shouvik Sarkar
🔗 GitHub: https://github.com/shouviksarkar123
🔗 LinkedIn: https://www.linkedin.com/in/shouvik-sarkar-619782279
This project is licensed under the MIT License.
You are free to use, modify, and distribute this software for personal and commercial purposes.