Skip to content

Latest commit

 

History

History
499 lines (358 loc) · 16.9 KB

UserGuide.adoc

File metadata and controls

499 lines (358 loc) · 16.9 KB

Smart Insurance Collection - User Guide

1. Introduction

Smart Insurance Collection(SIC) is for those who prefer to use a desktop app for managing contacts and appointments. More importantly, SIC is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, SIC can get your contact and appointment management tasks done faster than traditional GUI apps. Interested? Jump to the Section 2, “Quick Start” to get started. Enjoy!

2. Quick Start

  1. Ensure you have Java version 1.8.0_60 or later installed in your Computer.

    ℹ️
    Having any Java 8 version is not enough.
    This app will not work with earlier versions of Java 8.
  2. Download the latest SmartInsuranceCollection.jar here.

  3. Copy the file to the folder you want to use as the home folder for your Smart Insurance Collection.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
  5. 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.

  6. Some example commands you can try:

    • list : lists all contacts

    • addn/John Doe p/98765432 e/[email protected] a/John street, block 123, #01-01 i/29000 as/1000 age/20 : adds a contact named John Doe to the Smart Insurance Collection.

    • delete3 : deletes the 3rd contact shown in the current list

    • exit : exits the app

  7. Refer to Section 3, “Features” for details of each command.

3. Features

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in add n/NAME, NAME is a parameter which can be used as add n/John Doe.

  • 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.

  • 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/family etc.

  • Parameters can be in any order e.g. if the command specifies n/NAME p/PHONE_NUMBER, p/PHONE_NUMBER n/NAME is also acceptable.

3.1. Viewing help : help

Format: help

3.2. Adding a person: add

Adds a person to the Smart Insurance Collection
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS i/INCOME [as/ACTUALSPENDING] b/AGE [t/TAG]…​

💡
A person can have any number of tags (including 0)

Examples:

  • Example: add n/John Doe p/98765432 e/[email protected] a/311, Clementi Ave 2, #02-25 t/friends t/owesMoney i/29000 as/10000 age/20

  • add n/Betsy Crowe t/friend e/[email protected] a/Newgate Prison p/1234567 t/criminal, i/50000 age/23

3.3. Listing all persons : list

Shows a list of all persons in the Smart Insurance Collection.
Format: list

3.4. Editing a person : edit

Edits an existing person in the Smart Insurance Collection.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [i/INCOME] [as/ACTUALSPENDING] [t/TAG]…​

  • Edits the person at the specified INDEX. The index refers to the index number shown in the last person listing. 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.

  • 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 1 p/91234567 e/[email protected]
    Edits the phone number and email address of the 1st person to be 91234567 and [email protected] respectively.

  • edit 2 n/Betsy Crower t/
    Edits the name of the 2nd person to be Betsy Crower and clears all existing tags.

3.5. Locating persons by name: find

Finds persons whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]

  • The search is case insensitive. e.g hans will match Hans

  • The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans

  • Only the name is searched.

  • Only full words will be matched e.g. Han will not match Hans

  • Persons matching at least one keyword will be returned (i.e. OR search). e.g. Hans Bo will return Hans Gruber, Bo Yang

Examples:

  • find John
    Returns john and John Doe

  • find Betsy Tim John
    Returns any person having names Betsy, Tim, or John

3.6. Deleting a person : delete

Deletes the specified person from the Smart Insurance Collection.
Format: delete INDEX

  • Deletes the person at the specified INDEX.

  • The index refers to the index number shown in the most recent listing.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • list
    delete 2
    Deletes the 2nd person in the Smart Insurance Collection.

  • find Betsy
    delete 1
    Deletes the 1st person in the results of the find command.

3.7. Selecting a person : select

Selects the person identified by the index number used in the last person listing.
Format: select INDEX

  • Selects the person and loads the Google search page the person at the specified INDEX.

  • The index refers to the index number shown in the most recent listing.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • list
    select 2
    Selects the 2nd person in the Smart Insurance Collection.

  • find Betsy
    select 1
    Selects the 1st person in the results of the find command.

3.8. Opening Person Detail Window: show

This is a feature that allows users to open a new window with the person’s details. Format: show NAME_OF_THE_PERSON

💡
The full name should be specified, since the command will scan for all contacts in order and show the first person it finds which matches the fields

Examples:

  • show John Doe

  • show Jonathan Wen

Another option is to open the window up using the GUI. In order to do this:

  1. Ensure that at least 1 contact exists in the addressbook.

  2. Navigate to the PersonCard on the left side of the application.

  3. Double click on the card to bring up the popup window.

  4. When done viewing the details, close the window.

