A simple and interactive Streamlit-based personal finance dashboard that helps you:
- Upload and categorize your bank transactions
- Visualize your monthly expenses
- Track spending patterns over time
- Edit categories manually using keyword-based rules
✅ Upload your bank statement as a CSV
✅ Automatically categorize transactions based on keywords
✅ View expense distribution by category
✅ Time-series analysis of spending
✅ Manual keyword-based category rules
✅ Clean, responsive Streamlit UI
personal-finance-dashboard/
├── .gitignore
├── README.md
├── requirements.txt
├── main.py
├── categories.json
├── sample\_bank\_statement.csv
└── assets/
└── dashboard\_preview\.png
Make sure your CSV looks like this:
Date,Description,Amount
2023-08-01,"AMAZON ONLINE", -1500
2023-08-02,"SALARY CREDIT", 50000
2023-08-03,"STARBUCKS", -300Use your bank's export option and clean it if needed.
git clone https://github.com/indrxjith/personal-finance-dashboard.git
cd personal-finance-dashboardpython -m venv .venv
source .venv/bin/activate # On Mac/Linux
.venv\Scripts\activate # On Windowspip install -r requirements.txtstreamlit run main.pyEdit the categories.json file to define your own rules:
{
"Groceries": ["LULU", "CARREFOUR", "SPAR"],
"Transport": ["UBER", "CAREEM"],
"Shopping": ["AMAZON", "NOON", "SHEIN"]
}The app will match keywords in the Description to categorize.
Pull requests are welcome! If you have ideas or improvements, feel free to fork and open a PR.
This project is licensed under the MIT License.
---
Would you like me to generate:
- A clean `main.py` version?
- Auto-create this folder structure as a zip for upload?
- A better sample CSV?
Let me know what you need next.