Chan Kim


m0nee

Personal Expense Tracker monee screenshots

Project Overview

m0nee is a personal expense tracking application that helps users manage their finances efficiently. It allows users to record expenses, categorise them, and view summaries and visualisations. Built using Python and Tkinter, m0nee is a practical tool for managing personal finances.
The main motivation for creating m0nee stemmed from my move to London, where I felt a strong need to manage and track my expenses. I wanted to allocate a budget to specific categories I created and rate each expense to gain insightful data about my spending habits. Initially, I used an Excel spreadsheet for this purpose, but soon realised the need for a more tailored solution. This led to the development of m0nee, which I also wanted to share with others who have similar needs.

Features

  • Expense Management: Add, edit, and view detailed expense entries.
  • Customizable Categories: Define your own expense categories.
  • Budget Tracking: Set and monitor your budget against your expenses.
  • Language Support: Available in both English and Korean.
  • Visual Summaries: Visual feedback on budget and spending patterns.

Technologies

  • Python: Core programming language for the application.
  • Tkinter: Used for creating the graphical user interface.
  • SQLite: Manages the database of expenses.
  • PyInstaller: Packages the application as a standalone executable.

Key Learnings and Challenges

  1. 1. GUI Design with Tkinter:
    Developing a responsive and easy-to-use interface improved my skills in widget layout and event handling.

  2. 2. Database Management with SQLite:
    Designing the database schema and implementing CRUD operations deepened my understanding of database management and SQL.

  3. 3. Backend Structure and Event Handling:
    Structuring the backend to handle different functionalities efficiently was a significant learning experience. I used modular programming to separate concerns into different files and functions. For example, separate modules handle adding expenses, viewing expenses, and managing settings. Event handling was crucial for maintaining smooth interactions between different parts of the application. I implemented callback functions and protocol handlers to ensure the application responded correctly to user actions, like closing a window or submitting a form.

Future Plans

Enhanced Analytics: Adding more financial analysis features to provide deeper insights into spending patterns.