Personal Finance Tracker is a web application built with Flask that helps users manage their personal finances in a simple and efficient way. The application allows users to register, log in securely, and keep track of their income and expenses.
Users can add, edit, and delete transactions, view a complete history of their financial activity, and filter or search through their records. The application also provides a dashboard with summarized data such as total income, total expenses, and current balance, along with visual charts for better understanding.
This project was created as a final project for CS50 to demonstrate knowledge of web development, including backend logic, database management, authentication, and user interface design.
- User registration and login system
- Add income and expense transactions
- Edit and delete transactions
- View transaction history
- Search and filter transactions
- Dashboard with financial summary
- Charts for data visualization
- Python (Flask)
- SQLite
- HTML, CSS
- JavaScript
- Chart.js
-
app.pyMain application file containing all routes and logic. -
helpers.pyContains helper functions such as login_required. -
schema.sqlDatabase schema defining users and transactions tables. -
templates/Contains all HTML files (login, register, dashboard, transactions, etc.). -
static/Contains CSS, JavaScript, and other static assets.
-
Install dependencies:
pip install flask -
Set environment variables (optional):
export FLASK_APP=app.py export FLASK_ENV=development -
Run the application:
flask run -
Open your browser and go to:
http://127.0.0.1:5000
This project focuses on simplicity and usability. The goal was to create a clean interface where users can easily manage their finances without unnecessary complexity.
Flask was chosen for its simplicity and flexibility. SQLite was used as the database because it is lightweight and easy to integrate. Chart.js was used to provide visual insights into financial data.
Authentication is implemented to ensure that each user can only access their own data.
This project demonstrates core concepts learned in CS50, including routing, database interaction, authentication, and front-end integration. It provides a practical tool for managing personal finances while showcasing full-stack development skills.