logo

Welcome to LeadsForce's User Guide! Find answers and step-by-step instructions to the features in LeadsForce, scroll down the table of contents below to get started ☺️

Table of Contents


1. Introduction

Are you a student financial advisor (FA) who finds it difficult to manage client information, and would like a software that could help to keep track of meetings? If so, LeadsForce might just be the app for you!

LeadsForce is a client management software that helps entry-level and student financial advisors effortlessly keep track of essential client information and meetings. It is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).

Managing your leads has never been easier.

1.1 Reading this User Guide

When reading our User Guide, here are some important information to take note of.

1.1.1 Icons and their meaning

Icon Meaning of icons
Notes: specific conditions or behaviours of a feature.
Tips: suggestions that can help LeadsForce run faster.
Warnings: important information to take note of when using LeadsForce. When these warnings are not followed, this can result in LeadsForce crashing or having corrupted data files.

2. Quick start

  1. Ensure you have Java 11 or above installed on your computer.

  2. Download the latest LeadsForce.jar from here.

  3. Copy the file to the folder you want to use as the home folder for your LeadsForce.

  4. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
    Ui

  5. Type the command in the command box and press Enter to execute it. Here are 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 : Creates a contact named John Doe to the Address Book.

    • delete 3 : Deletes the contact with the client ID 3.

    • clear : Deletes all contacts.

    • exit : Exits the app.

  6. Refer to the Features below for details of each command.


3. Client Information

This section details the client information that financial advisors can keep track of with LeadsForce. Every client that is registered in LeadsForce has the following attributes that have the corresponding attribute prefix and value(s). The attribute prefix and value specified here constitute the parameter format to be used in the commands of several features.

Attribute Prefix Value Multiplicity
ID i/ CLIENT_ID

CLIENT_ID: A non-negative integer e.g. 0, 1, 2, 3, …​.
1
Name n/ NAME

NAME: should only contain alphanumeric characters and spaces, and it should not be blank (Character limit: 30) e.g. John Doe.
1
Email e/ EMAIL

Email: should be of the format local-part@domain e.g. johnd@example.com (Character limit: 100).
1
Address a/ ADDRESS

ADDRESS: can take any value, and it can be blank (Character limit: 100) e.g. John street, block 123, #01-01.
0 to 1
Current financial plans c/ CURRENT_PLAN

CURRENT_PLAN: can take any value, and it can be blank (Character limit: 100) e.g. Prudential PRUwealth.
0 to 1
Disposable Income d/ INCOME

INCOME: A non-negative number (Character limit: 15) e.g. 0.00, 1000.00, 3500.50, …​.
• If no value is given, default Disposable Income for a client will be set to 0.00.
0 to 1
Next Meeting m/ DATE (START_TIME~END_TIME), LOCATION

DATE: is in the format dd-MM-yyyy, where day, month and year are numerical values.
START_TIME and END_TIME: are in hh:mm (24-hour format).
LOCATION: can take any value, but it cannot be blank.
• More information below.
0 to 1
Last met l/ DATE

DATE: should be of the format dd-MM-yyyy e.g. 24-10-2021.
• More information below.
0 to 1
Contact number p/ PHONE_NUMBER

PHONE_NUMBER: should only contain numbers, and it should be at least 3 digits long e.g. 8743 8807.
0 to 1
Risk appetite r/ RISK_APPETITE

RISK_APPETITE: An integer from 1-5, where 1 is very low-risk tolerance and 5 is very high-risk tolerance.
0 to 1
Tag t/ TAG

TAG: should be alphanumeric e.g. friends.
• More information below.
0 or more

3.1 Duplicate Clients

A client is considered to be the same as another client if they share the same name and email.

LeadsForce has checks that prevent users from creating duplicated contacts.

Notes about having the same client information for various attributes:

  • Users have the flexibility to give the same name, email, phone number or any other attributes to multiple users, as long as 2 separate clients do not end up with the same name and email.

