back to portfolio

mohit / expense tracking system

Expense Tracking System

A categorised spending tracker.

You pay rent, buy lunch, order something you didn't need, and a month later your balance is lower than you expected. You scroll through bank statements trying to work out where it went. Or you started a spreadsheet in week one and abandoned it by week three.

I wanted to see where my money goes, so I built this.

You log what you spent each day, sort it into a category and move on. When you want answers, pick a date range and the app shows what share of your spending went to each category, as a chart and a table.

Think of it as a spreadsheet with a login, fixed categories and a built-in chart.

What you can do

  • Log up to five expenses for a day in one go, sorted into Rent, Food, Shopping, Entertainment or Other.
  • Reopen any date and edit what you entered.
  • Browse every expense in one table, newest first.
  • Pick a start and end date and see spending by category, ranked by share.
  • Keep your data private. Every account has its own expenses and its own analytics.

Under the hood

Streamlit handles the interface and talks to a FastAPI backend over a REST API. FastAPI validates each request with Pydantic and reads and writes a MySQL database. Category totals are computed in SQL, so the dashboard receives finished numbers.

Your data

Passwords are stored as salted hashes. The API takes your user ID from a signed session token, so editing a URL won't show anyone else's expenses. There is no shared ledger.

It doesn't handle budgets, recurring bills or CSV export yet.

Built with Python, FastAPI, Streamlit and MySQL.