User Guide
Welcome to the user guide for InsureIQ, the ultimate contact management system for car insurance agents to keep track of multiple clients’ details and policies. Designed with efficiency in mind, this tool combines the speed of a Command Line Interface (CLI) with the user-friendly benefits of a Graphical User Interface (GUI). Experience a faster and more efficient contact management solution tailored to the unique needs of car insurance agents!
This guide is designed to introduce features in InsureIQ for effectively managing client information and assist you in understanding how to use InsureIQ!
Go ahead and click on the links below to jump to the respective sections!
- Glossary
- Quick start
-
Features
- Viewing help :
help - Listing all clients :
list - Adding a client :
add - Editing a client :
edit - Locating clients by fields :
find - Deleting a client :
delete - Batch delete clients:
batchdelete - Sorting clients by policy expiry date :
sort - Remind user of clients policy expiry date :
remind - Adding or removing remark to a client :
remark - Clearing all entries :
clear - Exiting the program :
exit - Saving the data
- Editing the data file
- Viewing help :
- FAQ
- Known issues
- Command summary
- Appendix: UG workload distribution
Glossary
- Command Line Interface (CLI): A way of interacting with the software by typing textual commands
- Graphical User Interface (GUI): A way of interacting with the software using visual elements like buttons and windows
- Policy fields: Refers to the company the policy is under, policy number, policy issue date and policy expiry date
- Client: Buyers / potential buyers that car insurance agent is in contact with, such that it is stored inside InsureIQ
- Client list: List of clients and their personal and policy details in the InsureIQ app
Quick start
-
Ensure you have Java
11or above installed in your Computer. -
Download the latest
insureiq.jarfrom here. -
Copy the file to the folder you want to use as the home folder for InsureIQ.
-
Open a command terminal,
cdinto the folder you put the jar file in, and use thejava -jar insureiq.jarcommand to run the application.
A GUI similar to the 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
helpand pressing Enter will open the help window.
Some example commands you can try:-
list: Lists all clients. -
delete 3: Deletes the 3rd client shown in the current list. -
clear: Deletes all clients. -
exit: Exits the app.
-
-
Refer to the Features below for details of each command.
-
Look out for additional information in these alert blocks to master the use of InsureIQ!
Features
About the command format:
-
Words in
UPPER_CASEare the parameters to be supplied by you.
e.g. inadd n/NAME,NAMEis 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/friendor 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/friend,t/friend t/familyetc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER,p/PHONE_NUMBER n/NAMEis also acceptable. -
Extraneous parameters for commands that do not take in parameters (such as
help,list,exit,sortandclear) will be ignored.
e.g. if the command specifieshelp 123, it will be interpreted ashelp. -
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
Viewing help : help
Leads you to the help page, which is this user guide.

Format: help
Listing all clients : list
Shows you all clients in your client list.
Format: list
Adding a client : add
Adds client details to your client list. You can also choose to include policy details attached to a client.
Format: add n/NAME i/NRIC p/CONTACT NUMBER e/EMAIL a/ADDRESS [t/TAG]... l/LICENCE PLATE [c/COMPANY
pn/POLICY NUMBER pi/POLICY ISSUE DATE pe/POLICY EXPIRY DATE]
- All client details except tag must be present when using this command.
- Tag is optional and this command allows multiple tags.
- If adding a client’s policy, all 4 policy fields must be present when using this command:
c/COMPANYpn/POLICY NUMBERpi/POLICY ISSUE DATEpe/POLICY EXPIRY DATE
Examples:
-
add n/Irfan Ibrahim i/752X p/92492021 e/irfan@example.com a/Blk 47 Tampines Street 20,#17-35 t/classmates l/SBP8888Tadds a client Irfan without a policy. -
add n/Bob Anderson i/578A p/54783402 e/bobanderson@gmail.com a/Blk 233 Serangoon Avenue 3, #05-12 t/teacher l/SGP1208J c/DEF Insurance pn/263J pi/20-09-2023 pe/19-09-2024adds a client Bob with the policy he bought.
Acceptable values for each parameter:
-
n/NAME: Alphanumeric. -
i/NRIC: Alphanumeric, exactly 4 characters (3 digits + 1 letter). -
p/CONTACT NUMBER: Numeric, exactly 8 characters. -
e/EMAIL: Alphanumeric and/or special characters, no white spaces allowed, standard email format. -
a/ADDRESS: Alphabets and/or special characters, white spaces allowed. -
t/TAG: Alphanumeric, no white spaces allowed. -
l/LICENCE PLATE: Alphanumeric, up to 8 characters. -
c/COMPANY: Alphanumeric and/or special characters, white spaces allowed. -
pn/POLICY NUMBER: Alphanumeric, up to 8 characters. -
pi/POLICY ISSUE DATEandpe/POLICY EXPIRY DATE: Date in the format dd-mm-yyyy.
Expected output upon success:

