Money Manager App Documentation

Introduction

The Money Manager app simplifies finance management through an intuitive Python-based application. It offers a user-friendly interface and robust features for handling transactions, tracking loans, and maintaining a transaction history.

Technologies Used

  • Programming Language: Python
  • User Interface (UI) Libraries: Tkinter, Customtkinter, tkcalendar
  • Data Handling Libraries: time, datetime, math, timedelta, calendar, os, openpyxl, configparser

Getting Started

Installation

Ensure that you have Python installed on your system. Clone or download the Money Manager app repository from GitHub and run the main Python script.

Ways to Access Money Manager Application

> GUI

Graphical User Interface provides an interactive way to access and use the Money Manager application.

> Command Line

Access the Money Manager application via the command line interface for quick and efficient management of finances.

Getting Started With GUI

Installation

Users can install the Money Manager app by following these steps:

  1. Ensure Python is installed on your system.
  2. Clone or download the Money Manager app from GitHub.
  3. Run the main.py file to launch the application.

Functionlity: How things work In GUI

  1. Initial Configuration Page

    Welcomes new users and gathers essential information:

    • File location to store data. (By default it selects the Document folder)
    • User name for Personalization.
    • Number of financial elements you want to track (e.g., Hand Cash, Businesses).
    • Redirects you to the main page after setup.
  2. Main Page

    Options To do:

    • Store Transaction History: Select any financial element for Storing transactions History on a particular Element.
    • Loan Transaction: Select Loan Button for Getting into Loan Segment.
    • Check Transaction History: Select Check transaction options To view History of your transaction.
    • Send the Transaction
  3. Element Transaction Section/Page

    1. Tabs: Separate Menu tabs for income [+] and expenses [-].
    2. Input Details: Capture reason, amount, and keywords for each transaction.
    3. Keywords: To track the transaction later:
      • Add, Create, or Delete keywords to categorize transactions as needed.
      • Needed To select at least 2 Keywords [one Element name and create another as transaction]
      • Built-in keywords represent the element itself (e.g., Hand Cash).
    4. Send or Revert: Send or Revert transactions for editing or correction.
  4. Loan Transaction Section/Page

    1. Tabs: Separate Menu tabs for Loan to Give [-] and Loan to Take [+].
    2. Due-Date: set the deadline to pay back the money [default 30 days],
    3. Transaction Type: Toggle button between [Normal/Deposit]
      • Normal: This transaction type is used for regular loan transactions, where money is either borrowed or lent without any additional considerations.
      • Deposit: Use this when money is being paid back on a loan, either way. Think of it as "adding money back" to the loan pool.
      •     > Why to use opposite menu tab, while paying money back?

        • [-]: In the Given tab, money is subtracted from the total when lending money. When we return our money, it gets deducted, hence we record our Taken transaction in the Given tab using the Deposit toggle.
        • [+]: In the Taken tab, money is added to the total when receiving repayment for loans. When we get back our money, it gets added, so we record our Given transaction in the Taken tab using the Deposit toggle.

            > Examples:

        • Paying Back Money You Borrowed: Use "Deposit" to record when you return the borrowed money in Given Menu Tab [-].
        • Getting Paid Back Money You Lent: Use "Deposit" when someone repays a loan you gave them in Taken Menu Tab [+].
    4. Input Details: Capture reason, amount, Tangent Name, Due-Date, Transaction Type;
    5. Tangent Name: To track the transaction later on a specific Tangent,
        • Can create, add, delete Tangent,
        • Can select only one Tangent for each Transaction,
    6. Send or Revert: Send or Revert transactions for editing or correction.
  5. Check Page

    • Upper section: (Transaction Summary List)

      • Displays a list of all transaction elements along with their total amounts.
      • Provides a button to navigate to the Loan Transaction History Page for checking loan transactions.
    • Lower Section: (Detailed Transaction History)

      • Displays a detailed history of each transaction element upon selection.
      • Offers the ability to select a time period (e.g., 30, 60, or 90 days) for viewing transaction history.
      • Provides filter options for specifying date range and transaction element.
  6. Loan Overview page

    • Upper Section: (Tangents Summary List)

      • Lists all tangents with their corresponding total amounts left to pay and take.
    • Lower Section: (Detailed Tangents Transaction History)

      • Presents a detailed transaction history for tangents, including selection of time periods.
      • Offers sorting options based on transaction types and due dates.
      • Provides filter options for specifying date range and sorting criteria.

Saving the Transaction:

Data stored in XML sheet named after the transaction element and present date. Where inside page sheet includes columns for [SN, Date, Keywords, Reason, Income, Expenses ].

Getting started with Command line Factor

Run the Application

python main.py

Welcome Message

You'll see a welcome message and a numbered list of options representing your financial elements (e.g., Hand Cash, Bank Account Element name) With Loan & Check money Option.

Choose an Option

Type the number corresponding to the element you want to manage and press Enter. This could be:

  • for managing transactions related to your Element.
  • for managing transactions related to your Loan.
  • for Checking the transaction history.

Entering Details

The program will prompt you for details like:

  • Reason: Briefly describe the purpose of the transaction. Note: Typing "ed" allows you to remove the last entered transaction in the reason field.
  • Amount: Enter the amount of money involved (Note: positive for income, negative for expenses).
  • Keywords: Add keywords by using the ‘add’ word, or select any one keyword according to the keywords needed also for multiple selections use 1,2,3 Note: select at least 2 keywords like (2,3)).
  • End after adding Multiple Transactions: You can keep entering transactions one after another. When finished, type "end" and press Enter.

Loan Management

Choose the "Loan" option from the main menu to manage borrowed and lent money. Here you can do:

  • Add reason
  • Amount: - for given & + for Taken loan
  • Tangent: can select only one Tangent with the index number of a particular box like 2 for the second number tangent, to ADD type ‘add’.
  • Due date: just press Enter if it's for 30 days, or type a new date in the format of Year-month-date.
  • Transaction type: N for normal, or D for if deposited money. [Normal/Deposit]

Checking Money

Select the "Check Money" option to view your overall financial status. This displays summaries of your income, expenses, and loan balances.

Exiting the Program

When finished, press Enter at the confirmation prompt to exit the command-line interface.

Conclusion

The Money Manager app offers a comprehensive solution for finance management, loan tracking, and transaction history review. Its user-friendly interface and robust features make it an essential tool for personal finance management.