← Back to projects

ICS4U · Project 01 · 2026

Smart Personal
Finance Manager.

A finance manager with a real window, not a terminal. Built with tkinter, it handles accounts, transactions, and budgets, then draws the charts with matplotlib.

I — What it does

What it does.

  1. Accounts
    Create an account, log in, log out. Passwords are stored as hashlib SHA-256 hashes, never as plain text.
  2. Transactions
    Add income and expenses with a date, amount, category, and description. Remove any of them later by transaction ID.
  3. Filters
    Pull up transactions by category, by date, or by both at once when you want a narrower view.
  4. Budgets
    Set a monthly budget per category. A warning shows up when spending gets close to the limit, and again once it goes over.
  5. Reports
    Monthly and yearly reports with totals for income, expenses, savings, and a breakdown by category.
  6. Charts
    Matplotlib draws a pie chart for spending, a line graph for income against expenses, and a bar chart comparing categories.
  7. Storage
    Everything saves to a JSON file and loads back when the program starts, so your data sticks around.
  8. Error handling
    Bad dates, bad numbers, and a missing or corrupted data file are all caught. A damaged file just starts you with empty data instead of crashing.
II — Built with

What's under the hood.

Built with tkinter·Matplotlib·hashlib·JSON·Datetime·OS. The rest is just plain Python.

III — Run it yourself

Run it on your own computer.

It's a tkinter desktop app, so it opens in its own window — it won't run in the browser. Grab the file and run it locally.

  1. Make sure you've got Python 3, plus matplotlib installed.
  2. Open main.py in anything that runs Python. IDLE, VS Code, etc.
  3. Run it — a window pops up. Make an account and start adding transactions.
IV — In his words