Expected output upon failure:
- Missing any of the compulsory fields:
Invalid command format! Error: Some of the required fields are missing. Please include the following: - NRIC(i/) - Licence Plate(l/) - Incomplete policy details:
Invalid command format! Please include either all or none of the policy variables. You are missing the following: - Policy Expiry Date(pe/) - Adding a client with an existing policy number:
Error: The policy number is already in use - Adding a client that already exists:
Error: This person already exists in the address book
Editing a client : edit
Modify and/or updates existing policy information in your client list.
Format: edit INDEX [n/NAME] [i/NRIC] [p/CONTACT NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]... [c/COMPANY] [l/LICENCE PLATE]
[pn/POLICY NUMBER] [pi/POLICY ISSUE DATE] [pe/POLICY EXPIRY DATE]
- Edits the client policy details at the specified
INDEX. The index refers to the index number shown in the displayed person list. The index must be a positive integer 1, 2, 3, … - At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
Important notes about usage:
- If you are adding a new policy number to a client with no attached policy, you must also add the company, policy issue date and policy expiry date.
- In case of already existing policy, individual updates to the policy number, company, policy issue date and policy expiry date are allowed.
- To delete an existing policy from a user, you may use any one of the following (using more than one of the below, or using while updating another policy field will still result in the deletion of the policy)
-
c/!@#NO_COMPANY!@#or -
pi/01-01-1000or -
pe/01-01-1000or -
pn/NOPOLICY, as per the ‘Format’ mentioned above.
-
Examples:
-
edit 1 l/SNB9876Eupdates the policy at the INDEX number 1 with the new licence plate provided. -
edit 2 pn/AB12345J pe/31-12-2024updates the policy at the INDEX number 2 with the new policy number and expiry date. -
edit 3 c/!@#NO_COMPANY!@#deletes the policy at the INDEX number 3. -
edit 4 pn/AB12345J c/!@#NO_COMPANY!@#deletes the policy at the INDEX number 4. -
edit 5 pn/NO_POLICY c/!@#NO_COMPANY!@# pe/01-01-1000deletes the policy at the INDEX number 5.
Acceptable values for each parameter:
-
n/NAME: Alphanumeric. -
i/NRIC: Alphanumeric, exactly 4 characters (3 digits + 1 letter). -
p/CONTACT NUMBER: Numeric, exactly 8 characters. -
e/EMAIL: Alphanumeric and/or special characters, no white spaces allowed, standard email format. -
a/ADDRESS: Alphabets and/or special characters, white spaces allowed. -
t/TAG: Alphanumeric, no white spaces allowed. -
l/LICENCE PLATE: Alphanumeric, up to 8 characters. -
c/COMPANY: Alphanumeric and/or special characters, white spaces allowed. -
pn/POLICY NUMBER: Alphanumeric, up to 8 characters. -
pi/POLICY ISSUE DATEandpe/POLICY EXPIRY DATE: Date in the format dd-mm-yyyy.
Expected output upon success:

Expected output upon failure:
- Invalid command format or no specified
INDEXor negativeINDEX:
Invalid command format! edit: Edits the details of the person identified by the index number used in the displayed person list. Existing values will be overwritten by the input values. Parameters: INDEX (must be a positive integer) [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]... [i/NRIC] [l/LICENCE_PLATE] [c/COMPANY] [pn/POLICY_NUMBER] [pi/POLICY_ISSUE_DATE] [pe/POLICY_EXPIRY_DATE] Example: edit 1 p/91234567 e/johndoe@example.com - No field provided:
At least one field to edit must be provided. - Editing a client such that all fields match with an existing client:
Error: This person already exists in the client list.
Locating clients by fields : find
Finds client(s) based on conditions you specify.
Format: find [n/NAME] [i/NRIC] [p/CONTACT NUMBER] [l/LICENCE PLATE] [e/EMAIL] [t/TAG]
[c/COMPANY] [pn/POLICY NUMBER] [pi/POLICY ISSUE DATE] [pe/POLICY EXPIRY DATE]
- The search is case-insensitive e.g.
hanswill matchHans. - At least one of the fields must be present.
- Value given with white spaces for each field is treated as 1 value e.g.
find n/Hans Bowill return clients with namesHans Boin it. - Clients that partially matches with the field given will be returned e.g.
find l/SLAwill return all clients whose licence plates containsSLA.
Examples:
-
find n/maryreturns all clients that has the nameMarysuch asMary Lim,Mary Koh,Mary White. -
find n/Hans Boreturns all clients that has the nameHans Bobut not those with onlyHansorBoin it. -
find n/john pn/AB12345Jreturns all clients whose name containsJohnwith policy numberAB12345J.
Expected output upon success:

Expected output upon failure:
- No field or invalid arguments given:
Invalid command format! find: Finds all persons whose names contain any of the specified fields (case-insensitive for values) and displays them as a list with index numbers. Parameters: [n/NAME] [l/LICENCE PLATE] [n/NAME] [i/NRIC] [p/CONTACT NUMBER] [l/LICENCE PLATE] [e/EMAIL] [c/COMPANY] [pn/POLICY NUMBER] [pi/POLICY ISSUE DATE] [pe/POLICY EXPIRY DATE] At least one parameter must be present. Example: find n/Alice Rodriguez - Field prefix given but no value e.g.
n/ c/:
Error: No value detected for the following field(s): n/ c/
Deleting a client : delete
Deletes the specified client from your client list.
Format: delete INDEX
- Deletes the client at the specified
INDEX. - The index refers to the index number shown in the displayed list of clients and is a compulsory field.
Examples:
-
listfollowed bydelete 2deletes the 2nd client in the data file. -
find n/Betsyfollowed bydelete 1deletes the 1st client in the results of thefindcommand.
Acceptable values for each parameter:
-
INDEX: It must be a must be a positive integer 1, 2, 3, …
Expected output upon success :

Expected output upon failure:
- Profile at the specified
INDEXcannot be found:
Error: Invalid Index
- Missing
INDEXparameter:
Error: Missing Index - Incorrect
INDEXparameter:
Error: The parameter is not of the type positive integer
Batch delete clients: batchdelete
Batch delete clients based on a specific condition.
batchdelete to quickly delete clients whose policies have expired, or for companies you are no longer working with.
Format: batchdelete [c/COMPANY] [dm/DELETE MONTH]
- Batch delete specific clients in the data file.
- Only one of the optional fields must be provided.
- Clients that partially matches with the field given will be deleted e.g.
batchdelete c/NTUCwill delete all clients who buy policy from companiesNTUC CompanyandNTUC Insurance.
Examples:
-
batchdelete dm/07-2020batch delete clients whose policy expiry date is in July 2020. -
batchdelete c/DEF Insurancebatch delete clients who buy policy from the company DEF Insurance.
Acceptable values for each parameter:
-
c/COMPANY: Alphanumeric and/or special characters, white spaces allowed. -
dm/DELETE MONTH: Month and year in the format mm-yyyy.
Expected output upon success:

batchdelete
command has been successfully processed.
Expected output upon failure:
- No field provided:
Invalid command format! batchdelete: batch delete people whose policy: (i) expiry date is in the corresponding month and year OR (ii) belongs to a company. (i) Parameter: dm/MM-yyyy Example: batchdelete dm/11-2022 (ii) Parameter: c/COMPANY NAME Example: batchdelete c/Allianz - Both fields exist:
Error: Please contain only either one field of dm/ or c/. - Incorrect format for delete month:
Delete month should be in the format MM-yyyy
Sorting clients by policy expiry date : sort
Sorts the client list.
Format: sort
- Sorts the data file from earliest to latest policy expiry date.
- People in the list with no policy data will be at the end of the sorted list.
Examples:
-
sortrearranges the displayed list to show which policies are expiring soonest. -
find c/Googlefollowed bysortshows the policies expiring soonest in the results of thefindcommand.
Expected output upon success :

Remind user of clients policy expiry date : remind
Reminds you of clients that have approaching policy expiry date within a certain number of days.
Format: remind NUMBER_OF_DAYS
- Filters the list based on policy expiry date that is within
NUMBER_OF_DAYSfrom current date
Examples:
-
remind 30returns the all clients with policy expiry date within 30 days from current date
Acceptable values for each parameter:
-
NUMBER_OF_DAYS: Numeric, range from 0 to 7305
Expected output upon success (Current date is 12-11-2023):

Expected output upon failure:
-
NUMBER_OF_DAYSnot in range 0 to 7305:
Error: The value has to be between 0 and 7305 (both inclusive) -
NUMBER_OF_DAYSnot numeric:
Invalid command format! Error: The value is not a number -
NUMBER_OF_DAYSnot given:Invalid command format! remind: Finds all persons whose policy expiry dates is within the specified number of days. Parameters: Number of days Example: remind 30
Adding or removing remark to a client : remark
Adds or removes a remark to a client.
Format: remark INDEX r/[REMARK]
-
REMARKis the remark that is going to be attached to the client -
INDEXrefers to the index number shown in the displayed list of clients and is a compulsory field - If
REMARKis not given, it will remove the remark for the client atINDEX
Examples:
-
remark 1 r/Wants cheaper policies!will attach the commentWants cheaper policies!to the client that is at index1 -
remark 1orremark 1 r/will remove the comment that is attached to client that is at index1
Acceptable values for each parameter:
-
INDEX: It must be a positive integer 1, 2, 3, … -
REMARK: Any characters
Expected output upon success:

