Simple personal finance tracker with interactive charts.
Money Manager is a lightweight desktop/web application built with NiceGUI that allows you to track income and expenses, categorize transactions, and visualize your financial data with charts. Everything is stored locally in a JSON file — no accounts, no cloud, just your data.
- Income & expense tracking: Easily add and categorize transactions
- Custom categories: Separate categories for income and expenses
- Interactive charts:
- Income distribution (pie chart)
- Expense distribution (pie chart)
- Total balance per category (bar chart)
- Edit & delete entries: Full control over your data
- Local storage: Data is saved in a JSON file
- Minimal UI: Clean and simple interface using NiceGUI
- Python 3.11 or higher
- Clone the repository
Open a terminal in your home directory and type:
git clone https://github.com/Lif28/MyFinance.git
cd MyFinance/MyFinance- Create a virtual environment and install nicegui
python3 -m venv MyFinance-venvOn Windows:
MyFinance-venv\Scripts\activate
pip3 install niceguiOn Linux:
source MyFinance-venv/bin/activate
pip3 install nicegui- Run the application
python3 main.py
- Select a category (e.g. Salary, Investments)
- Enter an amount
- (Optional) Add notes
- Click Save
- Select a category (e.g. Shopping, Transport)
- Enter an amount
- (Optional) Add notes
- Click Save
- Delete: Select one or more rows and click Delete
- Edit: Select a row and click Edit
The application provides three real-time charts:
- Income Pie Chart: distribution of income sources
- Expense Pie Chart: distribution of expenses
- Total Bar Chart: total of income - expenses
All data is stored locally in a JSON file:
MyFinance/data.json
Each entry has the following structure:
{
"Category": "Shopping",
"Amount": "75",
"Notes": "Shoes",
"Date": "2026-04-01 16:45:00"
}
MyFinance/
├── main.py # Main application logic and UI
├── data.json # Data storage (auto-created)
├── icon.png # Default Image
├── icon.ico # Icon
└── README.md # Documentation
nicegui
This software is provided "as is" without warranty of any kind. The developer is not responsible for data loss, or incorrect financial calculations.
MyFinance is designed to run locally or on a home server for continuous access.
A recommended setup is running the application on a Proxmox server (or any Linux server), allowing you to access your finance dashboard from any device on your network. If you decide to do so, update the last line in main.py with your server’s IP. Save and restart the app to apply the change.
