By: Team T15-B2
Since: Jan 2018
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Features
- 3.1. Viewing help :
help
- 3.2. Adding a person:
add
- 3.3. Listing all persons :
list
- 3.4. Editing a person :
edit
- 3.5. Locating persons by name:
find
- 3.6. Deleting a person :
delete
- 3.7. Selecting a person :
select
- 3.8. Opening Person Detail Window:
show
- 3.9. Adding an appointment:
add_appointment
- 3.10. Removing existing appointment :
remove_appointment
- 3.11. Editing an appointment:
edit_appointment
- 3.12. Looking At a Date:
look
- 3.13. Back to Calendar Month View:
back
- 3.14. Listing entered commands :
history
- 3.15. Undoing previous command :
undo
- 3.16. Redoing the previously undone command :
redo
- 3.17. Predict:
predict
- 3.18. Add a policy :
add_policy
- 3.19. Edit a policy :
edit_policy
- 3.20. Remove a policy :
remove_policy
- 3.21. Clearing all entries :
clear
- 3.22. Exiting the program :
exit
- 3.23. Saving the data
- 3.24. Intended Features
- 3.25. Adding task to task pad
[coming in v2.0]
- 3.26. Removing task on task pad
[coming in v2.0]
- 3.27. Predict Purchasing Power
[coming in v2.0]
- 3.1. Viewing help :
- 4. FAQ
- 5. Command Summary
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!
-
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. -
Download the latest
SmartInsuranceCollection.jar
here. -
Copy the file to the folder you want to use as the home folder for your Smart Insurance Collection.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
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/[email protected] a/John street, block 123, #01-01 i/29000 as/1000 age/20
: adds a contact namedJohn Doe
to the Smart Insurance Collection. -
delete
3
: deletes the 3rd contact shown in the current list -
exit
: exits the app
-
-
Refer to Section 3, “Features” for details of each command.
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd n/NAME
,NAME
is a parameter 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/friend
or asn/John Doe
. -
Items with
…
after them can be used multiple times including zero times e.g.[t/TAG]…
can be used ast/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.
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
Shows a list of all persons in the Smart Insurance Collection.
Format: list
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 be91234567
and[email protected]
respectively. -
edit 2 n/Betsy Crower t/
Edits the name of the 2nd person to beBetsy Crower
and clears all existing tags.
Finds persons whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
-
The search is case insensitive. e.g
hans
will matchHans
-
The order of the keywords does not matter. e.g.
Hans Bo
will matchBo Hans
-
Only the name is searched.
-
Only full words will be matched e.g.
Han
will not matchHans
-
Persons matching at least one keyword will be returned (i.e.
OR
search). e.g.Hans Bo
will returnHans Gruber
,Bo Yang
Examples:
-
find John
Returnsjohn
andJohn Doe
-
find Betsy Tim John
Returns any person having namesBetsy
,Tim
, orJohn
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 thefind
command.
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 thefind
command.
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:
-
Ensure that at least 1 contact exists in the addressbook.
-
Navigate to the PersonCard on the left side of the application.
-
Double click on the card to bring up the popup window.
-
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.
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
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
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
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
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. |
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 ( |
Examples:
-
delete 1
list
undo
(reverses thedelete 1
command) -
select 1
list
undo
Theundo
command fails as there are no undoable commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
Reverses the most recent undo
command.
Format: redo
Examples:
-
delete 1
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command) -
delete 1
redo
Theredo
command fails as there are noundo
commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command)
redo
(reapplies theclear
command)
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 withactualSpending
> 0 while the other withactualSpending
== 0(actual spending will actually not be shown if it is zero). -
After
The customer withactualSpending
== 0 now hasexpectedSpending
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
orpredict nothing please
, those are not valid command sincepredict
takes no other argument. But they will still be accepted aspredict
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.
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
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
Remove the policy of a person in the Smart Insurance Collection.
Format: remove_policy INDEX
Examples:
-
remove_policy 1
Clears all entries from the Smart Insurance Collection.
Format: clear
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.
-
Enhanced search bar functionality
-
Prediction of purchasing power
-
Enhanced Calendar features
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
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
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.
-
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