3.2 Next Meeting Attribute

The Next Meeting attribute refers to the next meeting that the financial advisor using has with the client. Each Next Meeting consists of a DATE, START_TIME, END_TIME and a LOCATION.

Parameter Format m/DATE (START_TIME~END_TIME), LOCATION
Example m/25-12-2021 (00:00~23:59), Santa's Workshop
DATE is in the format dd-MM-yyyy, where day, month and year are numerical values.
START_TIME and END_TIME are in hh:mm (24-hour format).
LOCATION can take any value, but it cannot be blank.
Next Meeting will automatically be updated to null when the current time passes the date and end time of the meeting and this happens whenever the application is booted up. At the same time, the Last Met attribute will be updated to take on the current date.

3.3 Last Met Attribute

The Last Met attribute refers to the last date the user has met the client.

Parameter Format l/DATE
Example l/25-10-2021
DATE is in the format dd-MM-yyyy, where day, month and year are numerical values.
Last Met cannot take dates in the future, but any other past dates up to today’s date is OK.

3.4 Tag Attribute

The Tag attribute refers to the tags associated with the client. A client can have multiple tags, including zero tags.

Parameter Format t/TAG
Example t/family
TAG: should be alphanumeric.
• For operation against multiple tags, you can specify the parameter multiple times in the command. e.g. to assign multiple tags to an existing client of ID 100, you can do edit 100 t/friends t/family.
• To clear all the tags associated with a client, you can do edit CLIENT_ID t/.
• Note that all commands that modify the tags of a client in any way will overwrite all existing tags of the client. e.g. if a client previously had the tags: family and friends, doing the command edit CLIENT_ID t/rejected will wipe out all previous tags and the client now has only the rejected tag.

4. Navigating LeadsForce

This section details the various components of LeadsForce’s interface and how you could go about navigating our application. An overview of LeadsForce’s interface is shown below.

4.1 Command View


The command view is where you will be able to input commands into LeadsForce. The command view consists of the following components:

  1. Toolbar
    • Help bar that directs users to LeadsForce’s user guide
    • File bar where users can exit the app
    • Address Book bar which allows users to switch between address books
    • Themes bar which allows users to switch between different themes

  2. Command Box
    • This is where users can input their commands into LeadsForce

  3. Command Result Display
    • This is where LeadsForce will display details of the commands from the app

  4. Filter tag panel
    • This panel provides an at-a-glance view of the tags that all the clients have. By clicking on one of these tags and pressing enter, LeadsForce can filter out clients based on the tag that is chosen. Further details of the filter command can be found here

Not liking the current colour scheme? LeadsForce offers 3 other darker themes for you to use, toggle the theme bar to change the colour scheme of the application.

Space theme Twilight theme Dark theme

4.2 Client List View

The client list view consists of the list of clients from the user’s address book, and provides an overview of their client’s information.

• This list will change according to the commands used such as list and search.
• When opening the application, all clients in an address book will be shown.
• Apart from the filter tag panel on top, you can also click on the tag here to filter clients based on the tag name.

4.3 Client Info View

The client information view provides in-depth information about a client and fully shows all their information without truncated values. Using the View command, users can fully view information of a particular client in the client info view.

4.4 Meeting Schedule View

The meeting schedule view showcases the upcoming meetings that the client has, and they are sorted from the earliest to the latest meeting that the client has. When first booting up the application, all meetings will be shown. Using the Schedule command can change the list of meetings shown to the user.

5. Features

This section details the various features available in a single address book in LeadsForce. These features are generally used in the management of client information and client meetings.

