By: Team CS2103T-F13-3
Since: Sep 2019
Licence: MIT
- 1. Introduction
- 2. How To Use This Guide
- 3. Quick Start
- 4. Features
- 4.1. Viewing help :
help
- 4.2. Flexible date formats
- 4.3. Going through your command history
- 4.4. Adding a spending :
add
- 4.5. Editing a spending :
edit
- 4.6. Deleting a spending :
delete
- 4.7. Listing all spending :
list
- 4.8. Finding a spending :
find
- 4.9. Sorting spending entries :
sort
- 4.10. Setting the currency :
currency
- 4.11. Viewing exchange rates :
exchangerate
- 4.12. Setting monthly budget :
budget
- 4.13. Showing current budget :
showbudget
- 4.14. Generating statistics :
stats
- 4.15. Generating a graph :
graph
- 4.16. Adding a reminder:
reminder add
- 4.17. Deleting a reminder:
reminder delete
- 4.18. Importing data :
import
- 4.19. Exporting data :
export
- 4.20. Undoing previous command :
undo
[Coming in v2.0]
- 4.21. Redoing the previously undone command :
redo
[Coming in v2.0]
- 4.22. Clear all data :
clear
- 4.23. Exiting the program :
exit
- 4.1. Viewing help :
- 5. Glossary
- 6. Command Summary
1. Introduction
MoneyGoWhere is a personal finance application targeted to students at the National University of Singapore (NUS). It allows students to keep track of all their spending and their related information such as date, cost and tags. Users can also set budget goals, view statistics, set reminders for bills, view exchange rates, use different currencies, and import and export their data. With an easy-to-use Graphical User Interface (GUI) and employment of Command Line Interface (CLI), users can easily navigate through the application, contributing to its user-friendliness and efficiency.
What are you waiting for? Start tracking your finances now!
2. How To Use This Guide
The following section details and previews a few legends and formatting that will be used throughout the user guide. These legends are used to represent special information such as tips.
Important information that should be noted. |
Tips that can help you better navigate the application. |
test
: Command to be executed
Useful information for a deeper understanding of the command.
Without further ado, let’s head over to Section 3, “Quick Start” to get started!
3. Quick Start
These steps will guide you in installing MoneyGoWhere on your computer.
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
MoneyGoWhere.jar
here. -
Copy the file to the folder you want to use as the home folder for MoneyGoWhere.
-
Double-click the file to start the app. The GUI should appear in a few seconds as seen in Figure 1. MoneyGoWhere comes preloaded with sample data to allow you to explore and familiarise with the application.
Figure 1. User Interface of MoneyGoWhere -
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
will display the help information. -
Some example commands you can try:
-
list
: lists all spending -
add
n/apple c/2.50 d/yesterday t/fruits r/expensive apple
: adds a spendingApple
to MoneyGoWhere. -
delete
3
: deletes the 3rd spending shown in the current list -
exit
: exits the app
-
-
When you are ready to get started on tracking your own finances, do type
clear
in the command box and press Enter. This removes all the sample data from the application.
This is the end of the Quick Start tutorial. You can refer to Section 4, “Features” for more details about each command.
Your data is saved in the data/ folder by default. You are advised not to modify any of the system created files within the folder,
else MoneyGoWhere may not perform as expected.
|
4. Features
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/apple
. -
Items in square brackets are optional e.g
n/NAME [t/TAG]
can be used asn/apple t/fruit
or asn/apple
. -
Items with
…
after them can be used multiple times including zero times e.g.add n/NAME [t/TAG]…
can be used ast/vegetable
,t/fruit
etc. -
Parameters can be in any order e.g. if the command specifies
add n/NAME c/COST
,add c/COST n/NAME
is also acceptable. -
If a command accepts a single parameter and multiple parameters are provided, by default, the last parameter is chosen. e.g. if there is only one
n/NAME
accepted and the input isn/One n/Two
,n/Two
will be selected.
4.1. Viewing help : help
Shows a list of available commands and their usages.
Format: help
Optionally, you can press F1 or click help which can be found on the menu bar at the top left hand corner of the application.
|
The following image shows how the help bar can be accessed:
Help can be accessed from the menu bar by clicking on the Help
button.
4.2. Flexible date formats
Whenever a particular command requires a DATE
field, you can choose either of the following formats in the table below.
Date Type | Formats |
---|---|
Formal Date |
1978-01-28 |
Relaxed Date |
The 31st of April in the year 2008 |
Relative Dates |
next thursday/ last wednesday |
Date Alternatives |
next wed or thurs |
Prefixes |
day after/ the day before |
Listed above are the date formats that can be used.
You do not need to specify which date format you would like to use as MoneyGoWhere will be able to differentiate it from the input received. However, if today is Wednesday and wednesday is entered, it will be considered next’s week Wednesday.
|
MoneyGoWhere will also automatically check whether a given date is valid. Should you accidentally provide an invalid date such as 31/02/2019, it will be rejected as there are only 28 days in February 2019. MoneyGoWhere may automatically try to correct dates best possible date. |
4.3. Going through your command history
Similar to a typical command line interface (CLI), the user may press the up and down key to go through the previous user input history, and display it in the command box. Pressing the up key would go back to the earlier user input command. Whereas pressing the down key would move towards the most recent user input key.
If the user is at the most recent, or the earliest user inputted command, then press the up and down key respectively, no text will be displayed. |
4.4. Adding a spending : add
Adds a spending to the list when you incur a new spending. Key information such as its name, cost, date, tags (if any) and remarks (if any) are stored.
Format: add n/NAME c/COST d/DATE [t/TAG]… [r/REMARKS]
A spending can have any number of t/TAG keywords (including 0). Each TAG is limited to 64 characters. If a spending date is in the future, it can only be up to the end of this month. Also, if you are using a different currency, the cost entered may have precision errors as it will be converted to SGD.
|
Examples:
-
add n/apple c/2.50 d/yesterday t/fruits r/Expensive apple
-
add n/chicken breast c/1.80 d/today t/meat
-
add n/coffee c/1.20 d/today
-
add n/milo c/1.50 d/tomorrow r/I love milo
-
add n/gold class movie ticket d/15/1/2019 c/13.00 r/important t/entertainment
Expected Output:
A new spending is added based on the specified input.
4.5. Editing a spending : edit
Edits a spending at a specified index in the list.
Format: edit INDEX [n/NAME] [c/COST] [d/DATE] [t/TAG]… [r/REMARKS]
In v1.4, this command does not support adding or removing a particular tag from a specific spending. Removing and adding of tags will be available from v2.0 onwards. |
Examples:
-
edit 1 c/100
Updates the cost of the first spending to100
. -
edit 2 n/chicken rice
Updates the name of the third spending tochicken rice
. -
edit 5 c/500 n/flight tickets
Updates both the cost of the fifth spending to500
and its name toflight tickets
. -
edit 10 t/vegetable
Overwrites existing tags of the tenth spending tovegetable
.
Expected Output:
The specified spending is edited.
4.6. Deleting a spending : delete
Deletes a spending at a specified index in the list.
Format: delete INDEX
Example:
-
delete 2
Deletes the second spending in the list based on the current list shown.
Expected Output:
The specified spending is deleted.
4.7. Listing all spending : list
Displays a list of all spending and their information such as name, date, cost, tag and remark.
Format: list
By default, list of all spending is sorted by descending order of date, descending order of cost, ascending order of name and finally ascending order of remark. |
This command is implicitly invoked upon application start up, and can be used to reset the view after find or sort. |
Expected Output:
All spending entries are listed.
4.8. Finding a spending : find
Searches for spending based on given keywords, cost range, date range, remarks or tags. You may refine the search results by entering more keywords.
Format: find [n/NAME_KEYWORDS] [c/COST_MIN] [c/COST_MAX] [d/DATE_START] [d/DATE_END] [r/REMARK_KEYWORDS] [t/TAG]…
DATE_START must be earlier or the same as DATE_END, and COST_MIN must be smaller or the same as COST_MAX. |
Date range can be input in the following ways:d/DATE_START d/DATE_END d/DATE_START to DATE_END d/DATE_START - DATE_END
|
Cost range can be input in the following ways:c/COST_MIN c/COST_MAX c/COST_MIN-COST_MAX c/COST_MIN - COST_MAX
|
Examples:
-
find n/Java book c/100.20-150.00 d/01/09/2019 - 30/09/2019
Returns a list of spending with matching the keywordsJava
orbook
within the cost range100.20
to150.00
and date range within01/09/2019
to30/09/2019
. -
find d/yesterday d/today t/food t/leisure
Returns a list of spending withinyesterday
andtoday
that havefood
orleisure
tags.
Expected Output:
Spending entries which match the search criteria are listed.
4.9. Sorting spending entries : sort
Sorts all spending based on a given order to view information more clearly.
Format: sort [PREFIX/SORT_ORDER]…
Examples:
-
sort d/ASC c/DESC
Sorts current spending displayed by Date in ascending order. If they are the same, sort by Cost in descending order. -
sort n/DESC
Sorts current spending displayed by Name in descending order.
Expected Output:
An example is shown below.
sort n/ASC d/DESC
Spending entries are sorted in alphabetical order where uppercase letters appear first, and a message is displayed based on the example in Figure 3, “Output of sort n/ASC d/DESC
”.
4.10. Setting the currency : currency
Sets the currency used to display spending entries.
Format: currency [CURRENCYCODE]
Example:
-
currency USD
Sets the currency displayed for spending entries toUSD
.
Expected Output:
The currency displayed is changed and spending entries are updated.
4.11. Viewing exchange rates : exchangerate
Displays currently stored exchange rates.
Format: exchangerate [AMOUNT] [CURRENCYCODE]
Due to network limitations, exchange rates are fixed and locally stored. Exchange rates may also vary across different websites. |
v1.4 does not have networking support for exchange rates. This will be available from v2.0 onwards. |
Example:
-
exchangerate
Shows all exchange rates. -
exchangerate 5 USD
Converts 5 USD to SGD based on current exchange rates.
Expected Output:
All available exchange rates are shown, or a conversion of an input currency is provided if it was specified.
4.12. Setting monthly budget : budget
Sets a budget for the current month in the currency set.
Format: budget MONTHLY_BUDGET
Using the budget command will overwrite the currently set budget.
|
Example:
-
budget 5000
Sets a budget of $5000
for this month
Expected Output:
The budget for the current month is changed to the set amount.
4.13. Showing current budget : showbudget
Shows the current monthly budget, total spending and remaining budget in Singapore Dollars.
Format: showbudget
Expected Output:
The budget for the current month along with the total spending in the month as well as remaining budget is shown.
4.14. Generating statistics : stats
Organises the spending based on tags. A pie chart is generated, with each sector representing the total amount of money spent on a tag. This enables users to be more informed of their spending habits as they are now aware of where they have spent most of their money on. An example is shown below.
stats d/21/10/2019 d/25/10/2019
Format: stats d/DATE_START d/DATE_END
Spending with multiple tags will be counted more than once in total as the statistics seek to show the user which tag they have spent the most money on. |
DATE_START must be earlier or the same as DATE_END. |
Date range can be input in the following ways:d/DATE_START d/DATE_END d/DATE_START to DATE_END d/DATE_START - DATE_END
|
The statistics panel will update every time the spending list displayed changes. For example, when a new spending with a tag is added, the statistics panel will update the pie chart to show the statistics for all spending, including the new spending. |
The statistics panel will update with the currency set. |
Examples:
-
stats
: Generates statistics for all spending. -
stats d/20/10/2019 d/25/10/2019
: Generates statistics for spending between and including 20/10/2019 and 25/10/2019.
Expected Output:
Statistics is shown.
4.15. Generating a graph : graph
Organises the spending based on date. A line graph is generated, with each point representing the total amount of money spent on a particular date. This enables users to analyze trends in their spending amount over a particular period of time. An example is shown below.
graph d/21/10/2019 d/25/10/2019
Format: graph d/DATE_START d/DATE_END
DATE_START must be earlier or the same as DATE_END. |
Date range can be input in the following ways:d/DATE_START d/DATE_END d/DATE_START to DATE_END d/DATE_START - DATE_END
|
Hovering the mouse over a point displays the date and total amount of money spent (to the nearest dollar) on that date. |
The graph panel will update every time the spending list displayed changes. For example, when a new spending is added, the graph panel will update and generate a graph for all spending, including the new spending. |
The graph panel will update with the currency set. |
Examples:
-
graph
: Generates a graph for all spending. -
graph d/20/10/2019 d/25/10/2019
: Generates a graph for spending between and including 20/10/2019 and 25/10/2019.
Expected Output:
A graph is shown.
4.16. Adding a reminder: reminder add
Adds a reminder to the reminder list when you enters a new reminder. Key information such as deadline and message are recorded.
Format: reminder add d/DATE m/MESSAGE
Please ensure that the date of the deadline must be in the future before the end of next year. In other words, MoneyGoWhere will accept dates starting from today until the end of next year as deadlines. |
Examples:
-
reminder add d/30/08/2020 m/Pay school fees
-
reminder add d/3 days from now m/Pay phone bill
Expected Output:
A new reminder is added according to the information provided.
4.17. Deleting a reminder: reminder delete
Deletes a reminder at the specified INDEX
.
Format: reminder delete INDEX
Example:
-
reminder delete 2
Deletes the second reminder in the list based on the current results shown.
Expected Output:
The specified reminder is deleted.
4.18. Importing data : import
The purpose of this command is to let you import external spending data from a Csv file.
When you want to import your existing spending data which is recorded in a Csv file,
you could type a simple command, in the format of import p/FILE_PATH
, and press enter
.
Your new spending entries will be added to the existing spending entries without replacing them.
The Graph, Statistics and Budget panels will also be updated accordingly once the import is successful.
Only spending data will be imported. This excludes Reminder and Budget data. However, importing of Reminder and Budget data is coming in our version 2.0! |
Format: import p/FILE_PATH
Examples:
-
import p/data.csv
-
import p/C:\Users\User\Documents\spending.csv
-
import p/./data.csv
4.18.1. Retrieving File Path
You could retrieve your file path by following these steps, depending on which Operating System you are on:
For Windows:
-
Open your File Explorer.
-
Navigate to the folder where you save your Csv file.
-
Click on the address bar of your File Explorer window.
-
You should be able to see something similar to the figure above.
For Mac:
-
Open your Finder window.
-
Navigate to the folder where you sove your Csv file.
-
Right-click on your Csv file and select
Get Info
. -
You should be able to see a window open up showing something similar to the figure above.
4.18.2. Csv File Constraints
Before importing your Csv file, you have to make sure that your Csv file have a header row with the following values:
-
name
-
date
-
remark
-
cost
-
tagged
You should end up with a Csv file similar to the figure above.
Multiple tags should be separated by a semi-colon.
Example:
juicy;nice
Alternatively, tags could be wrapped in double quotes and separated by commas.
Example:
"juicy,nice"
Expected Output:
Data from the Csv file is imported, keeping existing spending entries.
4.19. Exporting data : export
The purpose of this command is to let you export your spending data to a
moneygowhere.csv
file at a folder that you like. You could refer to Retrieving File Path.
Only spending data will be exported into However, exporting of Reminder and Budget data is coming in our version 2.0! |
Format: export p/FOLDER_PATH
Examples:
-
export p/Documents
-
export p/Finance
-
export p/C:\Users\user\Documents\MoneyGoWhere
4.20. Undoing previous command : undo
[Coming in v2.0]
Restores the list of spending to the state before the previous undoable command was executed.
Format: undo
Undoable commands: commands that modifies any of the spending ( |
Examples:
-
delete 1
list
undo
(reverses the delete 1 command) -
list
stats
undo
(command fails as there are no undoable commands executed previously) -
delete 1
add n/textbook c/100
undo
(reverses the add n/textbook c/100 command)
undo
(reverses the delete 1 command)
Expected Output:
The last performed action is undone.
4.21. Redoing the previously undone command : redo
[Coming in v2.0]
Reverses the most recent undo command.
Format: redo
Examples:
-
delete 1
undo
(reverses the delete 1 command)
redo
(reapplies the delete 1 command) -
list
redo
(command fails as there are no undo commands executed previously) -
delete
1
add n/textbook c/100
undo
(reverses the add n/textbook c/100 command)
undo
(reverses the delete 1 command)
redo
(reapplies the delete 1 command)
redo
(reapplies the add n/textbook c/100 command)
Expected Output:
The most recent undo command is reversed.
4.22. Clear all data : clear
You can clear all your saved data from this application using this command.
Format: clear
This command clears all stored reminders and spending from the application, and sets the budget to a default value of $1000. |
Expected Output:
All data stored in MoneyGoWhere is cleared and the budget is set to $1000.
5. Glossary
-
Budget: The maximum amount of money set by the user to spend.
-
Safe: The user has spent less or equal to his budget set.
-
Deficit: The user has spent more than his budget set.
-
-
Cost: Money spent by the user.
-
Spending: An expense incurred by the user.
6. Command Summary
Listed below is a summary of all available commands.
Feature | Command |
---|---|
Help |
|
Add |
|
Edit |
|
Delete |
|
List |
|
Find |
|
Sort |
|
Currency |
|
Exchange rate |
|
Budget |
|
Show Budget |
|
Generate statistics |
|
Graph |
|
Import data |
|
Export data |
|
Add reminder |
|
Delete reminder |
|
Undo |
|
Redo |
|
Clear |
|
Exit |
|
The command summary above displays all commands available in MoneyGoWhere.