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.
Recorded from the real code, run on my machine
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

