User Guide
uNivUSal
uNivUSal is a desktop app for managing contacts catered to CS2103T students, TAs, and professors, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
- Quick start
-
Features
- Person Fields:
-
Basic Features:
-
Adding a person :
add
-
Editing a person :
edit
-
Deleting a person :
delete
-
Listing all persons :
list
-
Clearing all entries :
clear
-
Find a person :
find
-
Sorting entries by field :
sort
-
Adding a person :
-
Enhanced Features:
- Quickly edit a person
-
Add a person to favorite :
fav
-
Add a person to a group:
addtogroup
-
Remove a person from a group :
ungroup
-
Open a group window :
group
-
Email all persons in a group :
emailall
-
Add a person’s social :
include
-
Delete a person’s social :
exclude
-
Set a person’s preferred social media :
prefer
-
Open a person’s social media :
open
-
Find persons with a preferred social media :
social
-
General App Features:
-
Viewing help :
help
-
Viewing history :
history
-
Undoing last command :
undo
-
Exiting the app :
exit
-
Viewing help :
- Command summary
Quick start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
uNivUSal.jar
-
Copy the file to the folder you want to use as the home folder for your uNivUSal.
-
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 open the help window. -
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.gn/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
help
,list
,exit
andclear
) will be ignored.
e.g. if the command specifieshelp 123
, it will be interpreted ashelp
.
Person Fields
a. occupation : o/
Sets the occupation of a person in uNivUSal.
Format: o/OCCUPATION
-
OCCUPATION
includesSTUDENT
,TA
,PROFESSOR
. -
OCCUPATION
is not case sensitive.
Example : o/student
b. name : n/
Sets the name of a person in uNivUSal.
Format: n/NAME
-
NAME
can be more than one word long but cannot be empty.
Example : n/Shelby Peanuts
c. phone : p/
Sets the phone number of a person in uNivUSal.
Format : p/PHONE
-
PHONE
must only contain digits and not alphabets, and it should be at least 3 and at most 15 digits long.
Example : p/97865486
d. email : e/
Sets the email of a person in uNivUSal.
Format : e/EMAIL
Emails should be of the format local-part@domain and adhere to the following constraints:
- The local-part should only contain alphanumeric characters and these special characters, excluding the parentheses, (+_.-). The local-part may not start or end with any special characters.
- This is followed by a ‘@’ and then a domain name. The domain name is made up of domain labels separated by periods.
The domain name must:
- end with a domain label at least 2 characters long
- have each domain label start and end with alphanumeric characters
- have each domain label consist of alphanumeric characters, separated only by hyphens, if any.
Example : e/betty@u.nus.edu
e. tutorial : tut/
Sets the tutorial group of a person in uNivUSal.
Format : tut/TUTORIAL
-
TUTORIAL
must contain a letter from[F/T/W]
followed by two digits.
Example : tut/T08
f. address : a/
Sets the address of a person in uNivUSal.
Format : a/ADDRESS
-
ADDRESS
must be at most 100 characters long.
Example : a/36 College Avenue
g. tags : t/
Sets tag(s) of a person in uNivUSal.
Format : t/TAGS
Example : t/classmate friend
Basic Features
a. Adding a person: add
Adds a person to uNivUSal.
Format: add o/OCCUPATION n/NAME [p/PHONE_NUMBER] [e/EMAIL] [tut/TUTORIAL] [a/ADDRESS] [t/TAG]…