Notes about the command format:

  • In the format for the commands provided, words that are in UPPERCASE refers to the input that the user must key in.
  • Items in square brackets are optional. e.g. n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.
  • <attribute> refers to an arbitrary attribute prefix. (i.e. any attribute prefix can be substituted unless otherwise stated). For a comprehensive list of client’s attributes available, please refer to this section.
  • We use ... to indicate multiplicity. Parameters with ... after them can be used multiple times, including zero times if it is also optional. e.g. KEYWORD... can be used as John, alex david etc. Whereas, [t/TAG]... can be used as ` ` (i.e. 0 times), t/friend, t/friend t/family etc.
  • Parameters with prefix e.g. n/NAME can be in any order. e.g. if the command specifies n/NAME p/PHONE_NUMBER, inputting p/PHONE_NUMBER n/NAME is also acceptable.
  • Prefix-less parameters must occur before parameters with prefixes. e.g. if the command specifies KEYWORD... p/PHONE_NUMBER, then p/PHONE_NUMBER KEYWORD... is not acceptable.
  • If a parameter is expected only once in the command (i.e. not appended with ...), but you specified it multiple times, only the last occurrence of the parameter will be taken. e.g. if you specify p/12341234 p/56785678, only p/56785678 will be taken.
  • Extraneous parameters for commands that do not take in parameters (such as help, list, exit and clear) will be ignored. e.g. if the command specifies help 123, it will be interpreted as help.
  • Some attributes are not explicitly stated due to space constraints, e.g. [<attribute>/VALUE]... means that you can optionally (indicated by []) provide one or more (indicated by ...) parameters of the format <attribute>/VALUE.
  • For the multiplicity of specific client attributes, please refer to this section.

5.1 Create New Contact : add

Adds a new client to the address book.

Format add n/CLIENT_NAME e/EMAIL [<attribute>/VALUE]...
Example add n/Benedict Chua e/benchua@hotmail.com
add n/Keith e/keithtan@ymail.com p/12345678 d/10000 r/4
• A client must have minimally the name and email prefix filled during creation
• Any other prefixes are optional, except for Client ID as Client ID cannot be given to the client.
• Prefixes that can be added can be found in the Client Info Section

Expected Outcome:
For instance, if the command add n/Keith e/keithtan@ymail.com p/12345678 r/4 was used, a new client will be recorded in the client list view with the corresponding attributes.

5.2 Retrieve Particular Contact : view

View client’s information in detail.

Format view CLIENT_ID
Example view 1 would be used to view client 1’s information

Expected Outcome:

For instance, if Alex Yeoh is the client with Client ID 1, the following will be shown in the client info view of LeadsForce.

5.3 Update Existing Contact : edit

Update the attributes of existing users using the prefix of the client’s attribute, and set/edit meetings with clients.

  • Multiple attributes could be changed with one command.
  • Multiple clients can be edited at the same time with the provided attributes by indicating their ids separated by a space.
Format edit CLIENT_ID... <attribute>/CHANGED_VALUE...
Example edit 3 p/12345678 r/5 command changes client 3’s contact number to “12345678” and the risk appetite to 5.
edit 15 13 r/3 command changes the risk appetite of client 13 & 15 to “3”.
edit 3 4 5 m/21-09-2021 (09:00~10:00), McDonald's sets a meeting for clients 3, 4 and 5 to be on 21st September 2021 from 9am to 10 am at McDonald’s
• Client ID cannot be changed.
• Multiple clients and their attributes can be updated with one edit command! For instance, if you’re planning to organise a meeting with several clients, you could simply use this feature to do so.

Expected Outcome:
The corresponding information will be changed to the attributes specified by the client. This change can be seen in the client list view. For instance, the command edit 3 p/12345678 r/5 will change client 3’s information as such.

5.4 Delete particular contact : delete

Deletes an existing client from the address book using their client id.

Format delete CLIENT_ID...
Example delete 7 will delete client with client id 7
delete 4 8 6 will delete the clients whose client id is 4, 6 and 8
• Multiple clients can be deleted with one delete command
• This action is irreversible. Once you have deleted a client, the client and his/her corresponding information will be removed from the storage file.

Expected Outcome:
The corresponding user will be removed from the client list view.

5.5 List all contacts : list

Shows the full list of all clients in the address book.

