Budget Tracker Application Project Project Requirements and Guidance

Overview

Objective:

Develop a comprehensive budget tracking application to help a small business manage its finances across multiple accounts, categories, and time periods.

This project will deepen your Python skills and provide extensive practice with file handling, data analysis, and user interaction.

Scope and Complexity:

This is a terminal-based application, meaning users will interact with it entirely through the terminal. The project will involve creating a more sophisticated system that tracks finances in greater detail, provides analytical insights, and offers a flexible interface for different types of users. The project is estimated to take around 15 hours to complete.

Users will navigate through the application using text-based menus and commands, making it essential to focus on creating a clear and user-friendly terminal interface.

You will work individually on this project.

❗️ As a reminder, General Assembly has a zero-plagiarism policy. Your project’s code must be substantially yours. Do not copy code from similar projects or other sources. However, using code from the internet to accomplish generic tasks is okay - for example, a line of code that replaces a character at a specific position in a string.

A printable version of the project requirements can be found here.

Technical requirements

Minimum requirements

✅ Any items marked incomplete in this section will result in the project receiving a failing grade.

Your Application must have the following functionality:

  1. Add a New Entry: Users can add a new budget item (income or expense).
  2. Display Account Balance: Calculate and display the net balance for selected accounts or categories.
  3. View All Entries: Show all previous budget entries.
  4. Search Entries: Search for specific entries by title, date, or category.
  5. Generate Reports: Create financial reports based on custom parameters (ex: date range, category, account).
  6. Manage Accounts and Categories: Add, edit, or delete accounts and categories.
  7. Exit: Safely exit the application.

Detailed Technical Requirements

1. Main Menu

When the application starts, it should display a menu with the following options. The user should be able to choose an option by typing the corresponding number or command and pressing Enter:

  1. Add a New Entry: Users can add a new budget item (income or expense).
  2. Display Account Balance: Calculate and display the net balance for selected accounts or categories.
  3. View All Entries: Show all previous budget entries.
  4. Search Entries: Search for specific entries by title, date, or category.
  5. Generate Reports: Create financial reports based on custom parameters (ex: date range, category, account).
  6. Manage Accounts and Categories: Add, edit, or delete accounts and categories.
  7. Exit: Safely exit the application.

Helpful Hints:

2. Add a New Entry

When the user chooses to add a new budget entry, the application should prompt them for the following details:

  1. Title: A short description of the budget item (ex: “Office Supplies”).
  2. Type: Whether the item is an Income or an Expense. Ask the user to enter “I” for Income or “E” for Expense.
  3. Amount: The monetary value of the item. Ensure that the input is a valid number (ex: no letters or special characters).
  4. Date: The date of the transaction in "MM-DD-YYYY" format. Validate the date to ensure it’s in the correct format.
  5. Category: The category under which this entry falls (ex: “Office Supplies,” “Salary”). Hint: Provide a list of existing categories for the user to choose from.
  6. Account: The account to which this entry belongs (ex: “Business Account,” “Personal Account”). Provide a list of existing accounts for the user to choose from.

Example:

  Title: Office Supplies
  Type: Expense
  Amount: 150
  Date: 12-01-2023
  Category: Office Supplies
  Account: Business Account

After gathering all the information, the application should:

Helpful Hints:

3. Display Account Balance

When the user chooses to display the account balance, the application should:

Example:

  Net Balance for Business Account: $450

Helpful Hints:

4. View All Entries

When the user chooses to view all entries, the application should:

Example:

  1. [12-01-2023] Office Supplies: -$150 (Expense) - Category: Office Supplies - Account: Business Account
  2. [12-02-2023] Client Payment: +$600 (Income) - Category: Revenue - Account: Business Account

Helpful Hints:

5. Search Entries

The search functionality should allow the user to search for specific entries by:

Example:

  Search Results for "Office Supplies":
  1. [12-01-2023] Office Supplies: -$150 (Expense) - Category: Office Supplies - Account: Business Account

The search results should be displayed in the same format as the “View All Entries” option.

Helpful Hints:

6. Generate Reports

The reporting feature should allow the user to generate and view detailed financial reports. The user can specify parameters for the report, such as:

Each report should include:

Example:

  Report for Business Account (December 2023):
  Total Income: $2000
  Total Expenses: $1500
  Net Balance: $500

Helpful Hints:

7. Manage Accounts and Categories

This feature allows the user to manage the accounts and categories used in their budget tracker. They should be able to:

Example:

  Added New Account: Personal Account
  Added New Category: Travel Expenses

Helpful Hints:

Code convention and UI/UX requirements

✅ More than three items marked incomplete in this section will result in the project receiving a failing grade.

README requirements

✅ More than two items marked incomplete in this section will result in the project receiving a failing grade.

Evaluation

Your instructional team will evaluate your project after the project’s due date. Your instructors will use the above guidelines to determine whether or not your project meets all of the minimum requirements.

If there is a specific section of code that you would like an instructor to provide additional feedback on, please ask!

Guidance

Getting started

Here are some quick tips to get your project started:

Project assistance

Your instructor team will provide guidelines for reaching out for help during the project.