By: Team W09-B03
Since: Sep 2017
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Features
- 3.1. Viewing help :
help
[Since v1.3] - 3.2. Adding a person :
add
[Since v1.1] - 3.3. Listing all persons :
list
[Since v1.1] - 3.4. Editing a person :
edit
[Since v1.1] - 3.5. Locating persons by different attributes :
find
[Since v1.2] - 3.6. Sorting list of persons :
sort
[Since v1.2] - 3.7. Deleting a person :
delete
[Since v1.2] - 3.8. Adding a tag to person(s) :
t-add
[Since v1.1] - 3.9. Setting person(s) as favourite :
t-add
[Since v1.3] - 3.10. Removing a tag from person(s) :
t-remove
[Since v1.2] - 3.11. Removing person(s) from favourite :
t-remove
[Since v1.2] - 3.12. Finding the person(s) with given tag :
t-find
[Since v1.3] - 3.13. Changing the theme according to user input :
theme
[Since v1.5] - 3.14. Finding the location of a person using Google Map :
m-show
[Since v1.3] - 3.15. Finding the route from user’s current location to the person selected :
m-route
[Since v1.3] - 3.16. Adding an Event to Schedule :
s-add
[Since v1.4] - 3.17. Removing an Event from Schedule :
s-remove
[Since v1.4] - 3.18. Making a backup address book :
export
[Since v1.4] - 3.19. Selecting a person :
select
[Since v1.1] - 3.20. Listing entered commands :
history
[Since v1.1] - 3.21. Undoing previous command :
undo
- 3.22. Redoing the previously undone command :
redo
- 3.23. Restoring person(s) from recycle bin :
bin-restore
[Since v1.5] - 3.24. Deleting person(s) in recycle bin :
bin-delete
[Since v1.5] - 3.25. Clearing all contacts from bin :
bin-fresh
[Since v1.5] - 3.26. Increasing the font size of UI :
font
[Coming in v2.0] - 3.27. Adding the birthday to a person :
b-add
[Since v1.4] - 3.28. Removing the birthday from a person :
b-remove
[Since v1.5] - 3.29. Adding a social media URL to a person :
l-add
[Coming in v2.0] - 3.30. Launching shell version :
shell
[Coming in v2.0] - 3.31. Syncing with phone’s contact list :
sync
[Coming in v2.0] - 3.32. Fetching NUSMods timetable into calendar :
s-nusmods
[Coming in v2.0] - 3.33. Clearing all entries :
clear
- 3.34. Exiting the program :
exit
- 3.35. Saving the data
- 3.1. Viewing help :
- 4. FAQ
- 5. Command Summary
Introducing iConnect, our one-stop address book application built for students. We aim to serve as your personal secretary to ease your job as a student. Due to the ever-increasing workload, it has become a challenge to keep track of various school commitments while maintaining relationships with peers.
With iConnect, missing schedules and losing contact with friends will be a thing of the past. Let’s get connected now!
-
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
iConnect.jar
here. -
Copy the file to the folder you want to use as the home folder for your iConnect.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
Figure 2.1 : Overview of iConnect
-
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
: adds a contact namedJohn Doe
to the Address Book. -
delete
I/1 3
: deletes the 1st and 3rd contact shown in the current list -
exit
: exits the app
-
-
Refer to the Features section below 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.
ℹ️
|
iConnect will be referred to as address book in the following documentation. |
If you don’t know how to use some commands, don’t worry, help command can guide you.
Alias: h
You can look up the usage of the given command word using help command.
Format: help COMMAND
Examples:
-
help list
Shows the usage of commandlist
-
help add
Shows the usage of commandadd
-
help
Shows this User Guide in the opened Help Window.
Alias: create
put
Stores a person’s contact details to address book records.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…
💡
|
A person can have any number of tags (including 0) |
Examples:
-
add n/John Doe p/98765432 e/[email protected] a/John street, block 123, #01-01
-
add n/Betsy Crowe t/friend e/[email protected] a/Newgate Prison p/1234567 t/criminal
-
create n/John Doe p/98765432 e/[email protected] a/John street, block 123, #01-01
-
put n/John Doe p/98765432 e/[email protected] a/John street, block 123, #01-01
Alias: show
all
Shows a list of all persons stored in address book.
Format: list
Alias: update
modify
Edits an existing person in the address book.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…
-
Modifies the person at the specified INDEX. The index refers to the index number shown in the last persons 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 -
update 1 p/91234567 e/[email protected]
Edits the phone number and email address of the 1st person to be91234567
and[email protected]
respectively -
modify 1 p/91234567 e/[email protected]
Edits the phone number and email address of the 1st person to be91234567
and[email protected]
respectively
Alias: search
get
Sometimes you might not remember the full name of a person. Perhaps you only know the phone number or home address of the person. By using this command, you are able to search for your contacts by some other informations such as phone number, email and home address. Even if you cannot remember the full name of your friend, you can still easily find him by his partial name.
Format: find [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS]
-
A prefix is required before entering a different type of keyword.
-
The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans.
-
You can find a person by searching for any substring of the attribute. e.g. hn will match John, 1234 will match 98123476.
-
All keywords regarding a certain attribute should be put after the prefix. e.g.
n/alice bob
-
You can only search for one address per time for Address type.
-
Persons matching at least one keyword will be returned. e.g. Hans Bo will return Hans Gruber, Bo Yang.
-
At least one of the optional fields must be provided.
Examples:
-
find n/John
Returnsjohn
andJohn Doe
-
search p/98765432
Returns the person having phone number98765432
-
get e/[email protected]
Returns the person having email[email protected]
-
find n/Betsy Tim John a/clementi street
Returns any person having namesBetsy
,Tim
,John
or living atClementi Street
Suppose you wish to have your list of persons ordered by a specific attribute, you may use the sort
command to do so. Be it name, email, phone, address or even the time it was first added. You can also choose to specify whether the attribute should be sorted in ascending or descending order, allowing you to have control over how your person panel should appear.
Format: sort [n/(asc OR dsc)]
💡
|
Persons tagged as favourite will be sorted at the top of the list, followed by the rest of the contacts. |
-
Sort command only accepts one attribute.
-
The list can be sorted by one of the following attribute: name, phone, email, address, time added.
-
Sorting order depends on the specified choice.
-
The
asc
signifies sorting in ascending order. -
The
dsc
signifies sorting in descending order. -
Entering command without any argument will default to name in ascending order.
-
Entering command without specifying order will default to ascending order.
Examples:
-
sort
Returns list of persons sorted by name added in ascending order -
sort p/asc
Returns list of persons sorted by phone in ascending order -
sort t/dsc
Returns list of persons sorted by time added in descending order
If you want to remove a person from the person list, just use the delete
command to put them into the recycle bin.
Alias: remove
-
You can delete a group of people from the address book.
Figure 3.7.1 : Deleting multiple person
Format: delete I/INDEX INDEX …
OR delete n/NAME
-
Deletes person with given name or at these given specified
INDEX
. -
The index refer to the index numbers shown in the most recent listing.
-
The index must be a positive integer
1, 2, 3, …
-
The name must be the full name of the person.
-
Only one name is allowed for
delete
command.
Examples:
-
list
delete I/1 2
Deletes the 1st and 2nd person in the address book -
list
remove I/1 3
Deletes the 1st and 3rd person in the address book -
list
- I/2 3
Deletes the 2nd and 3rd person in the address book -
find Betsy
delete I/1
Deletes the 1st person in the results of thefind
command
You can add a tag to multiple persons specified by the indexes in the current person listing. When you have a new project group, you can tag your group members in the contact list to differentiate from the rest of the contacts.
Format: t-add INDEX INDEX… TAG
-
The index refers to the index number shown in the most recent listing, you can key in multiple indexes as well.
-
The index must be a positive integer
1, 2, 3, …
-
The TAG must not have its first word as number.
Examples:
-
list
t-add 2 3 friends
This command adds the tagfriends
to the 2nd and 3rd person in the contact list
You can mark specified person(s) from your contact list as favourite
. Contacts marked as favourite
will always be pinned to top of the contact list.
Figure 3.9.1 : Tagging multiple person as favourite
Format: t-add INDEX INDEX… favourite
-
All person(s) tagged as
favourite
by you will be identified by a coral shaped circle after the person name. -
You can also use
fav
, and words containingfav
interchangeably withfavourite
. -
The index refers to the index number shown in the most recent listing, multiple indexes are allowed.
-
The index must be a positive integer
1, 2, 3, …
Examples:
-
list
t-add 2 3 favourite
This command sets 2nd and 3rd person in the address book as favourite -
list
t-add 2 3 fav
This command sets 2nd and 3rd person in the address book as favourite
You can remove a tag from specified person(s) from the address book. For example, you may remove CS2103
tag from all persons after the module has ended.
Format: t-remove INDEX… TAG
-
The index refers to the index number shown in the most recent listing, multiple indexes are allowed.
-
The index must be a positive integer
1, 2, 3, …
-
If you wish to remove a tag from all person(s) in the list, simply leave out the INDEX.
-
The TAG must not have its first word as a number, for example
1 friend
.
Figure 3.10.1 : Removing all 'fav' tag
Examples:
-
list
t-remove 2 3 friends
This command removes the tagfriends
from the 2nd and 3rd person in the address book -
t-remove friends
This command removes the tagfriends
from all person(s) with the tagfriends
in the current listing
You can remove specified person(s) in the address book from your favourite
list.
Figure 3.11.1 : Removing tag from multiple persons
Format: t-remove INDEX… favourite
-
You can also use
fav
, and words containingfav
interchangeably withfavourite
. -
If you wish to clear your favourite list, simply leave out the INDEX.
-
The index must be a positive integer
1, 2, 3, …
Examples:
-
list
t-remove 2 3 fav
This command removes the tagfavourite
from the 2nd and 3rd person in the address book
You can find all persons with the given tag. For example, you can find all persons with the tag CS2103
using this command.
Figure 3.12.1 : Finding all persons tagged 'fav'
Format: t-find TAG
-
Person list panel shows a list of person(s) who have their
tagName
matching exactly; and those withtagName
containing or contained inTAG
.
Examples:
-
t-find friend
This command lists all the people with tagfriend
-
t-find frien
This command could also list all the people with tagfriend
if any
You can change the current theme into your preferred one.
Figure 3.13.1 : Twilight Theme
Figure 3.13.2 : Sunburst Theme
Figure 3.13.3 : Minimalism Theme
Format: theme [THEME] OR [INDEX]
-
Currently there are 3 themes available,
Twilight
,Sunburst
,Minimalism
. -
Twilight
is dark in color;Sunburst
is bright and lively;Minimalism
is basic and is the default. -
You can key in
Twilight
ordark
or1
to change into dark theme;Sunburst
orbright
or2
to bright theme andMinimalism
ordefault
or3
to default theme. -
When you only key in
theme
, the result box would display1.Twilight 2.Sunburst 3.Minimalism
, you can simply key in the index to change into the specific theme. -
The result in result box indicates that you have successfully changed into your theme of choice.
Examples:
-
theme dark
This command changes current theme to Twilight -
theme Twilight
This command changes current theme to Twilight -
theme 1
This command changes current theme to Twilight
You might find it not very useful to just show the contact’s location as text. By using this command, without typing in the person’s address, you can easily find the location of your friend in Google Map, which will be shown in the browser tab.
Figure 3.14.1 : Finding the location of a contact
Format: m-show INDEX
-
Find the person with the index number.
-
Only one index number is allowed as the input.
-
The index must be a positive integer
1, 2, 3, …
-
The address of the person selected will be shown visually on the browser screen.
Examples:
-
m-show 1
Shows the address of person with index 1 on the google map
Not only can iConnect show the location, it can also show you how to go there. Simply add your current location and it will show you the shortest path from your current address to your friend’s home in the Google map.
Figure 3.15.1 : Finding the route from current location to the address of a contact
Format: m-route INDEX a/ADDRESS
-
Find the address of the person with the index number.
-
Only one index number is allowed as the input.
-
The index must be a positive integer
1, 2, 3, …
-
The address entered should be your current location (the place you want to start from).
-
A route will be shown on the map with the address as start location and selected person’s address as destination.
Examples:
-
m-route 1 a/Clementi Street
Shows the route fromClementi Street
to the address of person with index number1
-
m-route 7 a/John street, block 123, #01-01
Shows the route fromJohn street, block 123, #01-01
to the address of person with index number7
With many commitments at hand, it is easy to overlook an event in your schedule. s-add
allows you to add an event to your calendar and include persons from your addressbook as members of the event.
Figure 3.16.1 : Adding an event titled 'Orientation Camp' to address book
💡
|
Mouse over the greyed-out date in your calendar to see your events for the day. |
💡
|
You will be notified in the result panel if the newly added event clashes with another event in your calendar. |
Format: s-add [m/INDEX INDEX…] n/NAME t/TIME [d/DURATION]
-
Creates an event with the given event name, event time, duration and members.
-
Members added will be reflected in the event list panel.
-
The index must be a positive integer
1, 2, 3, …
-
TIME will be added in the following format:
yyyy-MM-dd HH:mm
-
If duration is specified, it must be in the following format:
#d#h#m
(day/hour/minute)
Examples:
-
s-add m/1 2 3 n/iConnect Conference t/2017-12-04 08:45 d/120
Adds a two-hour long event called ‘iConnect Conference’ on 4th of December 2017 at 8:45AM ,with the specified person at index 1, 2 and 3 into the addressbook calendar. -
s-add n/Exam Date t/2017-12-04 14:30 d/120
Adds a two-hour long event called ‘Exam Date’ on 4th of December 2017 at 2:30PM into the addressbook calendar. -
s-add n/Email Reminder t/2017-12-04 14:30
Adds an event called ‘Email Reminder’ on 4th of December 2017 at 2:30PM into the addressbook calendar.
Suppose you want to remove multiple events from your calendar, you can use the s-remove
command with the indexes of events to be deleted.
Figure 3.17.1 : Removing multiple events from address book
Format: s-remove I/INDEX INDEX…
-
INDEX
in this case is referring to the index of events in the event list panel -
The index must be a positive integer
1, 2, 3, …
-
Person details will be updated each time a deletion of event is made.
Examples:
-
s-remove I/1
Removes a single event with the index 1. -
s-remove I/1 2 3
Removes 3 events with the index 1, 2 and 3.
If you want to keep your address book clean and worry about how to get the contacts back, just export the information.
You can keep a backup of your contact details to the given path.
Format: export PATH
-
Exports all the information of contacts to the given local address.
-
Forward slash should be used instead of back slash.
Alias: choose
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 address book -
find Betsy
choose 1
Selects the 1st person in the results of thefind
command
Alias: record
Lists all the commands that you have entered in reverse chronological order.
Format: history
or record
ℹ️
|
Pressing the ↑ and ↓ arrows will display the previous and next input respectively in the command box. |
Restores the address book to the state before the previous undoable command was executed.
Format: undo
ℹ️
|
Undoable commands: those commands that modify the address book’s content ( |
Examples:
-
delete I/1
list
undo
(reverses thedelete 1
command) -
select 1
list
undo
Theundo
command fails as there are no undoable commands executed previously -
delete I/1 2
clear
undo
(reverses theclear
command)
undo
(reverses thedelete I/1 2
command)
Reverses the most recent undo
command.
Format: redo
Examples:
-
delete I/1
undo
(reverses thedelete I/1
command)
redo
(reapplies thedelete I/1
command) -
delete I/1 2
redo
Theredo
command fails as there are noundo
commands executed previously -
delete I/1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete I/1
command)
redo
(reapplies thedelete I/1
command)
redo
(reapplies theclear
command)
You find that people you wrongly deleted from address book in recycle bin, you can restore them back now.
You can restore person(s) from bin to address book.
Figure 3.23.1 : Restoring multiple persons from recycle bin
Format: bin-restore INDEX INDEX …
-
Recovers the people at these given specified
INDEX
. -
The index refers to the index number shown in the current list.
-
The index must be a positive integer
1, 2, 3, …
-
The index must not be greater than the most recent bin size.
Examples:
-
bin-restore 1 2
Restores the 1st and 2nd person in the recycle bin
If you want to keep your recycle bin clean, you can delete some of them from recycle bin. But you can’t get them back.
You can delete person(s) from bin.
Format: bin-delete INDEX INDEX …
-
Recovers the people at these given specified
INDEX
. -
The index refers to the index number shown in the most current list.
-
The index must be a positive integer
1, 2, 3, …
-
The index must not be greater than the most recent bin size.
Examples:
-
bin-delete 1 2
Delete the 1st and 2nd person in the recycle bin
If you find all the information in recycle bin is useless, then just clear the recycle bin.
You can clear the recycle bin.
Format: bin-fresh
If you find it is uncomfortable to watch the UI because of the font size, you can choose to increase it or decrease it.
You can increase or decrease the size of font.
Format: font -
font +
Would it be nice if you can store the birthday of your contact so that you won’t forget to send him a gift? Of course! By using this command, you are allowed to add birthday to a person. You can easily check it out using the calendar in the app. If you accidentally typed a wrong birthday, you can use this command again and enter the correct one.
Format: b-add INDEX BIRTHDAY
-
Adds birthday to the person at the specified
INDEX
. -
The index refers to the index number shown in the most recent listing, only one index is allowed.
-
The index must be a positive integer
1, 2, 3, …
-
The
BIRTHDAY
must follow the format DD/MM/YYYY, and it must be a valid date. -
To update the birthday of a specified person, use
b-add
command and enter the newBIRTHDAY
value.
Examples:
-
find n/john
b-add 1 18/10/1993
Adds the birthday 18/10/1993 to the first person named john in the address book
If you add the birthday to a wrong person, you can always enter this command to remove the birthday from the person.
Format: b-remove INDEX
-
Removes the birthday value from the person at the specified
INDEX
. -
The index refers to the index number shown in the most recent listing, only one index is allowed.
-
The index must be a positive integer
1, 2, 3, …
-
The
BIRTHDAY
removed just now can be restored by using theundo
command.
Examples:
-
find n/john
b-remove 1
Removes the birthday from the first person named john in the address book -
b-remove 6
Removes the birthday from the 6th person in the most recent listing, and shows an error if there are less than 6 persons in the list
You will find it very convenient to add some social media URLs to your friends so that you are able to see their posts and recent activities simply by clicking those social media icons in the centre person details panel. In this way, you do not need to open each social media app and search for the person before you can see their posts.
Format: l-add INDEX [tt/TWITTER] / [fb/FACEBOOK] / [nm/NUSMODS] / [ig/INSTAGRAM] / [gh/GITHUB]
-
Adds the social media link to the person at the specified
INDEX
. -
The index refers to the index number shown in the most recent listing, only one index is allowed.
-
The index must be a positive integer
1, 2, 3, …
-
A prefix is required before entering the corresponding URL. Only one prefix and one URL is allowed for each command.
-
This command will also update the existing value to the input value.
Examples:
-
l-add 1 fb/https://www.facebook.com/dale.sun.507
Adds the Facebook URL to the 1st person in the contact list -
l-add 3 gh/https://github.com/dalessr
Adds the GitHub URL to the 3rd person in the contact list
By using this command, you can open the shell version of the app. In this way, you are able to use the app without the clutter. You can still achieve most of the operations by only using the shell, except for some features related to the browser (e.g. the Map feature).
Format: shell
You can synchronize contact list on your computer with the contact list in the iConnect
on your phone.
Format: sync
By using this command, you can fetch your timetable from NUSMods into your calendar
Format: s-nusmods l/LINK
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 Address Book folder.
Q: Can I use this app without network connection?
A: You can achieve most of the commands offline except for those features using the browser window (e.g. select
and m-show
).
-
Help :
help COMMAND_WORD
e.g.help list
-
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
-
List :
list
-
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 [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS]
e.g.find n/James p/8765 e/[email protected] a/clementi street
-
Sort :
sort [n/(asc/dsc)] [p/(asc/dsc)] [e/(asc/dsc)] [a/(asc/dsc)] [t/(asc/dsc)]
e.g.sort n/asc
-
TagAddFavourite :
t-add INDEX… favourite
e.g.t-add 3 4 favourite
-
TagRemove :
t-remove INDEX… TAG
e.g.t-remove 3 4 friends
-
TagRemoveFavourite :
t-remove INDEX… favourite
e.g.t-remove 3 4 favourite
-
TagFind :
t-find [TAG]
e.g.t-find friends
-
Theme :
theme [THEME] OR [INDEX]
e.g.theme Twilight
-
MapShow :
m-show INDEX
e.g.m-show 1
-
MapRoute :
m-route INDEX a/ADDRESS
e.g.m-show 1 a/NUS
-
ScheduleAdd :
s-add [m/INDEX INDEX…] n/NAME t/TIME d/DURATION
e.g.s-add m/1 2 3 n/iConnect Conference t/2017-12-04 08:45 d/2h
-
ScheduleRemove :
s-remove I/INDEX INDEX…
e.g.s-remove I/1 2 3
-
Export :
export PATH
e.g.export /desktop/new_folder
-
Bindelete :
bin-delete INDEX INDEX…
e.g.bin-delete 1 2 3
-
Binrestore :
bin-restore INDEX INDEX…
e.g.bin-restore 1 2 3
-
Binfresh :
bin-fresh
e.g.bin-fresh
-
Font :
font
e.g.font +
,font -
-
Select :
select INDEX
e.g.select 2
-
History :
history
-
Undo :
undo
-
Redo :
redo
-
BirthdayAdd :
b-add INDEX BIRTHDAY
e.g.b-add 1 18/10/1993
-
BirthdayRemove :
b-remove INDEX
e.g.b-remove 1
-
LinkAdd :
l-add INDEX [tt/TWITTER] / [fb/FACEBOOK] / [nm/NUSMODS] / [ig/INSTAGRAM] / [gh/GITHUB]
e.g.l-add 1 gh/https://github.com/dalessr
-
Shell :
shell
-
Clear :
clear
-
Exit :
exit