User Guide
Automated Insurance Assistant (AIA) is a desktop application that helps insurance agents manage their client contacts. Instead of hiring a secretary to handle day-to-day tasks, AIA can help you achieve the following:
- Catalogue and easily retrieve saved data on clients based on specific categories
 - Keep track of important events and time-sensitive to-do tasks for each client (e.g. client birthdays)
 - Keep records of previous interactions with each client
 
This application is optimised for use via a Command Line Interface (CLI) while still displaying information to users in an intuitive manner, through a Graphical User Interface (GUI). If you can type fast, AIA can significantly reduce the amount of time spent on retrieving saved information for each client that might have been saved on many different sources previously.
This user guide offers the following to insurance agents or other users trying to learn how to use the application:
- A quick start to running the application
 - All available features
 - Examples on how to use each feature
 
Use of in-text formatting
Bold words refer to commands to be performed by users.
e.g. cd will refer to the “change directory” command in CLI.
Words in quotations are files, file types or dependencies.
e.g. “exe” refers to the executable file type used on Windows.
Table of Contents
- Use of in-text formatting
 - Table of Contents
 - Quick Start
 - Overview of the Graphical User Interface (GUI)
 - Features
 - FAQ
 - Command summary
 
Quick Start
- 
    
Ensure you have “Java JDK 11” or above installed in your Computer.
 - 
    
Download the latest “jar” file, “AIA.jar” here.
 - 
    
Move the “jar” file to an empty folder in where you want to store the “jar” file and the contacts.
 - 
    
Open a shell application (Command Prompt or Terminal etc.) and navigate to the folder created in step 3.
 - 
    
Run the “jar” file with the java -jar command in the shell application to run the application, e.g. java -jar AIA.jar.
 - 
    
Type the command in the command box and press Enter to execute it. e.g. typing
helpand pressing Enter will open the help window. - 
    
When in doubt, type
helpin the command box or click “Help” in the menu bar to pull up the list of available commands. - 
    
Refer to the Features below for details of each command.
 
Overview of the Graphical User Interface (GUI)
Our GUI is designed to be clean and easy to read so that you can start work on your clients right away.

You can simply type your commands in the command box and upon pressing enter, the result display will show you more information on what has been done.
Features
 Notes about the command format:
- 
      
Markup words in
UPPER_CASEare the information to be entered by the user.
e.g. inadd n/NAME,NAMEis an information which can be used asadd n/John Doe. - 
      
Items in square brackets are optional.
e.g.n/NAME [t/TAG]can be used asn/John Doe t/Clientor 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/Client,t/Client t/PremiumMemberetc. - 
      
User input can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER,p/PHONE_NUMBER n/NAMEis also acceptable. - 
      
User input can include leading and trailing spaces.
e.g. these are acceptable inputsdelete 7ortag 1 t/ someTag - 
      
If an input is expected only once in for a specific command, but you specified it multiple times, only the last occurrence of the input will be taken.
e.g. if you specifyp/12341234 p/56785678, onlyp/56785678will be taken. - 
      
Dates should be in “YYYY-MM-DD” format, unless stated otherwise. Single digits should be zero padded.
e.g.2022-05-17,2021-01-01and2011-10-10are in the correct format with zero padding, while2022-5-17and2021-1-1are in the wrong format as they do not have a zero padding for single digit months and/or days. - 
      
Tag names should be alphanumeric. In other words, it should only contain letters (a-z, A-Z) and numbers (0-9). Spaces are not allowed.
 - 
      
INDEXused in the different commands refer to the index number shown in the displayed contact list.❗The
INDEXmust be a positive integer i.e. 1,2,3,…
If the integer is too large (i.e. greater than 2,147,483,647), we will not consider it an integer. 
Basic features
This section covers the basic functions you can perform on each contact.
Adding a contact: add
When you meet a new potential client, and you managed to get their contact information, you can add them as a contact in the application.
- Upon adding a person, a default recently interacted date and description would be automatically generated.
    
- The default date would be the day the contact was added, and default description would be “First Interaction”.
 
 
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS b/BIRTH_DATE [t/TAG]…
- 
BIRTH_DATEshould be in the specified date format. - 
TAGshould be in the specified format. 
Examples:
- 
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 b/1970-01-01adds the contact with only the compulsory information provided.
 
- 
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 b/1970-01-01 t/Client t/BasicMemberadds the contact with the compulsory information provided and the optional information.
 
Viewing all contacts: list
When you want to look through your whole clientele, list will show all the people saved in the application.
Format: list
Editing a contact: edit
If you realise a client’s information in the application is outdated and needs to be updated, you can update the
information using the edit command.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [b/BIRTH_DATE]
[t/TAG]…
- Edits the person at the specified 
INDEX. - 
INDEXmust be in the specified format. - At least one of the optional fields must be provided.
 - Existing values will be updated to the input values.
 - 