Format list
• As long as the first word in the command is list, the command will still work regardless of the additional inputs.
eg. the command list asdknkjsaf will still work

Expected Outcome:
All clients in an address book would be shown in the client view list.

5.6 Sort Contacts : sort

Sorts clients in order based on the inputted attribute. Clients can be sorted in ascending or descending order, and is based on the given SORT_DIRECTION.

Format sort <attribute>/SORT_DIRECTION...

SORT_DIRECTION can take on the values asc or dsc, and will sort the clients based on the given attribute in an ascending and descending order respectively.
Examples sort r/ASC will sort the list by ascending risk-appetite
sort i/dsc will sort the list by descending client id
• If multiple attributes are provided, then the clients will be sorted by the attributes sequentially.
e.g. sort d/asc m/dsc, this will sort the clients by disposable income in ascending order first, then for those clients whose disposable income are the same, they will be sorted by next meeting in descending order.
• Sorting by the attribute Tag (t/) is not supported.
• The tags are case-insensitive. (ASC and asc are both okay.)

Expected Outcome:
For instance, if you were to sort clients by risk appetite.

sort r/asc sort r/dsc

5.7 Find meeting schedule : schedule

Finds the meeting schedule on a specified date.

Format schedule [DATE]
Examples schedule 22-09-2021 allow the user to view the schedule that the user has on the 22nd September 2021.
schedule displays all meetings
DATE has to be in the format of dd-MM-yyyy.
• if the DATE is not specified, all meetings will be displayed.

Expected Outcome:
For instance, using schedule 30-11-2021 will produce the following result.

Before After

Finds clients whose contacts match with the given keywords.

Format search KEYWORD... [<attribute>/ATTRIBUTE_KEYWORD]...

KEYWORD will be used to match with all attributes of the client.
ATTRIBUTE_KEYWORD refers to the keyword that is to be matched with the corresponding client attribute.
Examples search John returns john and John Doe
search alex david returns Alex Yeoh, David Li
• If no KEYWORD is provided, search will be based on <attribute>/ATTRIBUTE_KEYWORD only.
• The search is case-insensitive. e.g keith will match Keith.
• The order of the keywords does not matter. e.g. John Doe will match Doe John.
• Clients matching at least one keyword will be returned).
e.g. Hans Bo will return Hans Gruber, Bo Yang.
• If an attribute keyword is provided, only clients whose attribute matches with the attribute keyword will be returned.
e.g. Tom Tim e/@gmail.com will return Tom Lee e/Tom@gmail.com and not Tim Shum e/Tim@yahoo.com.

Expected Outcome:
For instance, using search Alex will produce the following result.

Before After

5.9 Filter current list by keywords : filter

Filters the current list by the given keywords.

Format filter KEYWORD... [<attribute>/ATTRIBUTE_KEYWORD]...

KEYWORD will be used to match with all attributes of the client.
ATTRIBUTE_KEYWORD refers to the keyword that is to be matched with the corresponding client attribute.
Examples filter John returns john and John Doe
filter alex david returns Alex Yeoh, David Li
• Works similar to search but filter works based on the current list shown as opposed to entire lists of contacts.
• If no KEYWORD is provided, then filter will be based on <attribute>/ATTRIBUTE_KEYWORD
• The filter is case-insensitive. e.g keith will match Keith.
• The order of the keywords does not matter. e.g. John Doe will match Doe John.
• Clients matching at least one keyword will be returned).
e.g. Hans Bo will return Hans Gruber, Bo Yang.
• If an attribute keyword is provided, only clients whose attribute matches with the attribute keyword will be returned.
e.g. Tom Tim e/@gmail.com will return Tom Lee e/Tom@gmail.com and not Tim Shum e/Tim@yahoo.com.
• Use the tags found under the command box to quickly filter clients by their tags. Simply click on a tag and press enter to filter clients with the specific tag.
eg. Pressing the classmate button allows you to filter clients with the classmate tag.