Examples:
add o/STUDENT n/John Doe p/98765432 e/johnd@example.com tut/T08 a/John street, block 123, #01-01
add o/TA n/Betsy Crowe e/betsycrowe@u.nus.edu
b. Editing a person : edit
Edits an existing person in uNivUSal.
Format: edit INDEX [o/OCCUPATION] [n/NAME] [p/PHONE] [e/EMAIL] [tut/TUTORIAL] [t/TAG]…
- Edits the person at the specified
INDEX
. The index refers to the index number shown in the displayed person list. 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/janedoe@example.com
Edits the phone number and email address of the 1st person to be91234567
andjanedoe@example.com
respectively. -
edit 2 n/Betsy Crower t/
Edits the name of the 2nd person to beBetsy Crower
and clears all existing tags.
c. Deleting a person : delete
Deletes the specified person from uNivUSal.
Format: delete INDEX {OPTIONAL PREFIX/}
- Deletes the person at the specified
INDEX
. - The index refers to the index number shown in the displayed person list.
- The index must be a positive integer 1, 2, 3, …
- If
PREFIX/
is provided, deletes the specified field of the person at the specifiedINDEX
Examples:
-
list
followed bydelete 2
deletes the 2nd person in uNivUSal. -
find Betsy
followed bydelete 1
deletes the 1st person in the results of thefind
command. -
list
followed bydelete 2 p/
deletes the 2nd person’s phone number in uNivUSal.
d. Listing all persons : list
Shows a list of all persons in uNivUSal.
Format: list
e. Clearing all entries : clear
Clears all entries from uNivUSal.
Format: clear
- Deletes every person in uNivUSal.
- Only a blank uNivUSal will remain.
f. Find entries by keywords of fields : find KEYWORD
e.g. find John
Finds entries in uNivUSal that match or contain case-insensitive keyword. Current fields searchable are:
- Name
- Phone Number
Format: find KEYWORD
- Filters the entries by the specified
KEYWORD
. - Displays filtered list.
Examples:
-
find John
displays the entries filtered by names that contain the case-insensitive KEYWORDJohn
. -
find J
displays the entries filtered by names that contain the case-insensitive KEYWORDJ
. -
find 123456
displays the entries filtered by phone numbers that contain the case-insensitive KEYWORD123456
.
g. Sort entries by field : sort FIELD_PREFIX/
e.g. sort n/
Sorts entries in uNivUSal by specific field prefix in an ascending manner. Current fields implemented are:
- Name
n/
- Email address
e/
- Phone
p/
Format: sort FIELD_PREFIX/
- Sorts the entries by the specified
FIELD_PREFIX/
. - Displays sorted list.
Examples:
-
sort n/
displays the entries sorted by name alphabetically. -
sort e/
displays the entries sorted by email address alphabetically. -
sort p/
displays the entries sorted by phone number in an ascending manner.
Enhanced Features
a. Quickly edit a person’s features
Quickly make small changes to a person by clicking on a person card while the command box is empty. This creates an edit command with all the features that person currently has. You may then modify this command to your needs.
b. Add a person to favorite : fav
Adds the specified person to favorite
group.
Format: fav INDEX
- The index refers to the index number shown in the displayed person list.
- The index must be a positive integer 1, 2, 3, …
Examples:
-
fav 1
will add 1st person in the current list tofavorite
.
c. Adding a person to a group : addtogroup
Adds the specified person to the specified group.
Format: addtogroup INDEX GROUP
- Adds the person at the specified
INDEX
to the specifiedGROUP
. - The index refers to the index number shown in the displayed person list.
- The index must be a positive integer 1, 2, 3, …
Examples:
-
addtogroup 1 friends
adds the 1st person in the current list to the groupfriends
.
d. Removing a person from a group : ungroup
Removes the specified person from the specified group.
Format: ungroup INDEX GROUP
- Removes the person at the specified
INDEX
from the specifiedGROUP
. - The index refers to the index number shown in the displayed person list.
- The index must be a positive integer 1, 2, 3, …
Examples:
-
ungroup 1 friends
ungroups the 1st person in the current list from the groupfriends
.
e. Opening a group window : group
Open a new window containing the persons in the group.
Format: group GROUPNAME
- Opens a new window containing persons from the specified
GROUPNAME
. -
GROUPNAME
should not contain spaces.
Examples:
-
group friends
opens a group window containing persons in the groupfriends
.
f. Email all persons in a group : emailall
Open an email link to all persons in the specified group.
Format: emailall GROUPNAME
- Opens the email client to all persons in
GROUPNAME
. -
GROUPNAME
should not contain spaces.
Examples:
-
emailall friends
opens the email client to all persons in the groupfriends
.
g. Add a person’s socials : include
Adds a valid SOCIAL to an existing person in uNivUSal.
General format: include INDEX s/SOCIAL #/SOCIAL_INFO
-
SOCIAL
currently includes:- Telegram
-
SOCIAL_INFO
currently includes:- Whatsapp phone number
- Telegram username
- Instagram username
-
SOCIAL
is case-insensitive
Format(WHATSAPP): include INDEX s/WHATSAPP #/WHATSAPP_PHONE_NUMBER
Format(Telegram): include INDEX s/TELEGRAM #/TELEGRAM_USERNAME
Format(Email): include INDEX s/EMAIL #/EMAIL_ACCOUNT
Format(Instagram): include INDEX s/INSTAGRAM #/INSTAGRAM_USERNAME
Examples:
include 1 s/WHATSAPP #/87654321
include 1 s/TELEGRAM #/JohnDoe321
include 1 s/EMAIL #/johnd@example.com
include 1 s/INSTAGRAM #/johndoe
Note
EMAIL_ACCOUNT should be of the formatlocal-part@domain
WHATSAPP_PHONE_NUMBER should only contain numbers, and it should be at least 3 digits long
Note
If the person already has an existing email account in uNivUSal, it will be added to the social.
But the Phone number will not be added as the person’s WHATSAPP_PHONE_NUMBER
h. Delete a person’s socials : exclude
Deletes the specified person’s socials from uNivUSal.
Format: exclude INDEX s/SOCIAL
-
SOCIAL
currently includes:- Telegram
- Preferred
-
SOCIAL
is case-insensitive
Examples:
exclude 1 s/TELEGRAM
exclude 1 s/INSTAGRAM
i. Set a person’s preferred social media : prefer
Set the specified person’s preferred social media in uNivUSal.
Format: prefer INDEX s/SOCIAL
-
SOCIAL
currently includes:- Telegram
-
SOCIAL
is case-insensitive
Examples:
prefer 1 s/TELEGRAM
prefer 1 s/INSTAGRAM
j. Open a person’s social media : open
Open the specified person’s social media in uNivUSal.
Format: open INDEX s/SOCIAL
-
SOCIAL
currently includes:- Telegram
- Preferred (the person’s currently preferred social media that has been set)
-
SOCIAL
is case-insensitive
Examples:
open 1 s/TELEGRAM
open 1 s/INSTAGRAM
open 1 s/PREFERRED
k. Find persons with a preferred social media : social
Filters the current list to people who set their preferred social media to the input.
Format: social SOCIAL
-
SOCIAL
currently includes:- Telegram
-
SOCIAL
is case-insensitive
Examples:
-
social telegram
will display a filtered list of persons withtelegram
as their preferred social media.
General App Features
a. Viewing help : help
Shows a message explaining the basic features of the app and also provides a link to the website.
Format: help
b. Viewing history : history
Shows up to the previous five commands typed by the user.
Format: history
c. Undo last modification : undo
Undoes the last command that modifies the address book.
Format: undo
- Undoes the last modifying command.
- Ignores modifying commands if they don’t modify the address book.
- Will cancel out when trying to undo an undo command. This means that you cannot undo the last two actions.
d. Exiting the program : exit
Exits the program.
Format: exit
Saving the data
uNivUSal 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
uNivUSal data are saved as a JSON file [JAR file location]/data/univusal.json
. Advanced users are welcome to update data directly by editing that data file.

