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
Share this project:

Updates