BIRTH_DATEshould be in the specified date format. - 
TAGshould be in the specified format. - When editing tags, the existing tags of the person will be removed i.e. adding of tags is not cumulative.
 - You can remove all the person’s tags by typing 
t/without specifying any tags after it. 
Examples:
- 
edit 7 p/91234567 e/johndoe@example.comedits the phone number and email address of the 1st person to be91234567andjohndoe@example.comrespectively.
 
- 
edit 2 n/Betsy Crower t/edits the name of the 2nd person to beBetsy Crowerand clears all existing tags.
 
Finding contacts by name: find
Scrolling through a whole list of people to find a specific client takes a long time. Instead, you can find people using keywords of their name.
Format: find KEYWORD [MORE_KEYWORDS]
- The search is case-insensitive. e.g. 
hanswill matchHans - The order of the keywords does not matter. e.g. 
Hans Bowill matchBo Hans - Only the name is searched.
 - Only full words will be matched e.g. 
Hanwill not matchHans - Persons matching at least one keyword will be returned.
e.g. 
Hans Bowill returnHans Gruber,Bo Yang 
Examples:
- 
find Johnreturnsjohn tanandJohn Doe
 
- 
find alex davidreturnsAlex Yeoh,David Li

 
Show all birthdays today: birthdays
As an insurance agent, it is important to keep track of your clients’ birthdays. We strongly suggest you to use the birthdays command once a day to make sure you do not miss out on your valued clients’ birthdays.
Format: birthdays
Deleting a contact: delete
If a contact entry is no longer relevant, you can delete the specified contact from the application.
Format: delete INDEX
- Deletes the person at the specified 
INDEX. - 
INDEXmust be in the specified format. 
Examples:
- 
listfollowed bydelete 2deletes the 2nd contact in the application. - 
find Betsyfollowed bydelete 1deletes the 1st contact in the results of thefindcommand. 
Tag features
This section covers how you can catalogue and organise contacts using tags.
Adding a tag: tag
Suppose you want to catalogue a contact with a specific category like “client”, you can tag the contact to a category, as specified by the index.
Format: tag INDEX t/TAG
- 
INDEXmust be in the specified format. - 
TAGshould be in the specified format. 
Example:
- 
tag 7 t/clientadds the “client” tag to the 7th contact in the display contact list.
 
Deleting a tag: untag
If a contact is no longer a client, and you wish to remove the tag, you can simply untag contact from the category, as specified by the index.
Format: untag INDEX t/TAG
- 
INDEXmust be in the specified format. - 
TAGshould be in the specified format. 
Example:
- 
untag 7 t/clientdeletes the “client” tag from the 7th contact in the display contact list.
 
Viewing all available tags: tags
If you forget what tags you have currently, you can list all the tags used in the application, in alphabetical order.
Format: tags
Finding contacts with tag: #
If you want to focus on a specific category, you can find all the contacts with the specified tag assigned to them.
Format: #TAG
- 
TAGshould be in the specified format. 
Example:
- 
#clientfinds all the contacts that are tagged to “client”.
 
Interaction record features
This section covers how you can handle previous interactions with contacts.
Adding interaction records with a contact: log
After meeting a client, you might want to write a note about the client, along with the meeting date. By using the log command, you can manually save your interaction with the person in the form of a note accompanied by a date.
Format: log INDEX d/DATE des/description
- 
INDEXmust be in the specified format. - 
DATEshould be in the specified date format. 
Example:
- 
log 6 d/2022-02-11 des/Signed contractmanually logs the following interaction with the 6th person in the displayed contact list,Signed contracton2022-02-11.
 
Viewing all recent interactions with a contact: logs
If you want to review your interaction history with a contact, you can use logs to list all saved interaction records for the specified contact.
Format: logs INDEX
- 
INDEXsignifies the specified contact. - 
INDEXmust be in the specified format. 
Example:
- 
logs 1lists all recorded interactions with the 1st contact in the displayed contact list.
Tip:
The interaction record list will show the most recent interaction first and the oldest interaction last.
 
Deleting a recent interaction record with a contact: unlog
Suppose you made a mistake while recording your interaction. You can easily unlog the saved interaction record from the specified contact.
Format: unlog INDEX del/RECORD_INDEX
- 
INDEXsignifies the specified contact. - 
INDEXrefers to the index number shown in the displayed contact list. - 
RECORD_INDEXsignifies the interaction record to delete. - 
RECORD_INDEXrefers to the index number shown in the contact’s displayed list of interaction records. - Both 
INDEXandRECORD_INDEXmust be in the specified format forINDEX. 
Example:
- 
unlog 2 del/1deletes the 1st interaction record from the 2nd contact in the displayed contact list.
 
