A desktop GUI application built with Python & Tkinter for tracking personal expenses — store, edit, delete expenses, filter by date, export to CSV/Excel, and visualize with charts.
- About
- Features
- Built with
- Getting Started
- Project Structure
- Future Improvements
- Contributing
- License
- Author
This application (“Expense Tracker”) allows you to:
- Add expenses (description, amount in DZD, category, date)
- Edit or delete recorded expenses
- Filter expenses by date range
- Export data to CSV or Excel
- View charts: expense breakdown by category (pie chart), and expense amount by date (bar chart)
- Use a simple MongoDB backend (via pymongo) and a Tkinter UI
It was built to provide an easy-to-use personal finance tool you can run locally.
- ✅ Add expense entries with date picker (
tkcalendar.DateEntry) - ✅ Edit or delete selected entries
- ✅ Filter by “From” and “To” dates
- ✅ Automatic total expense summary
- ✅ Export data: CSV and Excel
- ✅ Visualisation: pie chart (by category) and bar chart (by date) via Matplotlib
- ✅ Stores data in MongoDB (
mongodb://localhost:27017/by default) - ✅ Themed UI layout with Tkinter / ttk
- Python 3.x
tkinter— standard Python GUI librarytkcalendar— date picker widgetpymongo— MongoDB driver for Pythonpandas— for data export and manipulationmatplotlib— for plotting chartsttk— themed Tkinter widgets
Make sure you have:
- Python 3 installed
- MongoDB running locally (or accessible via URI)
- Required Python libraries (see next section)
- Clone the repository:
git clone https://github.com/aesad/Expense_Tracker_App.git cd Expense_Tracker_App - (Optional) Create & activate a virtual environment:
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Ensure MongoDB is running and accessible at the configured URI (default:
mongodb://localhost:27017/).
Run the main application script:
python app.pyYou should see the main window with input fields (description, amount, category, date) on the left and the expense table on the right.
- Add new expenses via the form.
- Edit or delete a selected expense.
- Use the date filter to show a subset of expenses.
- Export to CSV or Excel via the buttons.
- Click “Show Graphs” to view charts.
📂 Expense_Tracker_App
├── 📁 Expense_Tracker_App
│ ├── app.py # Main application script
│ └── 📘 CNNvsRNN_MNIST.ipynb
└── 📄 README.md
Here are a few ideas for future enhancements:
- 🔧 Store
datefield in MongoDB as a properDatetype (not just string) for more robust querying. - 📈 Add filtering by category, amount range, or recurrence.
- 🧮 Add budgeting features (monthly budget, alerts when threshold exceeded).
- 🖥 Improve UI: dark theme, custom styling, responsive resizing.
- 📱 Build a standalone executable for non-Python users (via PyInstaller or similar).
- ☁️ Support cloud database / multi-user sync.
Abderrahmane SADOK — abderrahmane.sadok.compte@gmail.com
GitHub: https://github.com/aesad