A desktop-based expense tracking application built using Python, SQL, and Tkinter that allows users to manage financial data and visualize spending patterns.
This project is a complete expense management system where users can create accounts, store transaction data in a relational database, and generate graphical analyses of their expenses.
The application focuses on clarity, data organization, and transforming raw data into meaningful insight.
I built this project to understand how data-driven applications are structured end-to-end — from user input and database design to querying and visualization.
I was particularly interested in how abstract concepts like relational tables and queries translate into tools that help users reflect on real-world behavior.
- User account creation and management
- Relational database structure using SQL
- Add, edit, and store expense records
- Graphical analysis of spending patterns
- Desktop GUI built with Tkinter
- Language: Python
- Database: SQL (relational database)
- GUI: Tkinter
- Visualization: Python-based graphing tools
- Data is stored in structured SQL tables linked through user-specific relationships
- Queries aggregate and filter expenses for analysis
- The GUI serves as an abstraction layer between the user and the database
This design emphasizes separation between data storage, logic, and presentation.
One of the main challenges was debugging interactions between the GUI and the database, where small logical errors could propagate across the system.
Through iterative testing and restructuring, I learned how thoughtful data modeling simplifies both querying and user interaction.
This project reinforced the importance of persistence when building interconnected systems.
It helped me see how careful design choices in data structures directly affect scalability, clarity, and user trust.
Below are selected screenshots illustrating key parts of the application.
This project was built as an independent learning exercise and is demonstrated in my video portfolio, where I explain the design decisions and development process.