tp

User Guide

Table of Contents

1. Introduction
2. Quick Start
3. Features
  3.0 General Information
  3.1 Display Commands
  3.2 Add Expense
  3.3 Add Savings
  3.4 Add Split Expenses
  3.5 Edit Savings
  3.6 Edit Expense
  3.7 Reduce Savings
  3.8 Delete Expense
  3.9 List Savings
  3.10 List Expense
  3.11 Check Splitted Expenses
  3.12 Settle Splitted Expenses
  3.13 Find Expense
  3.14 Recurring Bill Description
  3.15 Add Recurring Bill
  3.16 List Recurring Bills
  3.17 Remove Recurring Bill
  3.18 Add Expense to a Recurring Bill
  3.19 View Expenses in a Recurring Bill
  3.20 Add Expenses in a Recurring Bill to Overall Expenses
  3.21 Change Currency
  3.22 Set Budget
  3.23 Get Budget
  3.24 Print Budget
  3.25 Get Graphical Insights for expenses
  3.26 Get Graphical Insights for savings
  3.27 Exiting the Application
4. FAQ
5. Command Summary
6. For Advanced Users

1. Introduction

BudgetBuddy is a product for users who wish to handle and track any current/future expenses on a singular platform. BudgetBuddy provides a faster and more efficient way to track and calculate expenses and provides the ability to deal with finances on a singular platform with ease as long as you can type fast.

2. Quick Start

  1. Ensure that you have Java 11 installed.
  2. Download the latest version of BudgetBuddy from here.
  3. Copy the file to the folder you want to use as the home folder.
  4. Open command terminal, cd into the folder you put your jar file in, and use the java -jar [CS2113-T12-3][BudgetBuddy].jar command to run the application (Name of JAR File may vary)

3. Features

3.0 General Information

  1. All user input variables are denoted in all caps. Etc, if the format of a command is menu INDEX, INDEX refers to the user input variable. Hence, you may input menu 1, menu 2, menu string, etc. depending on the command constraints.
  2. User Input variables that are enclosed with a [] are denoted as optional inputs. Etc, if the format of a command is menu [INDEX], the user may wish to not include anything for the INDEX and just type menu.

3.1 Display Commands : menu

Displays the corresponding features of BudgetBuddy

Format: menu [INDEX]

Example of usage:

menu : Displays all menu list items

menu 1 : Displays commands related to feature associated to menu list item 1

3.2 Add Expense

Records a new expense under a specific category with a detailed description.

Format: add expense c/CATEGORY a/AMOUNT d/DESCRIPTION

Example of Usage:

add expense c/Entertainment a/167 d/Bruno Mars

3.3 Add Savings

Adds a specified amount to the savings under a particular category.

Format: add savings c/CATEGORY a/AMOUNT

Example of Usage:

add savings c/Salary a/500.50

3.4 Add Shared Bill

Add bills that are meant for splitting among friends or colleague

Format: add shared bill a/AMOUNT n/NUMBER_OF_PEOPLE d/DESCRIPTION

Example of usage:

add shared bill a/100 n/10 d/Lunch

3.5 Edit Savings: edit savings

Edit Savings that have been added previously.

Format: edit savings c/CATEGORY a/AMOUNT

Example of usage:

edit savings c/Salary i/2 a/180 d/Monthly Salary

Expected Output:

Saving edited successfully.

3.6 Edit Expenses: edit expense

Edit expenses that have been added previously.

Format: edit expense c/CATEGORY i/INDEX a/AMOUNT d/DESCRIPTION

Example of usage:

edit expense c/Entertainment i/3 a/30 d/movie

Expected Output:

Expense edited successfully.

3.7 Reduce Savings: reduce savings

Reduces the amount saved in a particular category

Format: reduce savings c/CATEGORY a/AMOUNT

Example of usage:

reduce savings c/Investments a/10 Reduces the savings of category Investments listed in the savings tracker by $10

3.8 Delete Expense: delete expense

Deletes expenses that have been added wrongly or are no longer relevant.

Format: delete expense i/INDEX

Example of usage:

delete expense i/4 Deletes the expense of at index 4 listed in the expenditure tracker.

Note:

3.9 Listing Savings: list savings

Lists savings

Format: list savings CATEGORY

Example Usage:

list savings list savings Salary list savings Investment

Expected Output (Empty Saving List) : ListSavings_EmptySaving.PNG

Expected Output (Empty Expense List) : ListSavings_EmptyExpense.PNG

Expected Output (Expense Recorded) : ListSavings_ExpenseRecorded.PNG

Expected Output (Filtered Category) : ListSavings_FilterCategory.PNG

3.10 Listing Expenses: list expenses

Lists expenses

Format: list expenses CATEGORY

Example Usage:

list expenses list expenses Transport list expenses Housing

Expected Output (Empty Expense List) : ListSavings_EmptyExpense.PNG

Expected Output (Expense Recorded): ListExpenses_ExpenseRecorded.PNG

Expected Output (Filtered Category) : ListExpenses_FilteredCategory.PNG

3.11 Check splitted expenses check splitted expenses

Check Split Bills

Format: check split bills

3.12 Settle bill settle bill

Settle splitted expenses

Format settle bill i/Index

Example of usage: settle bill i/2: Delete bill of index 2 listed in splittedexpenses tracker

3.13 Finding expenses : find expenses

Finds expenses based on their description or amount

Format : find expenses d/[DESCRIPTION] morethan/[MINAMOUNT] lessthan/[MAXAMOUNT]

Examples of usage :

find expenses d/coffee morethan/ lessthan/ : Finds all expenses with the word “coffee” in the description

find expenses d/coffee morethan/200 lessthan/ : Finds all expenses with the word “coffee” and amount higher than equals to $200

find expenses d/coffee morethan/200 lessthan/400 : Finds all expenses with the word “coffee” and amount higher than equals to $200, but lesser than equals to $400

3.14 Recurring Bill Description

The next few features from 3.15 to 3.20 in the user guide would be related to the Recurring Bill Feature. The commands associated to this overall feature would start with the rec command, followed by the relevant commandType and parameters. This feature allows the user to create and manage multiple lists of expenses separate from the user’s overall expenses , which can be added to the users overall expenses.

The term recurring here is to indicate that a user is able to add a set of pre-defined expenses to their overall expenses at any given point in time. Hence, this could range from subscription payments, a future grocery list, etc.

3.15 Add Recurring Bill : rec newlist

Adds a new recurring Bill.

Format : rec newlist LISTNAME

Examples of usage :

rec newlist Subscriptions : Creates a new empty recurring bill named Subscriptions

3.16 List all Recurring Bills : rec viewlists

Lists all recurring bill names, along with their associated list number

Format : rec viewlists

Examples of Output :

When there are already added recurring bills :

Output of viewlists when there are recurring bills added

When there are no added recurring bills

Output of viewlists where there are no recurring bills

3.17 Remove Recurring Bill : rec removelist

Removes a recurring bill

Format : rec removelist LISTNUMBER

Examples of usage :

rec removelist 2 : Removes the 2nd recurring bill in the list of recurring bills

3.18 Add an expense to a recurring bill : rec newexpense

Adds an expense to a specified recurring bill

Format : rec newexpense to/LISTNUMBER c/CATEGORY a/AMOUNT d/DESCRIPTION

Examples of usage : rec newexpense to/1 c/Entertainment a/200 d/movies : Adds a new expense to the 1st recurring bill , with category as Entertainment, amount as 200 and description as Movies

3.19 View expenses in a recurring bill : rec viewexpenses

Views all expenses in a specified recurring bill

Format : rec viewexpenses LISTNUMBER

Examples of usage : rec viewexpenses 1 : Prints all expenses in the 1st recurring bill

Here are some expected outputs for different situations :

When the list to view contains expenses :

View Expenses Command when List is Non-Empty

When the list to view does not contain any expenses :

View Expenses Command when List is Empty

3.20 Add expenses in a recurring bill to overall expenses : rec addrec

Adds all expenses in a specified recurring bill to the overall expenses

Format : rec addrec LISTNUMBER

Examples of usage : rec addrec 1 : Adds all expenses in the 1st recurring bill into the overall expenses

Here are some expected outputs for different situations :

When the list to add contains 2 expenses :