Expected output upon failure:
- Invalid
INDEXparameter or noINDEX:
Invalid command format! remark: Edits the remark of the person identified by the index number used in the last person listing. Existing remark will be overwritten by the input. Parameters: INDEX (must be a positive integer) r/REMARK Example: remark 1 r/Likes to swim.
Clearing all entries : clear
Clears all entries from your client list.
Format: clear
Exiting the program : exit
Exits the program.
Format: exit
Saving the data
InsureIQ data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Editing the data file
InsureIQ data are saved automatically as a JSON file [JAR file location]/data/insureiq.json. Advanced users are welcome to update data directly by editing that data file.
A sample client entry in the JSON file is as follows. The respective formats are specified in the add feature guide.
{
"name" : "Alex Yeoh",
"phone" : "87438807",
"email" : "alexyeoh@gmail.com",
"address" : "Blk 30 Geylang Street 29, #06-40",
"tags" : [ "friend" ],
"nric" : "023A",
"licencePlate" : "SNB9538E",
"remark" : "Wants cheap policies!",
"company" : "NTUC Income",
"policyNumber" : "NI11235",
"policyIssueDate" : "11-11-2023",
"policyExpiryDate" : "11-11-2024"
}
FAQ
Q1: How do I check my Java version?
A1:
- For Window users, open Command Prompt.
* For Mac and Linux (Ubuntu) users, open Terminal. - Type
java -versionand press Enter. - If Java is installed, it will display the installed version.
Q2: What should I do if Java 11 is not installed in my device?
A2:
No worries! You can download Java 11 by the instruction below:
- If your device has other version of Java, we recommend you to uninstall it by visit the website below:
* Windows users: uninstall Java on Windows
* Mac users: uninstall Java on Mac
* Linux users: uninstall Java on Linux - Visit Oracle’s Java SE Downloads Page.
- Select the appropriate version for your operating system, click to accept the license agreement.
- Download the installer for your operating system.
- Run the installer and follow the installation instructions.
Q3: Can I transfer my InsureIQ data to another Computer?
A3:
Sure! you can transfer your data to another computer by the following steps below:
- In the original computer you use InsureIQ, open the InsureIQ home folder, you can see a folder named
datainside.
- Clicking this folder, you will see a JSON file named
insureiq.
- After installing InsureIQ in the other computer, open the InsureIQ home folder.
- If you see a
datafolder, open the folder, overwrite the file inside with the JSON file in step 2. - If you don’t see a
datafolder, create the folder, copy the JSON file in step 2 into the folder you created.
Known issues
-
When using multiple screens, if you move the application to a secondary screen, and later switch to using only the primary screen, sometimes the program’s window can’t be seen because it opens off the screen. To fix this, go to the InsureIQ home folder, find and delete a file called
preferences.json. After deleting this file, the program should show up normally when you reopen it.
Command summary
| Action | Format, Examples |
|---|---|
| Add |
add n/NAME i/NRIC p/CONTACT NUMBER e/EMAIL a/ADDRESS [t/TAG]... l/LICENCE PLATE [c/COMPANY pn/POLICY NUMBER pi/POLICY ISSUE DATE pe/POLICY EXPIRY DATE] e.g., add n/Irfan Ibrahim i/752X p/92492021 e/irfan@example.com a/Blk 47 Tampines Street 20,#17-35 t/classmates l/SBP8888T
|
| Clear | clear |
| Delete |
delete INDEXe.g., delete 3
|
| Edit |
edit INDEX [n/NAME] [i/NRIC] [p/CONTACT NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]... [c/COMPANY] [l/LICENCE PLATE] [pn/POLICY NUMBER] [pi/POLICY ISSUE DATE] [pe/POLICY EXPIRY DATE]e.g., edit 2 n/Bernice Yeo p/88881111
|
| Exit | exit |
| Find |
find [n/NAME] [i/NRIC] [p/CONTACT NUMBER] [l/LICENCE PLATE] [e/EMAIL] [t/TAG] [c/COMPANY] [pn/POLICY NUMBER] [pi/POLICY ISSUE DATE] [pe/POLICY EXPIRY DATE]e.g. find n/John pn/AB12345J
|
| List | list |
| Help | help |
| Sort | sort |
| Remind |
remind NUMBER_OF_DAYSe.g. remind 30
|
| Remark |
remark INDEX r/[REMARK]e.g. remark 1 r/Likes to swim
|
| BatchDelete |
batchdelete [c/COMPANY] [dm/DELETE MONTH] e.g. batchdelete c/DEF Insurance
|
Appendix: UG workload distribution
| Full Name of Team Member | Agreed allocated sections, duties, roles | Changes if any, record date and reasons for changes | Actual contribution to the UG |
|---|---|---|---|
| Brendan Neo Jia Wei | Features find and remind, standardise image size of screenshots |
No change | Features find and remind, standardise image size of screenshots |
| Chua Yao Xuan | Feature remark, rephrase UG to be user friendly, update section glossary |
No change | Feature remark, rephrase UG to be user friendly, update section glossary |
| Kum Chai Yin | Features add and batchdelete, update section FAQ, create UG PDF file |
No change | Features add and batchdelete, update section FAQ, create UG PDF file |
| Rohan Sapra | Features delete and sort
|
No change | Features delete and sort
|
| Suryansh Kushwaha | Feature edit
|
No change | Feature edit
|