Multiple of these windows can be open at a time, allowing the user to compare contacts side by side.

3.9. Adding an appointment: add_appointment

Adds an appointment to the Smart Insurance Collection calendar
Format: add_appointment n/NAME S/START DATE TIME E/END DATE TIME

💡
The date time must be entered in the d/MM/yyyy HH:mm format
The name given to the appointment as its title must be unique

Examples:

  • add_appointment n/meet John S/11/09/2018 15:00 E/11/09/2018 16:00

3.10. Removing existing appointment : remove_appointment

Removes appointment whose title match the given search text
Format: remove_appointment ST/SEARCH TEXT

💡
Only the title is searched, appointment with the title that match the given search text will be removed. This works as we enforce unique titles for appointments.

Examples:

  • remove_appointment ST/TITLE OF APPOINTMENT TO BE REMOVED

3.11. Editing an appointment: edit_appointment

edit an existing appointment in the Smart Insurance Collection calendar
Format: edit_appointment ST/SEARCH TEXT n/NEW NAME S/NEW START DATE TIME E/NEW END DATE TIME

💡
ST/SEARCH TEXT is a mandatory field that must be specified. Make sure the search text matches the title of an existing appointment. At least one of the other field must be specified. If changing the title, ensure the new title do not duplicates with other existing appointments

Examples:

  • edit_appointment ST/meet James n/meet John S/11/09/2018 15:00 E/11/09/2018 16:00

3.12. Looking At a Date: look

look at a specific date, the Calendar GUI will focus on the date
Format: look DF/DATE

💡
Note that the date format must be in d/MM/yyyy

Examples:

  • look DF/11/09/2018

3.13. Back to Calendar Month View: back

set the Calendar View to Month View
Format: back

3.14. Listing entered commands : history

Lists all the commands that you have entered in reverse chronological order.
Format: history

ℹ️

Pressing the and arrows will display the previous and next input respectively in the command box.

3.15. Undoing previous command : undo

Restores the Smart Insurance Collection to the state before the previous undoable command was executed.
Format: undo

ℹ️

Undoable commands: those commands that modify the Smart Insurance Collection’s content (add, delete, edit and clear).

Examples:

  • delete 1
    list
    undo (reverses the delete 1 command)

  • select 1
    list
    undo
    The undo command fails as there are no undoable commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)

3.16. Redoing the previously undone command : redo

Reverses the most recent undo command.
Format: redo

Examples:

  • delete 1
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)

  • delete 1
    redo
    The redo command fails as there are no undo commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)
    redo (reapplies the clear command)

3.17. Predict: predict

Predict the potential spending of the of a new customer. Some of the customers have their "actual spending" recorded down while some don’t have because they have not spent anything yet on the insurance policy. Hence this command is to predict how much they will spend based on the information from the existing customers

Examples:

  • Initially
    two customers with actualSpending > 0 while the other with actualSpending == 0(actual spending will actually not be shown if it is zero).

  • After
    The customer with actualSpending == 0 now has expectedSpending shown.

Other Specification:

  • The solution is persistent. Hence when new users are added and old users are deleted, the new solutions are calculated incrementally from the old solution.

  • When adding an new Person, the /as(Actual Spending) is optional. if the actual spending is specified, the person is considered as existing customer. Otherwise potential customer. The prediction is to predict the potential customer’s spending based on the information on the existing customers.

  • The solution is calculated through numerical methods. And numerical methods, unlike Jesus, can’t solve everything. There are certain inputs that will lead to divergent solution. Also, certain value might be too large to be captured even with double. Hence in situations like this, an message of "Divergent solution" would be presented with no prediction.

  • Like "help" command, the design is fault-tolerant. If you type extra text such as predict abcde or predict nothing please, those are not valid command since predict takes no other argument. But they will still be accepted as predict

Test input:
1. add n/John One p/98765432 e/[email protected] a/311, Clementi Ave 2, #02-25 t/friends t/owesMoney i/30000 as/1500 age/20
2. add n/John Two p/98765432 e/[email protected] a/311, Clementi Ave 2, #02-25 t/friends t/owesMoney i/15000 as/750 age/20
3. add n/John Three p/98765432 e/[email protected] a/311, Clementi Ave 2, #02-25 t/friends t/owesMoney i/10000 age/20
4. predict

==>  John Three now shows expected spending of 500

Test Input 2:
0. clear
1. add n/John One p/98765432 e/[email protected] a/311, Clementi Ave 2, #02-25 t/friends t/owesMoney i/30000 as/1000 age/20
2. add n/John Two p/98765432 e/[email protected] a/311, Clementi Ave 2, #02-25 t/friends t/owesMoney i/9000 as/300 age/20
3. add n/John Three p/98765432 e/[email protected] a/311, Clementi Ave 2, #02-25 t/friends t/owesMoney i/20000 age/20
4. predict

