User Guide
CONNECTIONS is a desktop app for managing contacts and keeping tracks of birthdays, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, CONNECTIONS can get your contact management tasks done faster than traditional GUI apps.
- Quick Start
-
Features
- Upcoming birthdays
- Command Assistant
- Command History
-
Commands
- Viewing help :
help
- Adding a contact:
add
- Listing all contacts :
list
- Editing a contact :
edit
- Adding Tags :
tag
- Removing Tags :
untag
- Locating contacts by name and tag(s):
find
- Locating contacts by name or tag(s):
findAny
- Pinning a contact:
pin
- Unpinning a contact:
unpin
- Deleting a contact :
delete
- Deleting multiple contact :
deletem
- Exporting a mailing list of contacts:
mailingList
- Clearing all entries :
clear
- Exiting the program :
exit
- Viewing help :
- FAQ
- Command Summary
Quick start
-
Ensure you have Java
11
or above installed on your computer. -
Download the latest
CONNECTIONS.jar
from here. -
Copy the file to the folder you want to use as the home directory for your CONNECTIONS.
-
Double-click the file to start the app. The 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 show a list of commands that CONNECTIONS supports.
Click here for a summary of example commands you can try! -
Refer to the Features below for details of each command.
Features
Notes about the 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 specifiesn/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable. -
If a parameter is expected only once in the command, but you specified it multiple times, only the last occurrence of the parameter will be taken.
e.g. if you specifyp/12341234 p/56785678
, onlyp/56785678
will be taken. -
Extraneous parameters for commands that do not take in parameters (such as
list
,exit
andclear
) will be ignored.
e.g.list 123
will be interpreted aslist
. -
Phone numbers can be of any length, but can only contain numerical digits.
-
Command words are case-sensitive. e.g.
findany
will not be interpreted asfindAny
.
Upcoming Birthdays
The vertical tab provides upcoming birthdays at a glance. Having this means that you will never miss a birthday. It sorts all birthdays amongst all contacts in CONNECTIONS chronologically, with the nearest upcoming birthday at the top.
- Contacts color-coded in GREEN are celebrating their birthdays today.
- Contacts color-coded in BLUE will be celebrating their birthdays in a week or less.
- The rest of the entries will not be color-coded.
Command Assistant
Shows command format and example as the command is entered for a smoother learning curve.
Sample Usage:
-
edit
is entered in the command box.- CONNECTIONS shows command format and sample for
edit
.
- CONNECTIONS shows command format and sample for
-
tag
is entered in the command box.- CONNECTIONS shows command format and sample for
tag
.
- CONNECTIONS shows command format and sample for
Command History
View and use previously called commands to minimize typing of repeated commands.
Notes:
- Only commands that have been used in the current program run can be viewed. Commands used in previous runs are not stored.
Sample Usage:
- Up Arrow
- Shows the previous command called in the command box.
- If there are no previous commands, an empty command box is shown.
- If the earliest command is shown, earliest command will continue to be shown.
- Down Arrow
- Shows the next command called in the command box.
- If there are no later commands, an empty command box is shown.
Commands
Viewing help : help
Shows a help message that explains the purpose and method of usage for each command for a smoother learning curve.
Format:
-
help
- List out all available commands. -
help COMMAND
- Shows help message for the command specified.
Notes:
- Use the command
help more
to open a link to the documentation.
Sample Usage:
-
help
- Shows all available commands.
-
help add
- Shows help message for
add
.
- Shows help message for
-
help more
- Opens a link to the documentation.
Adding a contact: add
Adds a contact to CONNECTIONS.
Format:
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [b/BIRTHDAY] [t/TAG]…
ddMMyyyy
.
Notes:
- Phone numbers must be unique and must contain only numbers.
- Emails must contain @. (Valid emails that violate convention are accepted as well)
- Birthdays are optional and can be added to existing contacts using the
edit
command. - Future dates are not allowed as birthdays.
- Tag names are limited to 60 characters.
Sample Usage:
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01
add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison b/25121999 p/1234567 t/criminal
Listing all contacts : list
Shows a list of all contacts in CONNECTIONS.
Format:
list
Editing a contact : edit
Edits an existing contact in CONNECTIONS.
Format:
edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [b/BIRTHDAY] [t/TAG]…
Notes:
- Edits the contact at the specified
INDEX
. The index refers to the index number shown in the displayed contact list. The index must be a positive integer 1, 2, 3, … - There must be at least one of the optional fields provided alongside the edit command.
- Existing values will be updated to the input values.
- The existing set of tags that belongs to a contact will be updated to the new set of tags inputted. i.e. The edits made to a set of tags are not cumulative.
- You can remove all tags of a particular contact using
edit INDEX t/
(without providing anything aftert/
).
Sample Usage:
-
edit 1 p/91234567 e/johndoe@example.com
- Edits the phone number and email address of the 1st contact in the displayed contact list to be
91234567
andjohndoe@example.com
, respectively.
- Edits the phone number and email address of the 1st contact in the displayed contact list to be
-
edit 2 n/Betsy Crower t/
- Edits the name of the 2nd contact in the displayed contact list to be
Betsy Crower
and clears all existing tags.
- Edits the name of the 2nd contact in the displayed contact list to be
Adding Tags : tag
Adds one or more tags to an existing contact in CONNECTIONS. This facilitates the organization of contacts into groups.
Format:
tag INDEX t/TAG [t/MORE_TAGS]…
Notes:
- Adds tag(s) to the contact at the specified
INDEX
. The index refers to the index number shown in the displayed contact list. The index must be a positive integer 1, 2, 3, … - New tags are added on top of existing tags i.e., tags added are cumulative.
- Adding new tags which already exist will succeed with a warning letting you know that the contact already had those tags.
- Tags have a character limit of 60.
Sample Usage:
-
tag 2 t/friend t/NUS
- Adds the tags
friend
andNUS
to the 2nd contact.
- Adds the tags
Removing Tags : untag
Removes one or more existing tags from an existing contact in CONNECTIONS.
Format:
untag INDEX t/TAG [t/MORE_TAGS]…
Notes:
- Remove tags from the contact at the specified
INDEX
. The index refers to the index number shown in the displayed contact list. The index must be a positive integer 1, 2, 3, … - Only tags that exist will be removed.
- CONNECTIONS displays a warning and will not remove any tags if the user tries to remove a non-existent tag.
Sample Usage:
-
untag 2 t/friend t/NUS
- Removes the tags
friend
andNUS
from the 2nd contact.
- Removes the tags
Locating contacts by name(s) and tag(s): find
Finds all contacts who match ALL name and tag keywords provided. This narrows your search so that you will be able to filter contacts with greater specificity.
The commands find
and findAny
will filter the displayed contacts and only display the matching results.
Format:
-
find [c/] [n/NAME] … [t/TAG] …
- Note that
find
must have at least one[n/NAME]
or[t/TAG]
.
- Note that
Notes:
-
find
is case-insensitive for names. e.g.find n/hans
will match contacts namedHans
. -
find
is case-insensitive for tags by default. e.g.find t/friend
will match a contact with tagsFriend
orfriend
.- Adding the
c/
flag after the command word will make tag matching case-sensitive.
e.g.find c/ t/friend
will match a contact with tagfriend
but notFriend
.
- Adding the
- The order of the keywords does not matter. e.g.
find n/Hans t/football
will return the same result asfind t/football n/Hans
. - Only full words will be matched for names and tags.
-
find n/an
will not returnHans
, but will returnJing An
.
-
- Only contacts that matched all keywords provided will be returned as search results (i.e.
AND
search).
e.g.find n/Hans t/Friend
will return all contacts with names containing the wordHans
and are tagged withFriend
.
Sample Usage:
-
find n/John
- returns
john
andJohn Doe
.
- returns
-
find n/alex t/football t/classmate
- returns
Alex Yeoh
, who has bothfootball
andclassmates
tag.
- returns
-
find c/ t/FRIENDS
- returns
Shin
, who is tagged withFRIENDS
.
- returns
Locating contacts by name(s) or tag(s): findAny
Finds all contacts who match ANY name and tag keywords provided. This broadens your search so that you will be able to filter contacts with greater flexibility.
Format:
-
findAny [c/] [n/NAME] … [t/TAG] …
- Note that
findAny
must have at least one[n/NAME]
or[t/TAG]
.
- Note that
Notes:
-
findAny
is case-insensitive for names. e.g.findAny n/hans
will match contacts namedHans
. -
findAny
is case-insensitive for tags by default. e.g.findAny t/friend
will match a contact with tagsFriend
orfriend
.- Adding the
c/
flag after the command word will make tag matching case-sensitive.
e.g.findAny c/ t/friend
will match a contact with tagfriend
but notFriend
.
- Adding the
- The order of the keywords does not matter. e.g.
findAny n/Hans t/football
will return the same result asfindAny t/football n/Hans
. - Only full words will be matched for names and tags.
-
findAny n/an
will not returnHans
, but will returnJing An
.
-
- Only contacts that match at least one of the keywords provided will be returned as search results (i.e.,
OR
search) e.g.findAny n/Hans t/Friend
will return all contacts with names containing the wordHans
or are tagged withFriend
.
Sample Usage:
-
findAny n/John
- returns
john
andJohn Doe
.
- returns
-
findAny n/alex n/irfan t/chef
- returns
Alex Yeoh
,Irfan Ibrahim
,Carol
who is tagged withchef
.
- returns
-
findAny c/ n/Shin t/FRIENDS t/chef
- returns
Shin
who is tagged withFRIENDS
, as well asCarol
who is tagged withchef
.
- returns
Pinning a contact : pin
Pins a contact to the top of the contact list. This makes it easier to refer to the details of frequent contacts.
Pinned contacts will appear at the top of the unfiltered list
Format:
pin INDEX
Notes:
- Pins the contact at the specified
INDEX
. - The index refers to the index number shown in the displayed contact list.
- The index must be a positive integer 1, 2, 3, …
Sample Usage:
-
list
followed bypin 2
- pins the 2nd contact in CONNECTIONS.
-
find n/Betsy
followed bypin 1
- pins the 1st contact in the results of the
find
command.
- pins the 1st contact in the results of the
Unpinning a contact : unpin
Unpins a contact.
Format:
unpin INDEX
Notes:
- Unpins the contact at the specified
INDEX
. - The index refers to the index number shown in the displayed contact list.
- The index must be a positive integer 1, 2, 3, …
Sample Usage:
-
list
followed byunpin 2
- unpins the 2nd contact in CONNECTIONS.
-
find n/Betsy
followed byunpin 1
- unpins the 1st contact in the results of the
find
command.
- unpins the 1st contact in the results of the
Deleting a contact : delete
Deletes the specified contact from the address book.
Format:
delete INDEX
Notes:
- Deletes the contact at the specified
INDEX
. - The index refers to the index number shown in the displayed contact list.
- The index must be a positive integer 1, 2, 3, …
Sample Usage:
-
list
followed bydelete 2
- deletes the 2nd contact in CONNECTIONS.
-
find n/Betsy
followed bydelete 1
- deletes the 1st contact in the results of the
find
command.
- deletes the 1st contact in the results of the
Deleting multiple contacts : deletem
Deletes the contacts within the range from CONNECTIONS. This makes the removal of multiple contacts easy.
Format:
deletem START_INDEX - END_INDEX
Notes:
- Deletes the contacts within the specified range from
START_INDEX to END_INDEX
. - The indexes refer to index numbers shown in the displayed contact list.
- The indexes must be a positive integer 1, 2, 3, …
-
END_INDEX
must be greater than or equal toSTART_INDEX
.
Sample Usage:
-
list
followed bydeletem 2 - 3
- deletes the 2nd and 3rd contacts in the CONNECTIONS.
-
find n/Betsy
followed bydeletem 1 - 5
- deletes the 1st to 5th contacts in the results of the
find
command.
- deletes the 1st to 5th contacts in the results of the
Exporting a mailing list of contacts : mailingList
Exports a CSV file of the current view containing specified fields. This helps you to make external notes when organizing birthday parties.
Format:
mailingList [p/] [e/] [a/] [b/] [t/]
Notes:
- Name is always the first column in the CSV file.
- Including any of the arguments will include that field in the exported CSV file.
- Each argument represents:
-
p/
phone number -
e/
email -
a/
address -
b/
birthday -
t/
tags
-
- The default exported fields are name, phone, email.
- Opens a file selector for you to pick the export location and file name.
Sample Usage:
-
mailingList
- Prepares a CSV of the current view containing Name, Phone and Email as the fields.
-
mailingList p/
- Prepares a CSV of the current view containing Name and Phone as the fields.
Clearing all entries : clear
Clears all entries from CONNECTIONS.
Format:
clear
Exiting the program : exit
Exits the program.
Format:
exit
Saving the data
CONNECTIONS data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Editing the data file
CONNECTIONS data are saved as a JSON file [JAR file location]/data/CONNECTIONS.json
. Advanced users are welcome to update data directly by editing that data file.
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 CONNECTIONS home folder.
Command Summary
Action | Summary | Format, Examples |
---|---|---|
Help | Displays help information |
help [COMMAND] e.g., help , help add , help more
|
Add | Adds a contact |
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [b/BIRTHDAY] [t/TAG]… e.g., add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 b/23062001 t/friend t/colleague
|
List | Lists all contacts | list |
Edit | Edits a contact |
edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [b/BIRTHDAY] [t/TAG]… e.g., edit 2 n/James Lee e/jameslee@example.com b/30012000 At least one argument must be present |
Tag | Tags a contact |
tag INDEX t/TAG [t/MORE_TAGS]… e.g., tag 2 t/friend t/NUS
|
Untag | Untags a contact |
untag INDEX t/TAG [t/MORE_TAGS]… e.g., untag 2 t/colleague
|
Find | Locates contacts by name and tags (Results fulfill all search terms) |
find [c/] [n/NAME]... [t/TAG]... e.g., find n/James t/friends At least one argument must be present |
FindAny | Locates contacts by name and tags (Results fulfill at least one search term) |
findAny [c/] [n/NAME]... [t/TAG]... e.g., findAny n/James t/NUS At least one argument must be present |
Pin | Pins a contact |
pin INDEX e.g., pin 1
|
Unpin | Unpins a contact |
unpin INDEX e.g., unpin 1
|
Delete | Deletes a contact |
delete INDEX e.g., delete 3
|
Deletem | Deletes multiple contacts within the range |
deletem START_INDEX - END_INDEX e.g., deletem 3 - 5
|
MailingList | Exports a mailing list |
mailingList [p/] [e/] [a/] [b/] [t/] e.g., mailingList [p/] [e/] [b/]
|
Clear | Clears all entries | clear |
Exit | Exits the program | exit |