tp

Arun Gandhi Shyam Krishna - Project Portfolio Page

Overview

BudgetBuddy is a desktop financial tracker application that helps users to manage their personal finances. It allows users to track their income and expenses across multiple accounts and provides insights into their financial activities. It is optimized for use via a Command Line Interface (CLI) and is written in Java, and has about 3 kLoC.

Summary of Contributions

Code Contributed:

Documentation:

Feature 1 - Adding Transaction

  1. Initiated the transaction class with appropriate parameters.
  2. Created the Add command with the basic arguments to add a transaction to a list of available transactions.
  3. Added JUnit test cases for all the important methods contributing to this feature.
  4. Performed exception handling for many types of edge cases with respect to the input arguments.

What it does: Allows users to add a transaction.
Justification: This feature is the backbone to the BudgetBuddy as users need to be able to enter a transaction to use the application.

Feature 2 - Data Storage

  1. Initiated file paths and file format to store the data of the list of transactions.
  2. Created saveTransactions method to take in an array of transactions, convert the objects into string format ensuring no information is lost in the process and writing the data in the specified file paths.
  3. Enabled reading of saved data back into an array of transaction objects using the method readTransactionFile.
  4. Performed exception handling to ensure that in all scenarios the data storage works as intended without any runtime errors. For example, ensuring that the program does not crash when the files get corrupted due to external intervention.

What it does: Stores all the transactions entered by the user to the database.
Justification: This feature is very important as it allows the user to track all the transactions in previous sessions as it would be meaningless to not have a data storage.

Feature 3 - Insights

  1. Used XChart library to display pie-charts on the available data.
  2. Segregated all the available transactions into income and expense type and calculated total amount for each category in each type. Displayed the proportions of transactions in each category for each type.

What it does: Displays 2 pie-charts, one for each type of transaction, which shows the proportion of each category in all the transactions.
Justification: This feature is useful since it allows the user to visualize the distribution of his/her income/expense among the available categories.

Exception Handling

General Contribution