InsureBook is an address book desktop application built to help insurance agents manage and organize their client information more effectively. Its primary purpose is to streamline the day-to-day workflow of agents, allowing them to store, access, update and keep track of client data with ease.
By combining the speed of a Command Line Interface (CLI) with the familiarity of a Graphical User Interface (GUI), InsureBook is optimized for fast, efficient use. If you're a quick typist, you'll find that InsureBook lets you perform contact management tasks faster than traditional point-and-click apps — all while maintaining clarity and control over your client base.
As a result, with InsureBook, we're not just insuring policies—we're insuring smiles!
This User Guide is designed to help you get the most out of InsureBook. Here's how to navigate it effectively:
Quick Start (For New Users)
Commands (For All Users)
Command Summary (For Quick Reference)
Additional Resources
Throughout this guide, you'll encounter different types of callout boxes that provide important information:
Note Box 📝
Provides additional information or clarifications about a feature or command. Look for these when you need more details about how something works.
Tip Box 💡
Offers helpful tips and best practices. These can help you use InsureBook more effectively.
Warning Box ⚠️
Highlights important warnings or potential issues. Pay special attention to these to avoid problems.
Danger Box ⛔
Indicates critical warnings or irreversible actions. Always read these carefully before proceeding.
Ensure you have Java 17
or above installed in your Computer.
Mac users: Ensure you have the precise JDK version prescribed here.
Download the latest .jar
file from here.
Copy the file to the folder you want to use as the home folder for your InsureBook.
Open a command terminal, cd
into the folder you put the jar file in, and use the java -jar InsureBook.jar
command 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 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 pol/1234567
: Adds a contact named John Doe
to the Address Book.
delete 3
: Deletes the 3rd contact shown in the current list.
clear
: Deletes all contacts.
exit
: Exits the app.
Warning: Data Corruption
If the data file is corrupted:
Refer to the Commands below for details of each command.
InsureBook provides you with several types of commands to manage your client information effectively:
add
edit
delete
renew
viewrenewals
filter
list
find
help
clear
exit
A command consists of a command word and zero or more parameters.
Example: add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 pol/123456
Note
UPPER_CASE
are the parameters to be supplied by the user…
after them can be used multiple times including zero times add
Adds a person to the address book.
Format: add
n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS pol/POLICY_NUMBER [pt/POLICY_TYPE] [r/RENEWAL_DATE] [note/NOTE] [t/TAG]…
Tip: A person can have any number of tags (including 0)
Warning: Duplicate Entries
A person is considered a duplicate if they have:
If you attempt to add a person that matches any of these conditions:
Examples:
add
n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 pol/12345678 pt/Life r/31-12-2025 note/Basketball Playeradd
n/Betsy Crowe t/friend pol/654321 pt/Health e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminalExpected Output:
Warning: Duplicate Policy Numbers
Each policy number must be unique in the system. If you attempt to add a person with a policy number that already exists:
Tip: Names such as X Æ A-Xii Musk is not valid unfortunately as it contains non-ASCII characters.
edit
Format: edit
INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [pol/POLICY_NUMBER] [pt/POLICY_TYPE] [r/RENEWAL_DATE] [note/NOTE] [t/TAG]…
INDEX
. The index refers to the index number shown in the displayed person list. The index must be a positive integer 1, 2, 3, …t/
without
specifying any tags after it.Warning: Duplicate Entries
A person is considered a duplicate if the edit would result in:
If your edit would create any of these duplicate conditions:
Examples:
edit
1 p/91234567 e/johndoe@example.com pt/Health r/31-12-2025edit
2 n/Betsy Crower t/Expected Output:
delete
Format: delete
INDEX
INDEX
.Warning: Irreversible Action ⛔
Examples:
delete
2find
n/Betsy followed by delete
1Expected Output:
renew
Format: renew
pol/POLICY_NUMBER r/RENEWAL_DATE
Warning: Single Policy Renewal ⚠️
pol/POLICY_NUMBER
parameter must be a valid policy number in the system.r/RENEWAL_DATE
parameter must be in the format DD-MM-YYYY
.Examples:
renew
pol/123456 r/01-01-2026Expected Output:
viewrenewals
Format: viewrenewals
[n/NEXT_N_DAYS] [s/SORT_ORDER]
Warning: Integer Days Only ⚠️
n/30
for next 30 days, not n/30.5
or n/-30
n/NEXT_N_DAYS
parameter must be between 0 and 365.s/SORT_ORDER
by name
or by date
only. The default sort order is by date if unspecified.Note on Sorting Order for name:
The sorting order is case-sensitive and follows standard computer ordering rules. This means that:
For example: Alice, Bernice, Zebra, alpha, echo, zulu
Examples:
viewrenewals
viewrenewals
n/60viewrenewals
n/60 s/nameExpected Output:
filter
Format: filter
sd/START_DATE ed/END_DATE [s/SORT_ORDER]
Warning: Valid Date Range ⚠️
sd/01-01-2024 ed/31-12-2024
is validsd/31-12-2024 ed/01-01-2024
is invalid (end date before start date)sd/START_DATE
parameter must be in the format DD-MM-YYYY
.ed/END_DATE
parameter must be in the format DD-MM-YYYY
.s/SORT_ORDER
by name
or by date
only. The default sort order is by date if unspecified. Name sorting follows the same rules as mentioned in the viewrenewals command.Examples:
filter
sd/01-03-2025 ed/31-03-2025filter
sd/01-01-2025 ed/30-06-2025 s/nameExpected Output:
list
Shows a list of all persons in the address book.
Format: list
Each person card in the list displays:
The policy type and renewal date are clearly labeled to help insurance agents quickly identify the types of policies and when they need to be renewed.
find
Searches given person fields by specific keyword and returns any matching entries
Format: find
[n/NAME]… [p/PHONE]… [e/EMAIL]… [a/ADDRESS]… [pol/POLICY_NUMBER]… [pt/POLICY_TYPE]… [t/TAG]… [s/SORT_ORDER]…
SORT_ORDER
.NAME
and ADDRESS
field may contain more than one word.hans
will match Hans
n/Hans Bo
will not match Bo Hans
but n/Hans n/Bo
will match Bo Hans
n/Han
will match Hans
p/123
will match 91234567
@
followed by at least 2 characters e.g. e/ice@ex
will match alice@example.com
but alice@e
will not match alice@example.com
OR
search).
e.g. n/Hans n/Bo
will return Hans Gruber
, Bo Yang
t/TAG
. The search for tags is not case-sensitive and must be an exact word.pt/POLICY_TYPE
. Valid policy types are: Life, Health, Property, Vehicle, and Travel. The search is not case-sensitive.s/SORT_ORDER
by name
or by tag
only. The default sort order is by name. Tag sorting sorts by entries with the most number of tags first. Name sorting follows the same rules as mentioned in the viewrenewals command.Examples:
find
n/olivefind
n/Amy p/999find
n/alex n/davidfind
t/friends t/colleagues s/tagExpected Output (Partial name searching example):
Expected Output (Tag searching example):
help
Shows a message explaining how to access the help page.
Format: help
Expected output after running help
:
clear
Format: clear
Warning: Irreversible Action ⛔
Expected output after running clear
:
exit
Format: exit
Expected output after running exit
: InsureBook closes.
Q: How do I add a new person to the address book?
A: Use the add
command. For example, add
n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 pol/123456 pt/Life r/31-12-2024 note/Basketball Player.
Q: How do I edit a person's information?
A: Use the edit
command. For example, edit
1 p/91234567 e/johndoe@example.com pt/Health r/31-12-2024.
Q: How do I delete a person from the address book?
A: Use the delete
command. For example, delete
1.
Q: How do I clear all entries from the address book?
A: Use the clear
command. For example, clear
.
Q: How do I exit the program?
A: Use the exit
command. For example, exit
.
Q: How do I update a policy renewal date?
A: Use the renew
command. For example, renew
pol/123456 r/31-12-2025.
Q: How do I view upcoming policy renewals?
A: Use the viewrenewals
command. For example, viewrenewals
n/60.
Q: How do I filter policy renewals in a date range?
A: Use the filter
command. For example, filter
sd/01-03-2025 ed/31-03-2025.
I: I'm unable to add a new person to the address book.
A: Ensure that all fields are filled out correctly and that the phone number, email, and policy number are in the correct format.
I: I'm unable to edit a person's information.
A: Ensure that the index is correct and that all fields are filled out correctly.
I: I'm unable to delete a person from the address book.
A: Ensure that the index is correct and that the index exists in the address book.
I: I'm unable to clear all entries from the address book.
A: Ensure that you have the correct permissions to clear the address book.
I: I'm unable to exit the program.
A: Ensure that you have saved all changes before exiting the program.
I: I'm unable to update a policy renewal date.
A: Ensure that the policy number is correct and that the renewal date is in the correct format.
I: I'm unable to view upcoming policy renewals.
A: Ensure that the program is up to date and that there are no issues with the data file.
I: I'm unable to filter policy renewals in a date range.
A: Ensure that the start and end dates are in the correct format and that the data file is up to date.
Command | Format |
---|---|
add | add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS pol/POLICY_NUMBER [pt/POLICY_TYPE] [r/RENEWAL_DATE] [note/NOTE] [t/TAG]… |
edit | edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [pol/POLICY_NUMBER] [pt/POLICY_TYPE] [r/RENEWAL_DATE] [note/NOTE] [t/TAG]… |
delete | delete INDEX |
Command | Format |
---|---|
renew | renew pol/POLICY_NUMBER r/RENEWAL_DATE |
viewrenewals | viewrenewals [n/NEXT_N_DAYS] [s/SORT_ORDER] |
filter | filter sd/START_DATE ed/END_DATE [s/SORT_ORDER] |
Command | Format |
---|---|
list | list |
find | find [n/NAME]… [p/PHONE]… [e/EMAIL]… [a/ADDRESS]… [pol/POLICY_NUMBER]… [pt/POLICY_TYPE]… [t/TAG]… [s/SORT_ORDER]… |
Command | Format |
---|---|
help | help |
clear | clear |
exit | exit |
Term | Meaning |
---|---|
Agent | Refers to the insurance agent who uses InsureBook to manage and organize client information. |
Client | Refers to an individual’s entry in InsureBook, containing contact information (name, phone, email, address) and at least one insurance policy. |
InsureBook | A desktop application (with both a CLI and GUI) that helps insurance agents manage and organize client information. |
CLI (Command Line Interface) | A text-based interface where users type commands to interact with the application. |
GUI (Graphical User Interface) | A visual interface that displays buttons, text fields, and other elements, providing a more familiar point-and-click experience. |
Policy | An insurance policy associated with the client. The policy number is a unique numeric identifier (e.g., “123456”). |
Policy Type | Category of an insurance policy. Valid options include Life, Health, Property, Vehicle, or Travel. |
Renewal Date | The date (DD‑MM‑YYYY) on which the policy is due to be renewed. Used by commands like renew , viewrenewals , and filter . |
Tag | A label that can be attached to a client for categorization or quick reference (e.g., “friend,” “colleague,” “VIP”). |
Command Word | The keyword used to invoke a specific operation in InsureBook (e.g., add , edit , delete , find ). |
Parameter | Additional information following a command word, usually prefixed with a letter and slash (e.g., n/NAME , p/PHONE_NUMBER ). |
Index | The number shown beside a client’s entry in the displayed list. Used to identify which client to edit or delete. |
Duplicate Entries | If you try to add or edit a client so that it shares a policy number or certain combination of name/phone/email with an existing client, InsureBook treats it as a duplicate and blocks the action. |
Sort Order | Some commands (like viewrenewals and find ) let you sort results by name or tag . |
Data File | The file (often named addressbook.json ) where InsureBook stores all client data. |