FinBook User Guide
Table of Contents
-
Introduction
1.1. What is FinBook?
-
How to use this User Guide?
2.1. Icons and symbols
2.2. User Interface (UI) of FinBook
2.3. Command format
2.3.1.Prefix format
-
Quick Start
-
Features
4.1. Managing a client
4.1.1. Adding a client:add
4.1.2. Editing a client:edit
4.1.3. Removing a client’s details:remove
4.1.4. Deleting a client:delete
4.1.4.1. Deleting a single client
4.1.4.2. Deleting multiple clients
4.1.5. Listing all clients:list
4.1.6. Finding a client:find
4.1.7. Viewing Portfolio of a specific client:view
4.2. Data privacy
4.2.1. Locking the application:lock
4.2.2. Setting or updating the password:password
4.2.3. Resetting the password
4.2.4. Hiding sensitive data
4.3. General
4.3.1. Saving the data
4.3.2. Editing the data file
4.3.3. Importing data:import
4.3.4. Exporting data:export
4.3.5. Copying a client’s data:copy
4.3.6. Sorting clients:sort
4.3.7. Changing Light/Dark mode
4.3.8. Exiting the application:exit
-
FAQ
-
Glossary
-
Command Summary
1. Introduction
1.1. What is FinBook?
FinBook is a desktop application for you as a Financial Advisor (FA) to manage your client details and ensure that your data is secured. With FinBook, you can set a unique password, manage and view client’s details, meetings and portfolio as well as many other features to make your daily workflow much more efficient!
FinBook is optimized for use via a Command Line Interface (CLI), which means most of our commands are done by typing. If you can type fast, managing your clients will be a breeze with FinBook. Can’t type fast? Don’t worry! Our Graphical User Interface (GUI) will help you slowly adjust to using our CLI.
So what are you waiting for? Start using FinBook.
2. How to Use this User Guide?
- To get familiar with this user guide you can continue reading, How to Use this User Guide.
- If you are a new user, you can get started with Quick Start to familiarise yourself with FinBook.
- If you are familiar with FinBook, you can refer to the Features to see details of all available commands or refer at Command Summary.
2.1. Icons and symbols
Symbol | Meaning |
---|---|
Additional information that may be useful to know when using FinBook | |
Important information or warnings that you should take note of when using FinBook | |
command |
The highlighted words indicate a command that can be typed into the Command Box of FinBook |
2.2. User Interface (UI) of FinBook
The UI consists of:
Components | Purpose |
---|---|
Menu Bar | Consists of File and Help |
Theme Button | To toggle between Light/Dark mode |
Hide Button | To toggle between hide and unhide mode |
Command Box | To enter commands to be executed |
Message Box | Display results of executed command |
Clients Panel | Displays clients of FinBook |
Portfolio View | Displays portfolio of selected client |
2.3. Command format
Commands in FinBook are constructed using a command word. Most commands consist of a command word, prefixes and parameters
For example,
-
Command word: Indicates what action you want FinBook to do. For this example, the command word
add
will add a client into FinBook -
Prefix: To specify the field of data added. Each prefix always ends with a
/
. For this example,n/
indicates the client’s name,p/
indicates the client’s phone number, etc. -
Parameter: Provides supplementary information to the command word or prefix. For this example,
John Doe
is the parameter forNAME
Notes about the 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/John Doe
. -
Items in square brackets are optional.
e.gn/NAME [t/TAG]
can be used asn/John Doe t/VIPClient
or asn/John Doe
. -
Items with
…
after them can be used multiple times including zero times.
e.g.[t/TAG]…
can be used as ` ` (i.e. 0 times),t/VIPClient
,t/VIPClient t/DoeFamily
etc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable. -
If a parameter is expected only once in the command but you specified it multiple times, only the last occurrence of the parameter will be taken.
e.g. if you specifyp/12341234 p/56785678
, onlyp/56785678
will be taken. -
Extraneous parameters for commands that do not take in parameters (such as
help
,list
,exit
anddelete all
) will be ignored.
e.g. if the command specifieshelp 123
, it will be interpreted ashelp
.
2.3.1. Prefix format
NAME - n/
:
Name of a client.
Parameter restrictions: Only standard English characters are allowed, and it should not be blank.
Examples:
- Valid:
John Doe
,Alex Yeoh
- Invalid:
Александр
,语嫣
PHONE - p/
:
Phone number of a client.
Parameter restrictions: Phone numbers should only contain numbers and be at least 3 digits long, and it should not
be blank.
Examples:
- Valid:
999
,12345678
- Invalid:
10
,+6512345678
EMAIL - e/
:
Email of client.
Parameter description: Emails should be of the format local-part@domain and adhere to the following constraints:
- The local-part should only contain alphanumeric characters and these special characters, excluding the parentheses, (+_.-). The local-part may not start or end with any special characters.
- This is followed by a ‘@’ and then a domain name. The domain name is made up of domain labels separated by periods.
The domain name must:
- end with a domain label at least 2 characters long
- have each domain label start and end with alphanumeric characters
- have each domain label consist of alphanumeric characters, separated only by hyphens, if
any.
Examples:- Valid:
john@gmail.com
,jo_doe@abc.com.sg
- Invalid:
john_@example.com
,john@example_.com
- Valid:
ADDRESS - a/
:
Address of client.
Parameter restrictions: Addresses can take any values, and it should not be blank.
Examples:
- Valid:
Blk 123 @Flower Street #01-01
,abc
INCOME - i/
:
Income of client.
Parameter restrictions: Income should start with $ followed by numbers and should be at least 1 digit long, and it
should not be blank.
Examples:
- Valid:
$8250
,$0
- Invalid:
$10k
,5000
MEETINGDATE or MEETINGDATEWITHTIME - m/
:
Date and time of meeting with client.
Parameter restrictions: Date should be in the form of dd MMM yyyy [HH:mm]. Meeting time is optional.
Examples:
- Valid:
20 Nov 2022
,05 Oct 2023 10:30
- Invalid:
13-Aug-2022
,15 Jul 2023 16.30
MEETINGLOCATION - ml/
:
Location of meeting with client.
Parameter restrictions:
- Location can be in the form of either an address (for in-person meetings), or a link (for online meetings).
- Addresses can take any values, and it should not be blank.
Links should be of the format protocol://host, and links compliant with the format will be automatically detected by Finbook, and the meeting will be automatically categorised as online.
Examples: - Valid:
13 Computing Drive
,https://nus-sg.zoom.us/
TAG - t/
:
Tag of client.
Parameter restrictions: Tags names should be alphanumeric.
Examples:
- Valid:
VIPClient
,10
- Invalid:
VIP-Client
,*
RISK - r/
:
Risk level of client’s portfolio.
Parameter restrictions: Risk level can take any value.
Examples:
- Valid:
High
,abc
,10
PLANS - pl/
:
Plans regarding client’s portfolio.
Parameter restrictions: Plan name can take any value.
Examples:
- Valid:
NTUC Income Plan
,OCBC Plan 2020
ADDITIONAL NOTES - note/
:
Additional notes to client’s portfolio.
Parameter restrictions: Notes can take any value.
Examples:
- Valid:
Plans to save for retirement
,Currently have COVID
3. Quick start
-
Ensure you have Java
11
or above installed in your computer. -
Download the latest
FinBook.jar
from here. -
Copy the file to the folder you want to use as the home folder for your FinBook.
-
Double-click the file to start the app. The GUI similar to the image below should appear in a few seconds. Note how the app contains some sample data.
-
Type the command in the command box and press Enter to execute it. e.g. typing
help
and pressing Enter will open the help window.
Some example commands you can try:-
list
: Lists all contacts. -
add
n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 i/$1000
: Adds a client namedJohn Doe
in FinBook. -
edit
1 r/Low pl/NTUC Income Plan
: Edits the 1st client portfolio risk and plans shown in the current list. -
delete
3
: Deletes the 3rd client shown in the current list. -
delete all
: Deletes all clients. -
exit
: Exits the app.
-
-
Refer to the Features below for details of each command.
4. Features
4.1. Managing a client
4.1.1. Adding a client: add
Adds a client to the FinBook so that you will not forget your client’s personal information.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS i/MONTHLY_INCOME [m/UPCOMING_MEETING_DATES] [ml/MEETING_LOCATION]
[t/TAGS] [r/RISK_LEVEL] [pl/CURRENT_PLANS] [note/ADDITIONAL_NOTES]
Examples:
-
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 i/$100000 m/12 Jan 2022 16:30 t/VIPClient r/high pl/Prudential Health note/Client is currently having COVID
adds a client named John Doe, with a mobile number of 98765432, email address of johnd@example.com etc. to the client list. -
add n/Betsy Crowe t/VIPPClient e/betsycrowe@example.com a/ABC street p/1234567 i/$10 m/23 Feb 2022 r/low pl/NTUC Income Plan
adds a client named Betsy Crowe, with a mobile number of 1234567, email address of betsycrowe@example.com etc. to the client list.
Used command: add n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 i/$1000 m/20 Nov 2022 16:30 ml/13 Computing Drive t/VIPClient r/High pl/Prudential Retirement Plan note/currently having COVID to add John Doe to the client list |
Notes:
-
add
command will refresh the portfolio panel to display “no client selected for view yet!”. -
m/UPCOMING_MEETING_DATES
can be in thedd Mmm yyyy
ordd Mmm yyyy HH:mm
format. - The income
i/
, meeting datem/
, meeting locationml/
, tagst/
, riskr/
, planspl/
and notesnote/
fields are optional fields, and you may leave them empty.
e.g.
add n/Johnny n/John p/98765432 e/johnd@example.com a/John street, block 123, #01-01 i/$100000
will take the client’s name to be John.
4.1.2. Editing a client : edit
Edits an existing client in the FinBook so that you can maintain an updated list of your clients’ personal information when your client’s information change.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [i/MONTHLY_INCOME] [m/UPCOMING_MEETING_DATES]
[ml/MEETING_LOCATION] [t/TAGS] [r/RISK_LEVEL] [pl/CURRENT_PLANS] [note/ADDITIONAL_NOTES]
- Edits the client at the specified
INDEX
. The index refers to the index number shown in the displayed client list. The index must be a positive integer 1, 2, 3, … - For parameters that are not tags, plans or notes, existing values will be overwritten by the input values.
- For tags, plans, or notes, the input values will be added to existing values, so you do not have to type everything again when you want to add a tag, plan, or note.
-
edit
command will automatically view the updated portfolio of the edited client.
Examples:
-
edit 1 p/91234567 e/johndoe@example.com
Edits the phone number and email address of the 1st client to be91234567
andjohndoe@example.com
respectively and automatically displays the updated portfolio of the 1st client. -
edit 2 n/Betsy Crower
Edits the name of the 2nd client to beBetsy Crower
and automatically displays the updated portfolio ofBetsy Crower
.
Notes:
-
edit
command will automatically view the updated portfolio of the edited client. - To remove tags, plans, or notes, refer
to 4.1.3. Removing a client’s details :
remove
4.1.3. Removing a client’s details : remove
Removes an existing client’s tags, plans, or notes in the FinBook so that you can maintain an updated list of your clients’ personal information when your client’s information change.
Format: remove INDEX [t/TAGS] [pl/CURRENT_PLANS] [note/ADDITIONAL_NOTES]
- Edits the client at the specified
INDEX
. The index refers to the index number shown in the displayed client list. The index must be a positive integer 1, 2, 3, … - At least one of the optional fields must be provided.
- The input values will be removed from existing tags, plans or notes.
-
remove
command will automatically view the updated portfolio of the edited client.
Examples:
-
remove 1 t/friends pl/NTUC Income Health
Removes the tagfriends
and the planNTUC Income Health
from the 1st client, and automatically displays the updated portfolio of the 1st client. -
remove 2 note/Plans to save for college education
Removes the notePlans to save for college education
from the 2nd client, and automatically displays the updated portfolio of the 2nd client.
Notes:
-
remove
command will automatically view the updated portfolio of the edited client.
4.1.4. Deleting a client : delete
Four formats of deleting a client so that you can easily so that maintain an updated list of your clients’ personal information.
delete INDEX
delete INDEX1, INDEX2, …
delete STARTINDEX - ENDINDEX
delete all
- The index refers to the index number shown in the displayed client list.
- The index must be a positive integer 1, 2, 3, …
-
delete
command will refresh the portfolio panel to display “no client selected for view yet!”.
4.1.4.1. Deleting a single client
Deletes the specified client from the FinBook.
Format: delete INDEX
- Deletes the client at the specified
INDEX
.
Examples:
-
list
followed bydelete 2
deletes the 2nd client in the FinBook. -
find Betsy
followed bydelete 1
deletes the 1st client in the results of thefind
command.
4.1.4.2. Deleting multiple clients
Deletes multiple specified clients from the FinBook.
Format: delete INDEX1, INDEX2, …
- Deletes the client at the specified
INDEX1
,INDEX2
, and so on. - Value of
INDEX1
,INDEX2
, … cannot contain any repeated values.
Examples:
-
list
followed bydelete 1, 2, 5
deletes the 1st, 2nd and 5th client in the FinBook.
Deletes a range of clients from the FinBook.
Format: delete STARTINDEDX - ENDINDEX
- Deletes the client from
STARTINDEX
toENDINDEX
inclusive. - Value of
STARTINDEX
must be smaller thanENDINDEX
.
Example:
-
list
followed bydelete 1-3
deletes the 1st, 2nd and 3rd client in the FinBook.
Deletes all clients from the FinBook.
Format: delete all
- Deletes all clients in FinBook.
Example:
-
list
followed bydelete all
deletes the all clients in the FinBook.
4.1.5. Listing all clients : list
Shows a list of all clients in the FinBook so that you can see the complete list of all your clients at a glance.
Format: list
4.1.6. Finding a client : find
Finds all clients whose names or tags contain any of the specified keywords (case-insensitive) and displays them as a list with index numbers, so that you can find the client you are looking for without having to scroll through all of your clients.
Format: find [n/NAME] [t/TAG]
- Updated list of clients whose name or tag contain any of the specified keywords is displayed in the list of clients on the left.
- At least one of the parameters must be provided.
- Only one type of parameter can be provided at one time.
-
find
command will refresh the portfolio panel to display “no client selected for view yet!”.
Examples:
-
find n/John n/alex
will find all clients with John or Alex in their names. -
find t/VIPClient t/YuFamily
will find all clients with eitherVIPClient
orYuFamily
tags.
4.1.7. Viewing Portfolio of a specific client: view
Views a specific’s client portfolio so that you can analyse each client before their meeting.
Format: view INDEX
- Displays the portfolio of client at index
INDEX
on the Portfolio section. - Portfolio includes risk level, current plans purchased by the client and additional remarks.
Examples:
-
view 1
displays the risk level and current plans purchased by the 1st client of the Financial book data. -
view 2
displays the risk level and current plans purchased by the 2nd client of the Financial book data. -
find n/Alex
thenview 1
will display the portfolio of Alex.
Used command: view 1 to view portfolio of Alex Yeoh |
Notes:
-
find
command thenview INDEX
will display the portfolio according to the newINDEX
given according to the updated client list. -
sort
command thenview INDEX
will display the portfolio according to the newINDEX
given according to the updated client list.
4.2. Data privacy
4.2.1. Locking the application : lock
Locks the application.
Format: lock
The following dialog box will be displayed:
Notes:
- If a password has not been set, leave the password field empty to unlock the application.
JSON
files containing your data.
4.2.2. Setting or updating the password : password
Sets or updates the FinBook password.
Format: password [old/OLDPASSWORD] new/NEWPASSWORD
- Sets or updates the password to the specified new password
- No need to specify old password if setting the password for the first time
- When updating the password, the specified old password must match the current password
- Be mindful of spaces (
" "
) at the start and end of the specified password, as they will be trimmed-
Specified password:
" "
Effective password: a zero length string
-
Specified password:
" "foobar" "
Effective password:
foobar
-
Examples:
-
password new/foobar
sets the password tofoobar
, given that a password has not yet been set -
password old/foobar new/barfoo
updates the password tobarfoo
, given that the current password isfoobar
.
Notes:
- It is recommended to take note of the warnings and follow the suggestions, if there are any.
4.2.3. Resetting the password
Steps to reset the password:
- Close FinBook
- Locate
preferences.json
(default location is in the same directory as the FinBook executable) - Open
preferences.json
with a text editor - Change the line
"passwordHash" : "$argon2id$xxxxxxxx"
to"passwordHash" : ""
- Save
preferences.json
4.2.4. Hiding sensitive data
Toggles the visibility of FinBook by clicking on the open eye
or closed eye
icon on the top right of the
application.
If the icon is an open eye FinBook displays all client data. |
If the icon is a closed eye FinBook hides all sensitive client data. |
Notes:
- Your mode preference will be automatically saved.
4.3. General
4.3.1. Saving the data
Financial book data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
4.3.2. Editing the data file
Financial book data are saved as a JSON
file [JAR file location]/data/addressbook.json
. Advanced users are welcome
to
update data directly by editing that data file.
4.3.3. Importing data : import
Imports data from a JSON
or CSV
file.
-
JSON
files must be saved by the latest version of FinBook -
CSV
files must be formatted correctly as follows:- The first line of the file must contain these headers in any order:
name
phone
email
address
income
meeting date
tags
risk
plans
- The data in each corresponding column must be valid
-
tags
must be separated by commas,
without spaces (e.g.VIPPClient,YuFamily
) -
plans
must be separated by commas,
without spaces ( e.g.prudential income,NTUC income,prudential health
)
-
- The first line of the file must contain these headers in any order:
Format: import PATH
- Imports data from the file at the specified
PATH
-
PATH
can be a relative or full path -
PATH
must end in.json
or.csv
Examples:
-
import ./data.json
imports data from the filedata.json
which is located in the same directory as the FinBook executable -
import ../data.csv
imports data from the filedata.csv
which is located one level outside the directory of the FinBook executable
4.3.4. Exporting data : export
Exports data to a CSV
file.
Format: export PATH
- Exports data to the file at the specified
PATH
-
PATH
can be a relative or full path -
PATH
must end in.csv
Examples:
-
export ./data.csv
exports data to the filedata.csv
which is located in the same directory as the FinBook executable -
export ../data.csv
exports data to the filedata.csv
which is located one level outside the directory of the FinBook executable
4.3.5. Copying a client’s data : copy
Copies the data of an existing client in the FinBook into your Computer’s clipboard.
Format: copy INDEX
Example: copy 1
with the sample data will result a copied output of:
Name: Alex Yeoh
Phone: 87438807
Email: alexyeoh@example.com
Address: Blk 30 Geylang Street 29, #06-40
Income: $1000
Meeting date: 12 Nov 2022
Tags: friends
- Press
Ctrl-V
to paste the copied text.
4.3.6. Sorting clients : sort
Sorts clients in the FinBook according to given parameter.
Format: sort n/ OR i/ OR m/
- At least one parameter must be provided.
- Only one type of parameter can be provided at one time.
- Sorts clients in ascending order according to the parameter.
Examples:
-
sort n/
Sorts clients in ascending order according to name. -
sort i/
Sorts clients in ascending order according to income. -
sort m/
Sorts clients according to their meeting dates in chronological order.
4.3.7. Changing Light/Dark mode
Toggles the theme of FinBook by clicking on the sun
or moon
icon on the top right of the application.
If icon is a moon FinBook is in Dark mode. |
If icon is a sun FinBook is in Light mode. |
Notes:
- Your mode preference will be automatically saved.
4.3.8. Exiting the application : exit
Exits the application.
Format: exit
5. FAQ
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 FinBook home folder. Alternatively, you may use the export
and import
commands.
Q: If I do not have Java 11, how do I install it on my computer?
A: You can navigate to this site here and download Java 11 according to your system’s specifications.
Q: Do I need an internet connection to run FinBook?
A: No, FinBook can boot up and run all functionalities without an internet connection.
Q: Can I use FinBook on my mobile device?
A: No, FinBook is only designed to run on your desktop/laptop.
6. Glossary
Term | Meaning |
---|---|
Command-line Interface (CLI) | A application that users interact with by typing text. |
Command | A sequence specified text typed by the user to perform an action. |
Prefix | A tag to specify the field of data added. Each prefix always ends with a / . |
Parameter | Users input to a command. |
Field | The data type of client. For example, Name and Income are fields of a client. |
JSON | JSON (JavaScript Object Notation) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other serializable values). |
CSV | A comma-separated values (CSV) file is a delimited text file that uses a comma to separate values. |
Path | A path is a string of characters used to uniquely identify a location in a directory structure. |
7. Command summary
Action | Format, Examples |
---|---|
Add |
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS i/MONTHLY_INCOME [m/UPCOMING_MEETING_DATES] [t/TAGS] [r/RISK_LEVEL] [pl/CURRENT_PLANS] [note/ADDITIONAL_NOTES] e.g., add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 i/$100000 m/12 Jan 2022 t/VIPClient r/high pl/Prudential Health note/Client is currently having COVID
|
Delete |
delete INDEX delete INDEX1, INDEX2, … delete STARTINDEX - ENDINDEX delete all e.g., delete 3 delete 1, 2, 5 delete 2-5
|
Copy |
copy INDEX e.g., copy 1
|
Edit |
edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG] [r/RISK_LEVEL] [pl/CURRENT_PLANS] [note/ADDITIONAL_NOTES] e.g., edit 2 n/James Lee e/jameslee@example.com
|
List | list |
Find |
find [n/NAME] [t/TAG] e.g., find t/VIPClient
|
View Portfolio |
view INDEX e.g., view 1
|
Lock application | lock |
Password |
password [old/OLDPASSWORD] new/NEWPASSWORD e.g., password old/foobar new/barfoo
|
Copy |
copy INDEX e.g., copy 1
|
Import |
import PATH e.g., import ./data.json
|
Export |
export PATH e.g., export ./data.csv
|
Sort |
sort PARAM e.g., sort n/
|
Exit application | exit |