Expected Outcome:
For instance, using filter t/colleagues will produce the following result.

Before After

5.10 Clearing all entries : clear

Clears all entries from the address book.

Format clear
• As long as the first word in the command is clear, the command will still work regardless of the additional inputs.
eg. the command clear asdknkjsaf will still work.
• This command clears all clients in the current address book
• After inputting clear, another prompt will appear requesting confirmation to clear the address book. The input required for the confirmation will either be:
yes: to confirm and proceed with the clear command.
no: to cancel the clear command.
• This action is irreversible. Once you have cleared all client information from the current address book, this information will be removed from the storage file and will not be retrievable.

Expected Outcome:

5.11 Getting help : help

Opens a popup displaying the URL for our User Guide. Users can copy the URL to visit this User Guide.

Format help
• As long as the first word in the command is help, the command will still work regardless of the additional inputs.
eg. the command help asdknkjsaf will still work

5.12 Exiting the program : exit

Exits LeadsForce.

Format exit
• As long as the first word in the command is exit, the command will still work regardless of the additional inputs.
eg. the command exit asdknkjsaf will still work

5.13 Saving the data

LeadsForce’s data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.

5.14 Edit data file

LeadsForce’s 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.

If your changes to the data file make its format invalid, LeadsForce will discard all data and start with an empty data file at the next run.

6. Multiple Address Books Feature

This section details the multiple address book features in LeadsForce. Separate your clients into different address books to better manage your clients!

More information on the command format can be found here.

6.1 Create new address book : ab create

Create a new address book by the name provided and switches to it.

Format ab create ADDRESSBOOK_NAME

ADDRESSBOOK_NAME refers to the name to be given to the new address book.
Example ab create vip clients will create a new address book named vip clients
• The name of the address book that you seek to create cannot be the same as an existing address book.

Expected Outcome:
The command ab create newAddressBook creates a new address book as shown.

6.2 Delete existing address book : ab delete

Delete an address book that currently exists.

Format ab delete ADDRESSBOOK_NAME

ADDRESSBOOK_NAME refers to the name of the address book to be deleted.
Example ab delete test will delete the address book named test
• The current address book cannot be deleted, switch to another address book first before deleting the address book.

6.3 Switch to different address book : ab switch

Switch to a different address book that currently exists.

Format ab switch ADDRESSBOOK_NAME

ADDRESSBOOK_NAME refers to the name of the address book to switch to .
Example ab switch other will switch over to the address book named other
• Switch between different address books by toggling the address book tab (which is the 3rd tab from the left)

Expected Outcome:
For instance, using ab switch youngadults when on the newAddressBook address book will produce the following result.

Before After

6.4 List all address book : ab list

List all the names of all the existing address books.

Format ab list
• As long as the first two words in the command is ab list, the command will still work regardless of the additional inputs.
eg. the command ab list asdknkjsaf will still work

Expected Outcome:
If you have 2 address books named newAddressBook and YoungAdults, here’s the output from the command result view.



7. FAQ

Q: Is LeadsForce free to use?
A: Yes, LeadsForce is free for use as long as you have a computer with you.

Q: Does LeadsForce require an internet connection?
A: No, LeadsForce doesn’t require any internet connection. This is great because you can use LeadsForce without having to worry about having an adequate internet connection!

Q: Is LeadsForce safe to use?
A: Yes, LeadsForce is 100% safe for use! Our team regularly reviews our code to ensure that there aren’t any security vulnerabilities.

Q: Will LeadsForce be consistently updated?
A: Yes, our team is consistently updating LeadsForce to better meet the needs of our users.

Q: Can I use LeadsForce on a mobile device?
A: Unfortunately, LeadsForce is only available for use on computers. The team is thinking of implementing a mobile version of LeadsForce in the near future so do tune in to our updates. 🙂

