All work

Personal budget system

Upload a bank statement: every transaction is sorted and categorised, then you get the month’s dashboard and a debt payoff plan.

ParkedThe original code, running on fictional data.

Demo uses fictional data
Personal budget system: Screen recording of the budget system: a fictional statement is uploaded, categories are reviewed, then the month’s dashboard

Recorded from the real code, run on my machine

Review: 22 rows became 17 expenses, a transfer and two payments, with one category changed
Review: 22 rows became 17 expenses, a transfer and two payments, with one category changed
Dashboard: income, spending and what is left, spending by category, and the debt payoff plan
Dashboard: income, spending and what is left, spending by category, and the debt payoff plan

What it does

Turns a bank statement into categorised spending, separating transfers and debt payments from everyday spending.

What I built

A Python API (FastAPI) and a MongoDB database in Docker: CSV and Excel import, keyword categorisation, duplicate detection, monthly analysis and a payoff plan.

Result

I used it for my own budget on my server, then parked it. The original front end is lost, so the recording shows the original backend behind a new, simple screen.

Technical details
  • Import detects the date, amount and details columns on its own and skips salary and refunds.
  • Each row is sorted into spending, a transfer to review by hand, a card payment or a loan instalment. Payments reduce the matching debt.
  • Categories come from keyword rules, and any category can be changed before saving.
  • Saving skips duplicate transactions, and the analysis compares the month with the one before.
  • The payoff plan orders debts by priority and shows how many months remain at each monthly payment.
  • For this demo I replaced my real figures and private payee names with fictional ones.

Stack

  • Python
  • FastAPI
  • MongoDB
  • Docker
  • CSV / Excel import

Need something like this?

Discuss a project