Viewing contacts that were contacted within days: within
Occasionally, it might be hard to remember if you met someone recently. The within command allows you to show all contacts that you had interacted with within a specified range of days.
Format: within DAYS
- DAYS must be a positive integer or 0.
 - If the integer is too large (i.e. greater than 2,147,483,647), we will not consider it an integer.
 
Example:
- 
within 12shows a list of people that were last contacted within the past 12 days.
 
Viewing contacts contacted more than a specified number of days ago: after
When cold calling for new potential clients, you can consider looking through your old contacts instead. You can display a list of people that you have not been in contact with for more than a specified number of DAYS.
Format: after DAYS
- DAYS must be a positive integer or 0.
 - If the integer is too large (i.e. greater than 2,147,483,647), we will not consider it an integer.
 
Example:
- 
after 50shows a list of people that were last contacted more than 50 days ago.
 
Reminder features
This sections covers how you can set reminders for contacts, as well as how to view these reminders.
Adding a reminder to a contact: remind
It is hard to keep track of everything all at once. Add a reminder for a client to remind you about tasks.
- 
INDEXsignifies the specified contact. - 
INDEXrefers to the index number shown in the displayed contact list. 
Format: remind INDEX r/REMINDER rd/DATE
- 
INDEXmust be in the specified format. - 
DATEshould be in the specified date format. 
Example:
- 
remind 1 r/sign contract rd/2022-04-02sets up a reminder for you to make a phone call to the 1st person on 2 April 2022.
 
Viewing reminders of a contact: reminder
Sometimes, certain clients require more attention. You can view all reminders of tasks you need to do for these specific clients.
Format: reminder INDEX
- 
INDEXmust be in the specified format. 
Example:
- 
reminder 1shows you a list of tasks you need to do for the 1st person along with their corresponding deadlines.
 
Viewing reminders by date: reminders
If you just want to look at the tasks you need to do by a specific date, you can display all reminders due by a specified date.
Format: reminders rd/[DATE]
- 
DATEshould be in the specified date format. - 
reminders rd/will display reminders for the current date. 
Example:
- 
reminders rd/2022-04-01shows all reminders for 1 Apr 2022.
 
Deleting a reminder: forget
If a reminder is no longer necessary, you can delete the specific reminder to make your reminder list cleaner and shorter.
Format: forget INDEX del/REMINDER_INDEX
- 
INDEXsignifies the specified contact. - 
INDEXrefers to the index number shown in the displayed contact list. - 
REMINDER_INDEXsignifies the reminder to delete. - 
REMINDER_INDEXrefers to the index number shown in the contact’s displayed list of reminders. - Both 
INDEXandREMINDER_INDEXmust be in the specified format forINDEX. 
Example:
- 
forget 1 del/1helps you delete the first reminder on the 1st person’s list.
 
Exiting the program: exit
Exits the program.
Format: exit
Saving the data
The application’s data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually. If you made a mistake while manually editing the saved data, a backup save file would be generated in the same folder.
❗If you already have a backup data file present, it will be overwritten.
FAQ
How do I use the backup save file?
A: Open the backup.json file, ensure that all data is in the correct format and save the file as addressbook.json. Don’t worry about deleting the backup file as it will automatically be overwritten if there is an error in your addressbook.json file.
How do I transfer my data to a new computer?
A: You can copy the “AIA.jar” file, and the “data” folder to an empty folder in the new computer. The application should show you your existing data on launch, on the new computer.
Command summary
| Action | Format | 
|---|---|
| Add a contact | add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS b/BIRTH_DATE [t/TAG]… | 
    
| View all contacts | list | 
    
| Edit a contact | edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [b/BIRTH_DATE] [t/TAG]… | 
    
| Find a contact by keywords | find KEYWORD [MORE_KEYWORDS] | 
    
| View birthdays occurring today | birthdays | 
    
| Delete a contact | delete INDEX | 
    
| Add a tag | tag INDEX t/TAG | 
    
| Delete a tag | untag INDEX t/TAG | 
    
| Show all tags | tags | 
    
| Find contacts by tags | #TAG | 
    
| Record an interaction with a contact | log INDEX d/DATE des/description | 
    
| Delete a recorded interaction with a contact | unlog INDEX del/RECORD_INDEX | 
    
| View all recorded interactions with a contact | logs INDEX | 
    
| View contacts contacted within DAYS | within DAYS | 
    
| View contacts you have contacted more than DAYS ago | after DAYS | 
    
| Add a reminder | remind INDEX r/REMINDER rd/DATE | 
    
| View reminders of a contact | reminder INDEX | 
    
| View reminders on a date | reminders rd/[DATE] | 
    
| Delete a reminder | forget INDEX del/REMINDER_INDEX | 
    
| Exit the program | exit | 
    
| Help | help | 
    


