Scoop your funds into one sweet dashboard. Local-first, Canadian, private.
A personal finance web app for Canadian investors. You only enter transactions β everything else (holdings, dashboard, dividends, gains/losses, tax, charts) auto-calculates from them. Live prices come free from Yahoo Finance, and all your data stays on your own computer (a local file β nothing is uploaded anywhere).
Built for Canadian accounts (TFSA / RRSP / FHSA / RDSP / Non-Reg), CAD + USD holdings, and TD Direct Investing / CIBC Investor's Edge imports.
- Python 3.10 or newer (3.13 recommended) β https://www.python.org/downloads/
- On Windows, during install tick "Add Python to PATH".
- An internet connection β for live prices/FX (Yahoo Finance) and the charting library (loaded from a CDN).
- A web browser (Chrome, Edge, Firefox, Safari β anything modern).
That's it. No accounts, no API keys, no paid services.
1. Get the code. Either download the ZIP from GitHub (green Code button β Download ZIP) and unzip it, or clone it:
git clone https://github.com/toma-nator/FUNDerelele.git
cd FUNDerelele
2. (Recommended) Create a virtual environment β keeps these packages separate from the rest of your system:
python -m venv .venv
Activate it:
- Windows:
.venv\Scripts\activate - macOS / Linux:
source .venv/bin/activate
3. Install the dependencies:
pip install -r requirements.txt
(If pip complains it's out of date: python -m pip install --upgrade pip, then retry.)
python app.py
- On Windows you can instead just double-click
run.bat. - Then open http://localhost:5000 in your browser.
- To stop it, press Ctrl+C in the terminal (or close the window).
The first run creates an empty database (instance/finance.db) automatically.
- Add your transactions (the app calculates everything from these):
- Import tab β upload a TD or CIBC export (CSV for both, PDF for TD), or download the blank CSV template, fill it in, and import that.
- Or add them by hand on the Transactions tab.
- On the Accounts tab, set each account's type (TFSA / RDSP / β¦) and time horizon β these drive the tax, contribution-room, and liquidity views.
- Open the Settings tab to set FX preferences and your contribution-room info.
- Explore the Dashboard (customizable), Charts, Dividends, Performance, Tax & ACB, and the rest.
- Everything lives in
instance/finance.dbon your machine. It is never uploaded and is git-ignored, so it won't end up on GitHub. - In Settings β Data & Backup you can:
- Export transactions (CSV) β a complete, re-importable copy.
- Download / Restore a database backup β a full snapshot you can restore later.
- Load sample data β fill the app with a demo portfolio (5 accounts, ~5 years of transactions, GICs and a watchlist) to explore every feature. Reset it to empty before adding your own.
- Reset Database β wipe everything back to a clean slate (with confirmations).
Tip: before you experiment (Reset, Load sample data, Restore), use Download database backup first β restoring that
.dbbrings everything back exactly as it was.
- This app is meant to run on your own machine for one person. It has no login and a single shared database, so don't host it on a public/shared server β anyone who could reach it would see and edit your finances.
- Not financial or tax advice. Holdings, gains/losses, ACB, and tax figures are estimates for personal tracking β verify anything important against your broker and the CRA.
pythonnot found β Python isn't installed or not on PATH. Reinstall and tick "Add Python to PATH" (Windows), then open a new terminal.pip installfails β runpython -m pip install --upgrade pipand try again.- Prices show blank / "β" β check your internet connection; Yahoo Finance may be briefly rate-limiting. Prices refresh automatically every few minutes.
- Port 5000 already in use β close whatever's using it, or stop the other copy of the app.
Python + Flask + Flask-SQLAlchemy + SQLite, vanilla HTML/CSS/JS with Chart.js,
yfinance for prices. No build step, no front-end framework β just python app.py.