==>  John Three should have 666.67 expected spending

Test Input 3:
0. clear
1. add n/John One p/98765432 e/[email protected] a/311, Clementi Ave 2, #02-25 t/friends t/owesMoney i/12345678000 as/150 age/20
2. add n/John Two p/98765432 e/[email protected] a/311, Clementi Ave 2, #02-25 t/friends t/owesMoney i/15000 as/750 age/20
3. predict

==>  divergent solution

this is to illustrate unrealistic extreme values might lead to divergent solution.

3.18. Add a policy : add_policy

Add a policy to a person in the Smart Insurance Collection.

Format: add_policy INDEX beg/BEGINNING DATE exp/EXPIRATION DATE pr/PRICE [is/ISSUE]…​

💡
A person can have any number of issues covered (including 0) These can be added later with edit_policy

Examples:

  • add_policy 1 beg/01/04/2018 exp/02/04/2020 pr/140 is/car_damage is/theft

  • add_policy 3 beg/01/02/2018 exp/28/02/2018 pr/120

3.19. Edit a policy : edit_policy

Edit the policy of a person in the Smart Insurance Collection.

Format: edit_policy INDEX [beg/BEGINNING DATE] [exp/EXPIRATION DATE] [pr/PRICE] [is/ISSUE]…​

  • Edits the policy of the person at the specified INDEX. The index refers to the index number shown in the last person listing. 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.

  • When editing issues, the existing issues of the policy will be removed i.e adding of issues is not cumulative.

  • You can remove all the policy’s issues by typing is/ without specifying any issue after it.

Examples:

  • edit_policy 2 beg/01/07/2018 exp/02/04/2019

  • edit_policy 1 pr/100

  • edit_policy 4 pr/150 is/theft is/house_damage

3.20. Remove a policy : remove_policy

Remove the policy of a person in the Smart Insurance Collection.

Format: remove_policy INDEX

Examples:

  • remove_policy 1

3.21. Clearing all entries : clear

Clears all entries from the Smart Insurance Collection.
Format: clear

3.22. Exiting the program : exit

Exits the program.
Format: exit

3.23. Saving the data

Smart Insurance Collection data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

3.24. Intended Features

  • Enhanced search bar functionality

  • Prediction of purchasing power

  • Enhanced Calendar features

3.25. Adding task to task pad [coming in v2.0]

the user is allowed to use command line to add a task to a task pad GUI by specifying the task title and task details

3.26. Removing task on task pad [coming in v2.0]

the user is allowed to use command line to remove a task on the task pad GUI by specifying the task index on the list

3.27. Predict Purchasing Power [coming in v2.0]

  • User is able to type "Predict" get potential customer’s expected spending based on the existing data

  • After new data has been entered, users are able to re-predict and retrain the model

4. FAQ

Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Smart Insurance Collection folder.

5. Command Summary

  • Add add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​
    e.g. add n/James Ho p/22224444 e/[email protected] a/123, Clementi Rd, 1234665 t/friend t/colleague

  • Add Appointment add_appointment n/NAME S/START DATE E/End Date
    e.g. add_appointment n/Meet James S/14/08/2018 15:00 S/14/08/2018 16:00

  • Remove Appointment remove_appointment ST/SEARCH TEXT
    e.g. remove_appointment ST/Title of the appointment

  • Edit Appointment edit_appointment ST/SEARCH TEXT n/NEW NAME S/NEW START DATE E/NEW End Date
    e.g. edit_appointment ST/meet John n/Meet James S/14/08/2018 15:00 S/14/08/2018 16:00

  • Look At a Date look DF/DATE TO LOOK
    e.g. look DF/18/03/2018

  • Back to Month View back

  • Clear : clear

  • Delete : delete INDEX
    e.g. delete 3

  • Edit : edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…​
    e.g. edit 2 n/James Lee e/[email protected]

  • Find : find KEYWORD [MORE_KEYWORDS]
    e.g. find James Jake

  • List : list

  • Help : help

  • Select : select INDEX
    e.g.select 2

  • History : history

  • Undo : undo

  • Redo : redo

  • Add a Policy : add_policy
    e.g. add_policy 1 beg/01/04/2018 exp/02/04/2020 pr/140 is/car_damage is/theft

  • Edit a Policy : edit_policy
    e.g. edit_policy 4 pr/150 is/theft is/house_damage

  • Remove a Policy : remove_policy
    e.g. remove_policy 1