User Guide
Introduction
Money Tracker is a CLI application that allows users to keep track of their income and expenses. Users can record their inflows and outflows of money and then view monthly reports of these movements of money.
Quick Start
- Ensure you have Java
11
or above installed in your Computer. - Download the latest
MoneyTracker.jar
here. - Copy
MoneyTracker.jar
to the folder you want to use as the home folder for Money Tracker. - Navigate to the home folder for Duke on your CLI program.
- Launch Money Tracker by running the command
java -jar MoneyTracker.jar
. - Type the command in the CLI program and press
Enter
to execute it.
Some example commands you can try:addcate lunch
: Adds an expense category.listcat /te
: Lists all expense categories.adde /a3.50 /cFood /d2020-09-20 /eLunch with boss.
: Adds an expense.list /te /m2020-09 /cFood
: Lists all Food expenses in Sep 2020.report 2020-09
: Displays summary report for Sep 2020.
- Refer to Features below for details of each command.
Features
Notes about the command format:
- Words in UPPER_CASE are the parameters to be supplied by the user.
E.g.DESCRIPTION
in the commandaddi /aAMOUNT /cINCOME_CATEGORY [/dDATE] [/eDESCRIPTION]
. - Parameters in square brackets are optional.
E.g.TYPE
in the commandlistcat [/tTYPE]
can be omitted. - Parameters can be in any order.
E.g. The commandlist [/tTYPE] [/mMONTH] [/cCATEGORY]
can also be in this form:list [/mMONTH] [/tTYPE] [/cCATEGORY]
.
Viewing help: help
Shows the URL of the user manual.
Format: help
Example of usage: help
Expected outcome:
Please refer to this online user guide:
https://ay2021s1-tic4001-2.github.io/tp/UserGuide.html
Adding an income category: addcati
Adds an income category. Income category is used for classifying incomes. E.g. SALARY, DIVIDEND, INTEREST.
Format: addcati INCOME_CATEGORY
INCOME_CATEGORY
is case-insensitive; income categories will be stored and displayed in uppercase. E.g.salary
will be stored and displayed asSALARY
.
Example of usage: addcati salary
Expected outcome:
Got it! I have added this income category:
[I] SALARY
Now you have 1 categories in your list.
Adding an expense category: addcate
Adds an expense category. Expense category is used for classifying expense. E.g. FOOD, RENT, ENTERTAINMENT.
Format: addcate EXPENSE_CATEGORY
EXPENSE_CATEGORY
is case-insensitive; expense categories will be stored and displayed in uppercase. E.g.Food
will be stored and displayed asFOOD
.
Example of usage: addcate Food
Expected outcome:
Got it! I have added this expense category:
[E] FOOD
Now you have 2 categories in your list.
Listing all income / expense categories: listcat
Shows a list of all income and/or expense categories.
Format: listcat [/tTYPE]
TYPE
must either be the letteri
ore
. IfTYPE
isi
, only income categories will be listed. Similarly, ifTYPE
ise
, only expense categories will be listed. IfTYPE
is omitted, both income and expense categories will be listed.
Example of usage: listcat /te
Expected outcome:
Here are your expense categories:
1. [E] FOOD
2. [E] RENT
3. [E] ENTERTAINMENT
Example of usage: listcat
Expected outcome:
Here are your categories:
1. [I] SALARY
2. [I] DIVIDEND
3. [E] FOOD
4. [E] RENT
5. [E] ENTERTAINMENT
Editing an income / expense category: editcat
Edits a specified income or expense category.
Format: editcat INDEX /nNEW_NAME
- The
listcat
command must be executed first before using theeditcat
command. INDEX
refers to the index number shown in the list generated by thelistcat
command.INDEX
must a positive integer. E.g.1
,2
,3
…- The category indicated by the index number will be changed to
NEW_NAME
.
Example of usage: editcat 1 /nSalary
Expected outcome:
Noted! I have edited this income category:
From [I] SALARIES to [I] SALARY
Deleting an income / expense category: deletecat
Deletes a specified income or expense category.
Format: deletecat INDEX
- The
listcat
command must be executed first before using thedeletecat
command. INDEX
refers to the index number shown in the list generated by thelistcat
command.INDEX
must a positive integer. E.g.1
,2
,3
…- The category indicated by the index number will be deleted.
Example of usage: deletecat 5
Expected outcome:
Noted! I have removed this expense category:
[E] ENTERTAINMENT
Now you have 4 categories in your list.
Adding an income: addi
Adds an income.
Format: addi /aAMOUNT /cINCOME_CATEGORY [/dDATE] [/eDESCRIPTION]
AMOUNT
must be a positive integer or decimal. E.g.4000
,3000.75
,2000.5
.INCOME_CATEGORY
is case-insensitive. E.g.salary
will matchSALARY
.DATE
must be in yyyy-MM-dd format. E.g.2020-09-20
.- If
DATE
is omitted, the date of this income will be set to the current date of the system. - If
DESCRIPTION
is omitted, the description of this income will be blank.
Example of usage: addi /a9000 /cSalary /d2020-09-01 /eGiven $4000 bonus!
Expected outcome:
Got it! I’ve added this income:
[I] SALARY $9000.00 on 01 Sep 2020 (Given $4000 bonus!)
Now you have 1 transactions in your list.
Adding an expense: adde
Adds an expense.
Format: adde /aAMOUNT /cEXPENSE_CATEGORY [/dDATE] [/eDESCRIPTION]
AMOUNT
must be a positive integer or decimal. E.g.400
,3.50
,4.5
.EXPENSE_CATEGORY
is case-insensitive. E.g.Food
will matchFOOD
.DATE
must be in yyyy-MM-dd format. E.g.2020-09-20
.- If
DATE
is omitted, the date of this expense will be set to the current date of the system. - If
DESCRIPTION
is omitted, the description of this expense will be blank.
Example of usage: adde /a3.50 /cFood /d2020-09-20 /eLunch with boss.
Expected outcome:
Got it! I’ve added this expense:
[E] FOOD $3.50 on 20 Sep 2020 (Lunch with boss.)
Now you have 2 transactions in your list.
Listing incomes / expenses: list
Shows a list of incomes / expenses.
Format: list [/tTYPE] [/mMONTH] [/cCATEGORY]
TYPE
must either be the letteri
ore
. IfTYPE
isi
, only incomes will be listed. Similarly, ifTYPE
ise
, only expenses will be listed. IfTYPE
is omitted, both incomes and expenses will be listed.MONTH
must be inyyyy-MM
format. E.g.2020-09
. Only transactions in this month will be listed. IfMONTH
is omitted, all transactions will be listed.CATEGORY
must be added behind/c
.CATEGORY
can be case-insensitive. Only matched transactions in this category will be listed.- Other feasible list commands. Also, the order of filter condition is flexible:
list
list [/tTYPE]
, orlist [/mMONTH]
, orlist [/cCATEGORY]
list [/tTYPE] [/mMONTH]
, orlist [/mMONTH] [/tTYPE]
,orlist [/mMONTH] [/cCATEGORY]
,orlist [/cCATEGORY] [/mMONTH]
,orlist [/tTYPE] [/cCATEGORY]
,orlist [/cCATEGORY] [/tTYPE]
list [/tTYPE] [/mMONTH] [/cCATEGORY]
, orlist [/mMONTH] [/cCATEGORY] [/tTYPE]
, orlist [/cCATEGORY] [/mMONTH] [/tTYPE]
Example of usage: list /te /m2020-09
Expected outcome:
Here are your expense records for 2020-09:
1. [E] RENT $500 on 01 Sep 2020
2. [E] FOOD $10.00 on 18 Sep 2020 (Dinner at McDonalds’)
3. [E] FOOD $3.50 on 20 Sep 2020 (Lunch with boss.)
Example of usage: list
Expected outcome:
Here are your transactions:
1. [I] SALARY $5000.00 on 01 Aug 2020
2. [E] RENT $500 on 01 Aug 2020
3. [I] SALARY $9000.00 on 01 Sep 2020 (Given $4000 bonus!)
4. [E] RENT $500 on 01 Sep 2020
5. [E] FOOD $10.00 on 18 Sep 2020 (Dinner at McDonalds’)
6. [E] FOOD $3.50 on 20 Sep 2020 (Lunch with boss.)
Example of usage: list /te
Expected outcome:
Here are your transactions:
1. [E] RENT $500 on 01 Aug 2020
2. [E] RENT $500 on 01 Sep 2020
3. [E] FOOD $10.00 on 18 Sep 2020 (Dinner at McDonalds’)
4. [E] FOOD $3.50 on 20 Sep 2020 (Lunch with boss.)
Example of usage: list /m2020-09
Expected outcome:
Here are your transactions:
1. [I] SALARY $9000.00 on 01 Sep 2020 (Given $4000 bonus!)
2. [E] RENT $500 on 01 Sep 2020
3. [E] FOOD $10.00 on 18 Sep 2020 (Dinner at McDonalds’)
4. [E] FOOD $3.50 on 20 Sep 2020 (Lunch with boss.)
Example of usage: list /cSALARY
Expected outcome:
Here are your transactions:
1. [I] SALARY $5000.00 on 01 Aug 2020
2. [I] SALARY $9000.00 on 01 Sep 2020 (Given $4000 bonus!)
Example of usage: list /te /m2020-09 /cFOOD
Expected outcome:
Here are your expense records for 2020-09:
1. [E] FOOD $10.00 on 18 Sep 2020 (Dinner at McDonalds’)
2. [E] FOOD $3.50 on 20 Sep 2020 (Lunch with boss.)
Editing an income / expense: edit
Edits a specified income or expense.
Format: edit INDEX [/aAMOUNT] [/cCATEGORY] [/dDATE] [/eDESCRIPTION]
- The
list
command must be executed first before using theedit
command. INDEX
refers to the index number shown in the list generated by thelist
command.INDEX
must a positive integer. E.g.1
,2
,3
.- The transaction indicated by the index number will be edited.
AMOUNT
must be a positive integer or decimal. E.g.400
,3.50
,4.5
.CATEGORY
is case-insensitive. E.g.Food
will matchFOOD
.CATEGORY
must match an existing income / expense category.DATE
must be in yyyy-MM-dd format. E.g.2020-09-20
.
Example of usage: edit 1 /a500 /cDIVIDEND /d2020-10-21 /eFrom Singtel
Expected outcome:
Noted! I have edited this income:
From [I] SALARY $4000.00 on 20 Oct 2020 to [I] DIVIDEND $500.00 on 21 Oct 2020 (From Singtel)
Deleting an income / expense: delete
Deletes a specified income or expense.
Format: delete INDEX
- The
list
command must be executed first before using thedelete
command. INDEX
refers to the index number shown in the list generated by thelist
command.INDEX
must a positive integer. E.g.1
,2
,3
.- The transaction indicated by the index number will be deleted.
Example of usage: delete 5
Expected outcome:
Noted! I have removed this expense:
[E] FOOD $10.00 on 18 Sep 2020 (Dinner at McDonalds’)
Clearing all data: clear
Clears all incomes / expenses and income / expense categories.
Format: clear
- The app will prompt for a confirmation. Enter
Y
to confirm the data clear orN
to cancel the clear command.
Example of usage: clear
Expected outcome:
Noted! I have cleared all data.
Setting monthly budget: budget
Sets monthly budget.
Format: budget AMOUNT
AMOUNT
must be0
or a positive integer or decimal. E.g.4000
,3500.5
,3000.50
.- During startup, the app will alert the user when the total expenses for the month exceed 50%, 75% and 100% of the budget.
- if
AMOUNT
is0
, the budget alert will be disabled.
Example of usage: budget 5000
Expected outcome:
Got it! I have set your monthly budget to this amount:
$5000.00
Viewing monthly report: report
Shows a report that summarises the incomes and expenses for a specified month.
Format: report
- The summary report for the last six months will be displayed.
Example of usage: report
Expected outcome:
Here is your report:
Income for last 6 months (Highest to lowest):
[I] 2020-09 $27597.40
[I] 2020-06 $4344.00
[I] 2020-05 $5666.00
[I] 2020-10 $4000.00
[I] 2020-08 $6000.00
[I] 2020-07 $8880.00
Income for last 6 months (Highest to lowest):
[E] 2020-09 $531.00
[E] 2020-06 $650.00
[E] 2020-05 $660.00
[E] 2020-10 $577.00
[E] 2020-08 $570.00
[E] 2020-07 $550.00
Format: report MONTH
MONTH
must be in yyyy-MM format. E.g.2020-09
.- The summary report for the specified month will be displayed.
Example of usage: report 2020-09
Expected outcome:
Here is your transactions for 2020-09 :
Total Income: $27597.40
Total Expense: $31.00
Balance: $27566.40
This month has 30 days.
Average Expense Per Day: $1.03
Highest Income transaction:
[I] SALARY $9000.00 on 1 Sep 2020 (Given $4000 bonus!)
Highest Expense transaction:
[E] DRINK $9.50 on 20 Sep 2020 (Lunch with boss.)
Income Category by Frequency:
[I] HONGBAO: 5
[I] SALARY: 3
Expense Category by Frequency:
[E] DRINK: 4
[E] FOOD: 2
Income Category by Amount:
[I] SALARY $27000.00
[I] HONGBAO $597.40
Expense Category by Amount:
[E] DRINK $24.00
[E] FOOD $7.00
____________________________________________________________________
Exiting the program: exit
Exits the program.
Format: exit
Example of usage: exit
Expected outcome:
Bye! Hope to see you again soon.
Saving the data
There is no save command because any change to the data will be automatically saved.
FAQ
Q: How do I transfer my data to another computer?
A:
Go to Money Tracker’s root folder in the current computer.
Copy the data folder and paste it into the Money Tracker’s root folder in the new computer.
Click Yes
if the system prompts you for confirmation of overwriting.
Command Summary
- View help
help
- Add income category
addcati INCOME_CATEGORY
- Add expense category
addcate EXPENSE_CATEGORY
- List income / expense categories
listcat [/tTYPE]
- Edit income / expense category
editcat INDEX /nNEW_NAME
- Delete income / expense category
deletecat INDEX
- Add income
addi /aAMOUNT /cINCOME_CATEGORY [/dDATE] [/eDESCRIPTION]
- Add expense
adde /aAMOUNT /cEXPENSE_CATEGORY [/dDATE] [/eDESCRIPTION]
- List incomes / expenses
list [/tTYPE] [/mMONTH] [/cCATEGORY]
- Edit income / expense
edit INDEX [/aAMOUNT] [/cCATEGORY] [/dDATE] [/eDESCRIPTION]
- Delete income / expense
delete INDEX
- Clear data
clear
- Set monthly budget
budget AMOUNT
- View monthly report
report MONTH
- Exit program
exit