Inspiration
Many people struggle with managing their personal finances, especially students and people who are new to budgeting. This project was inspired by the idea of creating a simple and clean budgeting tool that is easily accessible. The goal was to build something lightweight but still useful enough to demonstrate real-world software development concepts.
What it does
The Budget Tracker allows users to:
- Add income and expense transactions
- Edit and delete existing transactions
- View total income, total expenses, and remaining balance
- Automatically validate inputs
- Display success/error messages using flash notifications
- Display a pie chart of expenses by category
- Color coding for income/expense rows
How I built it
Simple full-stack approach using:
Backend
- Flask (Python) for routing and logic
- SQLite for storing transaction data
- Validation for transaction type, amount, and date format
Frontend
- HTML templates using Jinja2
- CSS for layout and styling
Data Visualization
- Chart.js for pie chart creation
- Data is grouped by category using SQL
Challenges I ran into
This was my first full-stack project on my own, so there was an initial hurdle of deciding how I wanted to implement everything. For the sake of time I decided to go with a simple web UI, and from there I needed to become more familiar with HTML templates like Jinja, and needed to learn JSON conversion for the pie chart.
Accomplishments that I'm proud of
Completing my first independent full stack project, maintaining clean validation and error handling, and providing a clean user experience with interactive data visualization.
What I learned
How Flask works, connecting a Python backend to a database, how to pass backend data to frontend Javascript, incremental UI improvements, and the impact of small details and features such as flash messages and confirmations.
What's next for Budget Tracker
I'd like to continue improving the app, next steps include:
- Adding filtering
- Monthly and yearly summaries
- Exporting to CSV
- Import data from files
- User authentication
- Cloud deployment
- Other UI improvements
Log in or sign up for Devpost to join the conversation.