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:
addeditdeleterenewviewrenewalsfilterlistfindhelpclearexitA 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 addAdds 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.
editFormat: 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:
deleteFormat: delete INDEX
INDEX.Warning: Irreversible Action ⛔
Examples:
delete 2find n/Betsy followed by delete 1Expected Output:
renewFormat: 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:
viewrenewalsFormat: viewrenewals [n/NEXT_N_DAYS] [s/SORT_ORDER]
Warning: Integer Days Only ⚠️
n/30 for next 30 days, not n/30.5 or n/-30n/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:
viewrenewalsviewrenewals n/60viewrenewals n/60 s/nameExpected Output:
filterFormat: 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:
listShows 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.
findSearches 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 Hansn/Hans Bo will not match Bo Hans but n/Hans n/Bo will match Bo Hansn/Han will match Hansp/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.comOR search).
e.g. n/Hans n/Bo will return Hans Gruber, Bo Yangt/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):
helpShows a message explaining how to access the help page.
Format: help
Expected output after running help : 
clearFormat: clear
Warning: Irreversible Action ⛔
Expected output after running clear: 
exitFormat: 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. |