User Guide
User Guide
Bamboo (v1.4) is a simple desktop app for managing personal finance, optimized for use via a Command Line Interface (CLI), and targeted at college students. If you can type fast, Bamboo v1.4 can get your financial management tasks done faster than traditional GUI apps.
This User Guide explains how you can use Bamboo to manage your personal finances. Let’s grow our wealth!
Refer to Quick Start for a short tutorial on how to set up Bamboo on your system, and refer to Features for a full walk-through of Bamboo’s features.
Table of contents
Quick Start
Bamboo runs on Windows, OS-X, and Unix systems.
- Ensure that Java Version 11 or above is installed in your computer
- Download the latest Bamboo Release
ExpenseBook.jar
here.- Copy the file to the folder you want to use as the home directory for Bamboo.
- Double-click the file to start the app. It should open in a new window. OR Navigate to the directory on terminal and run
java -jar ExpenseBook.jar
.- Type in commands with arguments in the command input box above, and press
Enter
to execute them.- Use the
help
command to find out the list of commands available, or we’d recommend checking out the Features section for a comprehensive guide!- Let’s grow our wealth together!
Command Format Guide
This section explains the format of commands in this User Guide.
- Items in
are types of parameters to be supplied by the user e.g. in `add -d `, ` ` refers to a description of an expense such as "Lunch @ Thai Place". - Items in square brackets are optional e.g
-d <description> [-@<date>]
means that date input is optional. Both-d lunch
and-d lunch -@03-09-2020
are valid.
Note: Command input is limited to 450 characters total (including command and parameters).
Features
Basic
-
Add an Expense
- Adds new expense record.
- Command:
add
- Usage
-
List All Expenses
- Displays a list of all the user’s expenses.
- Command:
list
- Usage
-
Update an Expense
- Edits existing expense record.
- Command:
edit
- Usage
-
Delete an Expense
- Deletes a specified existing expense record.
- Command:
delete
- Usage
-
Top-up Budget
- Increases the amount of budget (in the “Default” category) by a user-defined amount.
- Command:
topup
- Usage
-
Show Help
- Renders a help link to the commands in User Guide
- Command:
help
- Usage
-
Clear Expense Book
- Clears and resets the expense book.
- Command:
clear
- Usage
-
Exit Application
- Exits Bamboo.
- Command:
exit
- Usage
-
Save Load Function
- Automatically saves the state of the expense book after each operation.
- Automatically loads previously saved data on app start-up.
Extension
-
Category Tagging
- Tags expenses by their categories.
- Prefix:
t/
- Usage
-
Adding Remark
- Adds a remark to an existing expense.
- Command:
remark
- Usage
-
Add Category
- Adds a new category (for budgeting and expenses).
- Command:
addCat
- Usage
-
Delete Category
- Deletes an existing category in the expense book.
- Command:
deleteCat
- Usage
-
Top-up Budget by Category
- Increases the amount of budget in a specific category by a user-defined amount.
- Command:
topup
- Usage
-
Reduce Budget (by Category)
- Reduces the amount of budget in a specific category by a user-defined amount.
- Command:
reduce
- Usage
-
Switch Category
- Switches an expense book into another existing category.
- Command:
switch
- Usage
-
Find an Expense
- Finds expenses by keywords, date, tags.
- Command:
find
- Usage
-
Sort Expenses
- Sort by date, description (alphabetical), amount, with option of reverse sort.
- Command:
sort
- Usage
-
Add Command Shortcut
- Maps user-specified shortcut to existing command.
- Command:
alias
- Usage
-
Reset Command Shortcuts
- Removes all user-specified command shortcuts.
- Command:
resetAlias
- API
-
Display Graph
- Opens a window that displays a pie chart representing categorical expenses.
- Command:
graph
- API
Usage
For the purposes of Bamboo, the terms Tag
and Category
are interchangeable.
Fields/Glossary
-
expense
- An expense is a cost incurred in or required for something. Every entry in Bamboo is an expense.
- Bamboo treats 2 expenses as identical if they have the same Description, Amount, and Date.
- Restrictions: Bamboo cannot store duplicate expenses i.e. 2 expenses are identical according to the criterion above.
- Refer to Commands to see how to manage expenses using Bamboo.
- description
- amount
- date
- tag
-
remark
- Additional information about an expense.
- Works only in complement with remark
- Format:
-r <remark>
- Restrictions: Remarks can be up to 200 characters long.
- Example:
remark 1 -r impulse spending
,remark 2 -r emergency
-
alias
- “Also known as” for commands.
- Alternative shortcuts for commands can be used to invoke original commands.
- Added with alias command
- Format:
alias <original_command> <new_command>
- Input Restrictions:
- The shortcut cannot be the same as the original command.
- Original command must exist.
- Length of shortcut must not exceed 10 characters long.
- Shortcut may consist of only case-sensitive alphabetical characters.
- Cannot remap the
alias
andresetAlias
commands. - Only one shortcut for a command at any point in time.
- Example:
alias add spent
makesspent
a command shortcut foradd
-d dinner
and -ddinner
will yield the same results.
Commands
-
Add an Expense
add
- Order of arguments is flexible.
- If multiple fields of the same type are specified, only the last one is processed.
- Date input (dd-MM-yyyy) is optional, defaults to system’s date (usually today).
- Tag (or category) input is optional, defaults to the “Default” category. This means that the expense is subtracted from the “Default” Budget.
- Format:
add -d <description> -$<amount_spent> [-@<date>] [t/<category>]
- Example:
add -d dinner -$10.50
Adds the expense to current date’s record. - Example:
add -d dinner -$10.50 -@24-06-2020 t/Food
Adds the expense under 24 June 2020 and tags it under “Food” category.
Specifying Category/Tag
- Example:
add -d dinner -$10.50 -@20-08-2020 t/Food t/Basic
As stated above, onlyt/Basic
is processed, thus the expense is tagged with the “Basic” category, if it exists. - Input constraints:
- If specified, the tag input must match one of the existing categories in the expense book. If not, the expense will be added to the “Default” category - the new category needs to be created first (see addCategory)
- The expense to be added must not share the same identity fields (description, amount and date) as any expense in the expense book.
- Total sum of expenses cannot exceed 10e9 (Consistent with
Amount
)
-
List all Expenses
list
- Displays all the items in the list.
- Displays the budget balance based on total expenditure against the total sum of all budgets.
- Format:
list
- Example:
list
-
Edit an Expense
edit
- Edits the fields of existing expenses.
- Identified by index starting from 1, based on expenses currently displayed.
- Order of arguments is flexible except index.
- Edited fields overwrite the previous field completely.
- At least 1 of the 4 fields (description, amount, date, category) of expense must be specified.
- Format:
edit <index> [-d <description>] [-$<amount_spent>] [-@<date>] [t/<category>]
- Example:
edit 1 -d lunch -$12.50
- Example:
edit 11 -$12.50 -d lunch -@23-06-2020 t/Food
- Input constraints:
- See add
Note: Specifying a blank tag field (e.g.edit 1 t/
) is the same as editing the tag to the “Default” tag. -
Delete an Expense
delete
- Deletes a specified existing expense record.
- Identified by index starting from 1, based on expenses currently displayed.
- Format:
delete <index>
- Example:
delete 11
Deletes the item at index 11 of the list.
-
Add a Category
addCat
- Adds a new category to the expense book.
- The category must not already exist in the expense book.
- Format:
addCat t/<category>
- Example:
addCat t/Food
“Shopping” category is added
Use “Shopping” category
-
Delete a Category
deleteCat
- Deletes an existing category in expense book, if it exists. (Note: the “Default” category cannot be deleted.)
- Category budget of the deleted category will be deleted.
- All expenses tagged with deleted category will be reverted to “Default” category.
- Format:
deleteCat t/<category>
- Example:
deleteCat t/Food
Expense 9 is reverted from “Shopping” category to “Default” category
-
Top up Category Budget
topup
- Increases the budget of a particular category by the amount specified by the user.
- Expenses in the same category reduce the balance of the budget.
- Tag (or category) input is optional, defaults to the “Default” category.
- Format:
topup -$<amount> [t/<category>]
- Example:
topup -$10
Increases the “Default” category’s budget by 10 dollars. - Example:
topup -$20 t/Food
Adds an extra budget of 20 dollars to the “Food” category-budget. - Input constraints:
Note: Each budget is associated with 1 category, and vice versa. -
Reduce Category Budget
reduce
- Reduces the budget of a particular category by the amount specified by the user.
- The amount in any budget cannot fall below zero (any reduction in budget beyond the amount present would cause a reduction to zero).
- Tag (or category) input is optional, defaults to the “Default” category.
- Format:
reduce -$ [t/<category>]
- Example:
reduce -$10
Reduces the “Default” category’s budget by 10 dollars. - Example:
reduce -$5 t/Food
Reduces the amount in the “Food” category-budget by $5 (or to $0 if the original amount was insufficient). - Input constraints:
-
Find Expenses
find
- Finds expenses with given keywords and/or date by user.
- Expenses that fits the criteria will be presented as another list.
- For Description, keywords are not case-sensitive, and partial word matching is supported.
- Date input should be in the format dd-MM-yyyy.
- Budget Balance will not be shown in this view.
- Format:
find [-d <description>] [-@<date>]
- Example:
find -d Phone
,find -d lunch -@01-07-2020
Find by partial description keyword
Find by description keyword and date
-
Add a Remark
remark
- Adds a remark to an existing expense.
- Note: Remarks can be up to 200 characters long.
- Format:
remark <index> -r <remark>
- Example:
remark 11 -r Pepper Lunch
-
Sort Expenses
sort
- Sorts expenses which are current displayed.
-
Sorting keywords (and thus criterion) include:
- expense amount:
amount
- date:
date
- description (alphabetical order):
description
- expense amount:
- Add a “R” behind sorting keywords to induce reversed sorting order
- Sorting criterion are assigned priority in order of appearance.
- A minimum of 1 sorting keyword is required
- Format:
sort -by <sorting keyword> [-by <sorting keyword>] [-by <sorting keyword>]
- Example:
sort -by date -by descriptionR
(sorts by date, then by reversed alphabetical order of the descriptions)
|
Single parameter sort: ascending Date order |
Multiple parameter sort: in order of appearance – date, then description, then amount (see Expenses 1 and 2) |
|————————————————————————————————————————————————|——————————————————————————————————————————————————————————-| |
Multi-parameter sort will take the last sorting keyword if there are duplicates|
Sorting after usingFind
| -
Switch Category
switch
- Switches expense book to requested category.
- Displays all expenses tagged under requested category.
- Budget balance displayed below is also category-specific.
- Requested category must exist in expense book.
- Format:
switch t/<category>
- Example:
switch t/Food
Note: Can also switch to the “Default” category view.Budget balance displayed here is the budget for the “Food” category
-
Add Command Shortcut
alias
- Maps user-specified shortcut to existing command.
- Original command keyword will still function as before.
- Input Restrictions:
- The shortcut specified and the original command cannot be the same.
- Original command must exist.
- Length of shortcut must not exceed 10 characters long.
- Shortcut may consist of only case-sensitive alphabetical characters.
- Cannot remap the
alias
andresetAlias
commands.
- Format:
alias <original_command> <new_command>
- Example:
alias add spent
- Each command may only have up to one shortcut at each time. If a new shortcut is provided for a command, the old shortcut will be un-mapped.
- Reversing the two parameters will remove the particular shortcut from the command.
- Example:
alias spent add
- Example:
Map “spent” to “add” command
“spent” keyword can now function as “add”
“spent” keyword can no longer function as “add”
-
Reset Command Shortcuts
resetAlias
- Removes all existing shortcuts defined by user.
- Format:
resetAlias
- Example:
resetAlias
-
Graph Command
graph
- Opens a window that displays a pie chart representing categorical expenses.
- Format:
graph
- Example:
graph
- Note: The pie chart does not update dynamically. If a command that edits the Expense Book is entered while the graph window is open, the pie chart will not be updated. User must re-enter the graph command to update the pie chart accordingly.
-
Display Help
help
- Displays a help link to the User Guide, which comprehensively covers Bamboo’s commands.
- Format:
help
- Example:
help
-
Clear All Expenses
clear
- Clears all expenses from Bamboo, resulting in an empty expense book.
- Format:
clear
- Example:
clear
-
Exit Application
exit
- Exits the application.
- Format:
exit
Command Summary
Action | Format, Examples |
---|---|
Add |
add -d <description> -$<amount_spent> [-@<date>] [t/<category>] e.g., add -d dinner -$10.50 , add -d dinner -$10.50 -@20-08-2020 t/Food
|
List | list |
Edit |
edit <index> [-d <description>] [-$<amount_spent>] [-@<date>] [t/<category>] e.g., edit 1 -d lunch -$12.50 , edit 1 -$12.50 -d lunch -@11-11-2020 t/Lunch
|
Delete |
delete <index> e.g., delete 1
|
Topup |
topup -$<amount> [t/<category>] e.g., topup -$200 , topup -$30 t/Food
|
Reduce |
reduce -$<amount> [t/<category>] e.g., reduce -$50 , reduce -$40 t/Food
|
Find |
find [-d <description>] [-@<date>] e.g., find -d lunch , find -d lunch -@01-07-2020
|
Remark |
remark <index> -r<remark> e.g., remark 11 -r Pepper Lunch
|
Sort |
sort -by <sorting keyword> [-by <sorting keyword>] [-by <sorting keyword>] e.g., sort -by date -by descriptionR
|
Switch |
switch t/<category> e.g., switch t/Food
|
AddCat |
addCat t/<category> e.g., addCat t/Food
|
DeleteCat |
deleteCat t/<category> e.g., deleteCat t/Food
|
Alias |
alias <original_command> <new_command> e.g., alias add spent
|
ResetAlias | resetAlias |
Graph | graph |
Help | help |
Clear | clear |
Exit | exit |