Archiving data files [coming in v2.0]
Details coming soon …
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 uNivUSal home folder.
Details coming soon …
Command summary
Action | Format, Examples | |
---|---|---|
Help | help |
|
History | history |
|
Add |
add o/OCCUPATION n/NAME [p/PHONE_NUMBER] [e/EMAIL] [tut/TUTORIAL] [t/TAG]… e.g., add o/STUDENT n/James Ho p/22224444 e/jamesho@example.com tut/T08 a/123, Clementi Rd, 1234665 t/friend t/colleague
|
|
List | list |
|
Edit |
edit INDEX [o/OCCUPATION] [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [tut/TUTORIAL] [t/TAG]… e.g., edit 2 n/James Lee e/jameslee@example.com
|
|
Delete |
delete INDEX [OPTIONAL PREFIX/] e.g., delete 3 ,delete 3 p/
|
|
Clear | clear |
|
Undo | undo |
|
Sort |
sort FIELD_PREFIX/ e.g., sort n/
|
|
Find |
find KEYWORD e.g., find John / find J
|
|
Add To Group | addtogroup INDEX GROUP |
|
Ungroup | ungroup INDEX GROUP |
|
Open Group Window | group GROUPNAME |
|
Favorite | fav INDEX |
|
Include | include INDEX s/SOCIAL #/SOCIAL_INFO |
|
Exclude | exclude INDEX s/SOCIAL |
|
Prefer | prefer INDEX s/SOCIAL |
|
Open | open INDEX s/SOCIAL |
|
Social | social SOCIAL |
|
Email All | emailall GROUPNAME |
|
Exit | exit |