A full-stack Expense Tracking System built using FastAPI,
Streamlit, and MySQL.
This application allows users to add daily expenses, update them, and
visualize category-wise expense analytics over a selected date range.
- Add or update daily expenses
- Store expenses in a MySQL database
- View expenses by date
- Analyze expenses by category
- Percentage-based expense breakdown
- Interactive UI using Streamlit
- REST APIs powered by FastAPI
- Backend: FastAPI\
- Frontend: Streamlit\
- Database: MySQL\
- DB Connector: mysql-connector-python\
- Data Handling: Pandas\
- API Calls: Requests
expense-tracker/
β
βββ server.py
βββ db_helper.py
βββ app.py
βββ add_update_ui.py
βββ analytics_ui.py
βββ logging_setup.py
βββ conftest.py
βββ requirements.txt
βββ README.md
CREATE DATABASE expense_manager;
USE expense_manager;
CREATE TABLE expenses (
id INT AUTO_INCREMENT PRIMARY KEY,
expense_date DATE NOT NULL,
amount FLOAT NOT NULL,
category VARCHAR(50),
notes VARCHAR(255)
);uvicorn server:app --reloadstreamlit run app.pyMIT License