User Guide
UniSave is a desktop app for managing expenses, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, UniSave can get your financial management tasks done faster than traditional GUI apps. Choose a section from the table of contents below and start using UniSave.
- Table of Contents
- 1. Overview
- 2. Quick start
-
3. Features
- 3.1 Clear data:
clear
- 3.2 Set budget :
set-b
- 3.3 Add an expense:
add
- 3.4 Edit an expense:
edit
- 3.5 Delete an expense:
delete
- 3.6 View an expense :
view
- 3.7 View categories :
view-c
- 3.8 Add description to expense
- 3.9 Delete description of expense
- 3.10 Filter expenses
- 3.11 List all expenses :
list
- 3.12 Sort expenses
- 3.13 Exchange Currency :
exchange
- 3.14 Show Currency Codes:
show-codes
- 3.15 Show Exchange Rates:
show-rates
- 3.16 Show Statistics:
show-stats
- 3.17 View help:
help
- 3.18 Exiting the program :
exit
- 3.19 Saving the data
- 3.1 Clear data:
- 4. FAQ(Frequently Asked Question)
- 5. Glossary
- 6. Command Summary
1. Overview
UniSave is your desktop finance manager. It is an application that helps you manage your finance by tracking your spending, setting budget for each month, as well as viewing your expenses in various categories. Moreover, UniSave allows tracking expenses in different currencies.
UniSave targets university students who tend to incur a large amount of spending, including tuition fees, housing fees, transport and so on. It is catered especially for students who are more familiar with desktop applications and type fast. UniSave is available for the Linux, Windows and Mac OS operating systems.
2. Quick start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
UniSave.jar
from here. -
Copy the file to the folder you want to use as the home folder for your UniSave.
-
For Windows user, double-click the file to start the app. For MacOS user, open your terminal and set the directory to be the same as UniSave, enter
java -jar UniSave.jar
. In a few seconds, you should see a GUI similar to the diagram below. Note the app contains some sample data.
-
Type the command in the command box and press
Enter
to execute it.Some example commands you can try:
-
list
: Lists all expenses. -
set-b 1000
: Set the budget of UniSave to be 1000 SGD (Singapore Dollar is the Default Currency for UniSave). -
add a/50 c/entertainment t/1 d/yayymovie!
: Adds an expense of50
SGD under categoryentertainment
you spent1
day ago (i.e. yesterday), withyayymovie!
description. -
exchange cc/cny
: Change the currency of the whole expense book to Chinese Yuan (CNY is the currency code for Chinese Yuan). -
show-stats
: Show a statistic overview of all your expenses. -
delete
1
: Deletes the expense with index 1. -
exit
: Exits the app.
-
-
Refer to the Features below for details of each command.
3. Features
- 3.1 Clear data:
clear
- 3.2 Set budget :
set-b
- 3.3 Add an expense:
add
- 3.4 Edit an expense:
edit
- 3.5 Delete an expense:
delete
- 3.6 View an expense :
view
- 3.7 View categories :
view-c
- 3.8 Add description to expense
- 3.9 Delete description of expense
- 3.10 Filter expenses
- 3.11 List all expenses :
list
- 3.12 Sort expenses
- 3.13 Exchange Currency :
exchange
- 3.14 Show Currency Codes:
show-codes
- 3.15 Show Exchange Rates:
show-rates
- 3.16 Show Statistics:
show-stats
- 3.17 View help:
help
- 3.18 Exiting the program :
exit
- 3.19 Saving the data
Notes about the command format:
-
Words in
UPPER_CASE
are the parameters to be supplied by the user.
e.g. inadd a/AMOUNT
,AMOUNT
is a parameter which can be used asadd a/100
. -
Items in square brackets are optional (zero or one instance).
e.ga/AMOUNT c/CATEGORY [t/date]
can be used asa/100 c/shopping
or asa/100 c/shopping t/2020-10-30
-
Parameters can be in any order.
e.g. if the command specifiesa/AMOUNT c/CATEGORY
,c/CATEGORY a/AMOUNT
is also acceptable. -
Multiple instances of the same prefix/flag will not throw an error. However, the app will only read the last instance in the input. e.g. if
add a/100 c/entertainment c/food
will add the expense to “food” category. -
All additional input after commands which do not have input fields such as list, exit, clear, etc. will be ignored. eg.
help
andhelp 123
will have the same effect. -
Prefixes are case-sensitive. eg.
d/
is not the same asD/
. e.g. if the command specifiesa/AMOUNT c/CATEGORY, c/CATEGORY a/AMOUNT
is also acceptable. - Here are the prefix used in our command.
- a/ : amount
- c/ : category
- t/ : date of expenses
- d/ : description for the expenses
- cc/ : currency code of currency
- Pop up windows for help, show-stats, show-rates, show-codes commands can be closed with keyboard shortcut “q”.
Commands
3.1 Clear data in UniSave : clear
You can use this command to clear the sample data when you first launch the app, or use it whenever you want to start a new expense book.
Note : Budget will be cleared when you use this command.
Format: clear
Example:
-
clear
: Clear all data in UniSave.
Navigate back to the feature list: Features
3.2 Set budget : set-b
Set the budget for UniSave. Default budget is 0 Singapore Dollar (SGD). When total spending exceed the budget, UniSave will remind you to set a new budget.
Format: set-b BUDGET
Example:
-
set-b 500
: Set the budget to 500.
Note :
- You can change the Currency before setting budget with command
exchange cc/CURRENCY_CODE
, so that you can set your budget in another currency. to see a full list of supported currencies with their currency codes use commandshow-codes
. - Budget should only be positive numbers.
Navigate back to the feature list: Features
3.3 Add an expense: add
Add a new expense to UniSave.
Format: add a/AMOUNT c/CATEGORY [t/DATE] [d/description]
Note :
- The amount of an expense should only be positive numbers.
- Date can be entered in one of these two forms:
i) Enter date as a single integer, corresponding to number of days ago.
E.g: 1 means you made the expenses one day ago.
(Note that when date is given as a single integer, it should not be less than 0 or greater than 3650.)
ii) Enter date as the exact date in YYYY-MM-DD format.
E.g: 2020-10-28
- The date and field are optional but amount and category are compulsory.
- When the same field is entered more than once, the last one is chosen.
E.g. There are t/2 and t/3 being entered, t/3 will be chosen.
- When the date field is left empty, the default is today.
When description field is left empty, the default is no description.
- You may enter each field in a different order. That means
add a/100 c/food t/1 d/milk tea membership card
gives the same result asadd t/1 d/milk tea membership card c/food a/100
.
Examples:
add a/100 c/food t/1 d/milk tea membership card
add a/50 c/entertainment t/2020-09-28 d/yayymovie!
add a/100 c/food
Navigate back to the feature list: Features
3.4 Edit an expense : edit
Edit the expense at the specified INDEX.
Format: edit INDEX [a/AMOUNT] [c/CATEGORY] [t/DATE] [d/DESCRIPTION]
Note :
- The INDEX refers to the index number shown in the expense list.
- The INDEX must be a positive integer greater than 0. eg. 1, 2, 3, …
- If no field is provided, no change will be done.
Examples:
-
edit 1 a/10.2
: Edit amount of the first expense to 10.2.
Navigate back to the feature list: Features
3.5 Delete an expense: delete
Deletes the expense at the specified INDEX
.
Format: delete INDEX
Note :
- The INDEX refers to the index number shown in the expense list.
- The INDEX must be a positive integer 1, 2, 3, …
Examples:
-
list
followed bydelete 2
deletes the 2nd expense in the expense list.
Navigate back to the feature list: Features
3.6 View an expense : view
View an expense in the expense list.
Format: view INDEX
Note :
- The INDEX refers to the index number shown in the displayed expense list.
- The INDEX must be a positive integer 1, 2, 3, …
Examples:
-
view 3
views theamount, category, date and description
of the third expense displayed in the list.
Navigate back to the feature list: Features
3.7 View categories : view-c
Show all existing categories in the expense list. Note that a category is added automatically when you add an expense.
Format: view-c
Examples:
-
view-c
: View all types of categories saved for expenses.
Navigate back to the feature list: Features
3.8 Add description to expense : add-d
Add a description to an existing expense in the finance book.
Note :
- The newly added description will override the existing description of the specified expense.
- If you input
add-d 2
, this is invalid as the “d/” prefix is missing. If you put the description field as “d/” or “d/ “ (with blanks only), then the existing description will be removed.
Format: add-d INDEX d/DESCRIPTION
- Add description field to the expense at the specified
INDEX
. TheINDEX
refers to the index number shown in the displayed expense list. The index must be a positive integer 1, 2, 3, … - Existing description will be overwrote to the new description.
Examples:
-
add-d 3 d/movies
: Add the description fieldmovies
to the 3rd expense.
Navigate back to the feature list: Features
3.9 Delete description of expense: delete-d
Delete the description field of an existing expense.
Format: delete-d INDEX
- Deletes the description of the expense at the specified INDEX.
- The
INDEX
refers to the index number shown in the expense list. - The
INDEX
must be a positive integer 1, 2, 3, …
Note :
- The description field of the specified expense will still exist, just that it will be empty.
Examples:
delete-d 6
Deletes the description field of the 6th expense.
Navigate back to the feature list: Features
3.10 Filter Expenses
Filters for specific expense(s) based on the input command.
3.10.1 Filter by category: filter-c
Show all the expenses whose category match the specified category.
Format: filter-c CATEGORY
Examples:
-
filter-c entertainment
: Filter all the expenses under categoryentertainment
.
Navigate back to the feature list: Features
3.10.2 Filter by date : filter-t
Show all the expenses whose date match the specified date.
Format: filter-t YYYY-MM-DD
or filter-t NUMBEROFDAYSAGO
Note :
- NUMBEROFDAYSAGO is used to specify how many days ago from current day.
- It accepts number from 0 to 3650 (10 years).
Examples:
-
filter-t 3
: filter all the expenses that are saved on 3 days ago from current day. -
filter-t 2020-10-23
: filter all the expenses that are saved on2020-10-23
.
Navigate back to the feature list: Features
3.10.3 Filter by description : filter-d
Show all the expenses whose description contains the specified description.
Format: filter-d DESCRIPTION
Note :
- Multiple description input is allowed.
Examples:
-
filter-d movie
: filter all the expenses which description has the keywordmovie
.
Navigate back to the feature list: Features
3.11 List all expenses : list
You can list out all the expenses stored in UniSave.
Format: list
Examples:
-
list
: list all the expenses in UniSave.
Navigate back to the feature list: Features
3.12 Sort the expenses
Sort the expense(s) based on the input command.
3.12.1 Sort expenses by the amount of each expense: sort-a
Sort the expenses in specified order.
Format: sort-a descending
sort-a ascending
Note :
- Only ascending or descending order is valid.
Examples:
-
sort-a ascending
: sort the expenses according to amount in ascending order.
Navigate back to the feature list: Features
3.12.2 Sort expenses by the date of each expense: sort-t
Sort the expenses according to date in specified order.
Format: sort-t ascending
sort-t descending
Note :
- Only ascending or descending order is valid.
Examples:
-
sort-t ascending
: sort the expenses according to date in ascending order (i.e. from past to present.).
Navigate back to the feature list: Features
3.13 Exchange Currency : exchange
Convert the currency of UniSave from current currency to the input currency of the currency code,
Note :
- Currency code is case-insensitive. E.g. cny is the same as CNY.
- Use command show-codes to see a full list of currency codes supported by UniSave.
Format: exchange cc/CURRENCY_CODE
Example: exchange cc/CNY
: Change UniSave’s current currency to CNY currency.
Navigate back to the feature list: Features
3.14 Show Currency Codes: show-codes
Show a full list of supported currencies with their corresponding currency codes.
Format: show-codes
Navigate back to the feature list: Features
3.15 Show Exchange Rates: show-rates
Show a full list of exchange rates adapted by UniSave. Note that the exchange rates were last updated at 2020-10-31 from currency-layer website, there may be a slight inaccuracy compared to current exchange rates.
Format: show-rates
Navigate back to the feature list: Features
3.16 Show Statistics: show-stats
Show a statistic overview of the expenses, such as the total number of expenses as well as the total spending in each category.
There are arranging in descending order in which the category that you spent the most will be on the first row.
Format: show-stats
Examples: show-stats
Navigate back to the feature list: Features
3.17 : View help: help
Opens a window with a link that directs you to our user guide, and a table shows all the commands of UniSave.
Format: help
Navigate back to the feature list: Features
3.18 Exit the program : exit
Exits the program.
Format: exit
Navigate back to the feature list: Features
3.19 Saving the data
UniSave data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Navigate back to the feature list: Features
4. FAQ(Frequently Asked Question)
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it
creates with the file that contains the data of your previous UniSave home folder.
——————————————————————————————————————–
5. Glossary
Term | Explanation |
---|---|
UniSave | UniSave refers to the name of the application. |
Expense | An expense consists of an amount spent in some currency, the date on which you spend the money, a category that you classify this spending into, and a description so that you can recall the details when you view this spending again later. |
CLI | A command-line interface (CLI) processes commands to a computer program in the form of lines of text. |
GUI | The graphical user interface is a form of user interface that allows users to interact with a computer program through graphical icons instead of text-based user interfaces or text navigation. |
6. Command Summary
Action | Format, Examples |
---|---|
Clear data | clear |
Set budget |
set-b BUDGET e.g., set-b 1000
|
Add |
add a/AMOUNT c/CATEGORY [t/DATE] [d/DESCRIPTION] e.g., add a/100 c/food
|
Edit |
edit INDEX [a/AMOUNT] [c/CATEGORY] [t/DATE] [d/DESCRIPTION] e.g., edit 1 a/12
|
Delete |
delete INDEX e.g., delete 3
|
View |
view INDEX e.g., view 5
|
View categories | view-c |
Add description |
add-d INDEX d/DESCRIPTION e.g., add-d 5 d/had dinner
|
Delete description |
delete-d INDEX e.g., delete-d 5
|
Filter by category |
filter-c CATEGORY e.g., filter-c food
|
Filter by date |
filter-t YYYY-MM-DD e.g., filter-t 2020-02-20
|
Filter by description |
filter-d DESCRIPTION e.g., filter-d movies
|
List | list |
Sort by amount |
sort-a ORDER e.g., sort-a acsending
|
Sort by date |
sort-t ORDER e.g., sort-t descending
|
Exchange Currency |
exchange cc/CURRENCY_CODE e.g., exchange cc/CNY
|
Show Currency Codes | show-codes |
Show Exchange Rates | show-rates |
Show Statistic | show-stats |
Help |
help e.g., help
|
Exit |
exit e.g., exit
|