Q: I have downloaded the LeadsForce.jar and is unable to open the application. Is there anything I could do?
A: Yes, there is another way to open up LeadsForce. Open the command prompt on your computer, navigate to the directory where you have stored the LeadsForce.jar file, and type java -jar LeadsForce.jar.

Q: How do I transfer my data to another computer?
A: Install LeadsForce on the other computer and overwrite the empty data file it creates with the file that contains the data of your previous LeadsForce home folder.


8. Troubleshooting

Unable to launch LeadsForce

  • Do check that you indeed have Java 11 or above installed in your computer.

For Mac users,

  1. Open the terminal and type java -version, and press enter.
  2. If you get the version information and have made sure that your java version is 11 and above, you have downloaded the correct java version and can skip this tutorial. Otherwise, please continue with step 3.
  3. Otherwise, head to the Oracle website here to download the mac version of the java JDK.

For Windows users,

  1. Open the command prompt, and type java -version, and press enter.
  2. If you get the version information and have made sure that your java version is 11 and above, you have downloaded the correct java version and can skip this tutorial. Otherwise, please continue with step 3.
  3. Go to start menuSystemAdvancedEnvironment Variable. Set the JAVA_HOME to the path of your JDK, and press update. For more details, the link to a more in-depth guide can be found here.
  4. If none of the above worked, do search your system for the javac.exe file. If it cannot be found, head to the Oracle website here to download the PC version of the Java JDK.

9. Bugs Reporting

The latest version of LeadsForce (version 1.4) is currently undergoing rigorous testing. This version would serve as the public beta testing of LeadsForce. We have done comprehensive tests on the application, including integration and unit testing. In addition, several students from NUS School of Computing have also contributed towards the rigorous testing of LeadsForce.

However, if you do happen to encounter any bugs while using LeadsForce, please go to LeadsForce’s issue page to issue the bug with the steps to recreate the bug.

10. Command summary

This section details all commands in using the features in LeadsForce.

10.1 Client Management Commands

Action Format Examples
Create add n/CLIENT_NAME e/EMAIL [<attribute>/VALUE]... add n/benedict e/benedict@gmail.com p/90909898 r/3
View view CLIENT_ID view 123
Edit edit CLIENT_ID... <attribute>/CHANGED_VALUE... edit 12 n/Dominic p/12345678
Delete delete CLIENT_ID... delete 4
List list -
Sort sort <attribute>/SORT_DIRECTION... sort r/asc
Schedule schedule [DATE] schedule 25-12-2021
Search search KEYWORD... [<attribute>/ATTRIBUTE_KEYWORD]... search e/doe@gmail.com r/5
Filter filter KEYWORD... [<attribute>/ATTRIBUTE_KEYWORD]... filter e/doe@gmail.com p/9
Clear clear -
Help help -
Exit exit -

10.2 Multiple Address Book Commands

Action Format Examples
Create Address Book ab create ADDRESSBOOK_NAME ab create vip
Delete Address Book ab delete ADDRESSBOOK_NAME ab delete book
Switch Address Book ab switch ADDRESSBOOK_NAME ab switch another
List Address Book ab list -

11. Appendix

11.1 Glossary

  • Mainstream OS: Windows, Linux, Unix, OS-X
  • Command Line Interface (CLI): Text-based user interface that is used to view and manage device files
  • Graphical User Interface (GUI): A visual way of interacting with a device using a variety of items
  • Leads: refers to contact with a potential customer, also known as a “prospect”
  • Risk Appetite: level of risk that a client is prepared to accept in pursuit of his/her objectives, before action is deemed necessary to reduce the risk
  • Disposable Income: total clientele income minus clientele current taxes
  • Client list: the list of clients that is displayed in the GUI
  • Address Book: the list of clients where all clients inserted are kept
  • Multiplicity: the expected quantity of an item. A 0 to 1 multiplicity means that we expect there are zero to one of such items present.
    For example, a Client can have 0 or 1 Contact number and Address (optional values) but must have exactly 1 Name and Email (compulsory values).