Add Recurring Expenses Command when List is Non-Empty

When the list to add is empty:

Add Recurring Expenses Command when List is Non-Empty

3.21 Changing Currencies : change currency [CURRENCY_CODE]

Converts current currency to targeted currency

Format : change currency [CURRENCY_CODE]

Examples of usage:

change currency USD : Converts current currency into USD

Expected Output (SGD -> USD) : CurrencyConverter_ChangeUSD.PNG

Expected Output (USD -> USD) : CurrencyConverter_SameCurrency.PNG

3.22 Setting Budgets:

Sets budget for specified category

Format: set budget c/CATEGORY b/BUDGET

Example of usage: set budget c/Utility b/100

Expected output (if there is no existing budget): SetBudget_New.png

Expected output (if there is already an existing budget): SetBudget_Existing.png

3.23 Getting budget for specific category:

Retrieves the budget for the specified category, also lists expenses in descending order, and shows the percentage of budget that each expense takes up.

Format: get budget c/CATEGORY

Example of usage: get budget c/Transport: Retrieves the set budget for transport (if any), lists expenses in transport category in ascending order, and shows % of budget taken up by each of them.

3.24 Print all the budgets

Format: print budget

Example of Expected Output (If there is no existing expenses): ListBudget_NoExist.png

Example of Expected Output (If there are existing expenses): ListBudget_ExistingExpenses.png

3.25 Get Graphical Insights for expenses: get expenses insights

Example of usage: get expenses insights

Example of Expected Output: GetExpenseInsights.png

3.26 Get Graphical Insights for savings: get savings insights

Example of Usage: get savings insights

Example of Expected Output: GetSavingsInsights.png

3.27 Exiting the application : bye

4. FAQ

This section answers some frequently asked questions.

Why can I only add amounts less than 1,000,000,000,000.00

In BudgetBuddy, we set a maximum limit on transaction amounts to ensure consistent functionality across different systems. Since variable storage capacities can vary , this limit helps prevent errors and maintain reliable operations. With the richest man in the world having an approximate net worth of 231,000,000,000. We believe that the cap should be sufficient to most users.

What happens if the total amount of all expenses is above 1,000,000,000,000.00

Exceeding the maximum limit of 1,000,000,000,000.00 for total expenses can lead to calculation errors and issues in data representation due to the limited range of numbers the application can handle. While we strongly recommend staying within this limit to avoid such problems, most users should find that BudgetBuddy meets their needs without issue.

How do I transfer my data to another computer.

The save files for BudgetBuddy are stored in [JAR file location]/data/.
Copy all contents found in the data folder to the new location.

Can I include my own category?

As of current version (v2.1), the feature to include your own category has not been implemented yet. It may come in a future release.

Why are there only so little currency codes available?

As of the current version (v2.1), we plan to include more conversion codes in future updates as we expand on the program.

Are the conversion values accurate in real-time?

As our program does not require Internet access, the conversion ratios are taken as of the release date for each version of BudgetBuddy.
(i.e. v2.1 released on 15 Apr 2024, so conversion ratios are taken as of that date)

5. Command Summary

6. For Advanced Users:

6.1 Saving the data

BudgetBuddy data is automatically saved to the hard disk after any command. There is no need to save manually.

Note : As the data to be saved depends on the current state of the application, any manual changes made to the files during the run of the application will not be reflected in the application.

6.2 Editing the data file

BudgetBuddy data is saved automatically as a text file [JAR file location]/data/*.txt. Where * represents the different names of the files . Five files should be created upon first startup of BudgetBuddy : SavingsFile.txt, ExpenseFile.txt, RecurringExpensesFile.txt, DefaultCurrency.txt and SplitExpensesFile.txt Advanced users are welcome to update the data directly by editing this file. However, caution is advised as certain edits may cause JunBot to behave unexpectedly.

RecurringExpensesFile.txt

For advanced users who wish to edit the RecurringExpensesFile.txt, do take note of the following

⚠️ Caution: Certain edits can cause BudgetBuddy to behave in unexpected ways (e.g. if value entered is outside the acceptable range, or the entries are not in the right format). Therefore, edit the data file only if you are confident that you can update it correctly