CampusConnect is the ultimate contact management app for NUS students with speedy typing skills. Our contact tagging, finding, and organisation features ensure that with just a few keystrokes, you never forget who you meet, where you met them, and what their contact details are.
CampusConnect offers a seamless and quick contact management experience using our Command Line Interface style of input, where commands are processed in the blink of an eye. If you can type quickly, we can get it done faster than any traditional point-and-click management app.
Ensure you have Java 17 or above installed in your Computer.
Download the latest .jar file from here.
Copy the file to the folder you want to use as the home folder for your CampusConnect.
Open a command terminal, cd into the folder you put the jar file in, and use the java -jar CampusConnect.jar command to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app does not contain any 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.
Some example commands you can try:
list : Lists all contacts.
add n/John Doe p/98765432 e/johnd@example.com : Adds a contact named John Doe with phone number 98765432 and email johnd@example.com to CampusConnect.
delete 1 : Deletes the 1st contact shown in the current list.
clear : Deletes all contacts.
exit : Exits the app.
Refer to the Features below for details of each command.
Notes about the 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.
Prefixes (for the contact information) refer to any of these: n/, p/, e/, t/, which are
used for contact information (name, phone, email and tag respectively)
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.
Extraneous parameters for commands that do not take in parameters (such as help, list, exit and clear) will be ignored.
e.g. if the command specifies help 123, it will be interpreted as help.
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
Notes about duplicate contacts:
Notes about case sensitivity:
Notes about format of fields:
local-part@domain and adhere to the following constraints:
| Action | Format, Examples |
|---|---|
| Add🔗 | add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]… e.g., add n/James Ho p/91231234 e/jamesho@example.com t/friend t/classmate |
| Clear🔗 | clear |
| Delete🔗 | delete INDEXe.g., delete 3 |
| Edit🔗 | edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG]…e.g., edit 2 n/James Lee e/jameslee@example.com |
| Find by contact information🔗 | find PREFIX/KEYWORD [PREFIX/MORE_KEYWORDS]…e.g., find n/James t/floorball |
| Add tag🔗 | addtag INDEX t/KEYWORD [t/MORE_TAGS]… e.g. addtag 1 t/friend t/classmate |
| Delete tag🔗 | deltag INDEX t/KEYWORD e.g. deltag 1 t/friend |
| Categorize tag🔗 | cattag t/TAG [t/MORE_TAGS…] CATEGORY e.g. cattag t/floorball t/mahjong activity |
| Undo action🔗 | undo |
| Redo action🔗 | redo |
| List🔗 | list |
| Help🔗 | help |
helpShows a message with a clickable hyperlink.
When clicked, this hyperlink will show the help page.
Format: help
addAdds a person to CampusConnect.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]…
Examples:
add n/John Doe p/98765432 e/johnd@example.comadd n/Betsy Crowe t/friend e/betsycrowe@example.com p/92345672 t/criminallistShows a list of all persons in CampusConnect.
Format: list
editEdits an existing person in CampusConnect.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [t/TAG]…
INDEX. The index refers to the index number shown in the displayed person list. The index must be a positive integer 1, 2, 3, …t/ without
specifying any tags after it.Examples:
edit 1 p/91234567 e/johndoe@example.com Edits the phone number and email address of the 1st person to be 91234567 and johndoe@example.com respectively.edit 2 n/Betsy Crower t/ Edits the name of the 2nd person to be Betsy Crower and clears all existing tags.findFinds persons whose name, email address, contact number, or tags contain any of the given keywords, even if the keyword is only a part of the information stored.
Format:
find PREFIX/KEYWORD [PREFIX/MORE_KEYWORDS]…
hans will match Hans.find n/Hans n/Bo is equivalent to find n/Bo n/Hans.OR search),
e.g. find n/Hans n/Bo will match persons with names Hans Gruber or Bo Yang.bern can match names like Bernice or BernardHow find works with multiple parameters:
find will display contacts that satisfy any keyword for that field.find will display contacts that satisfy all of these fields.Examples:
find t/floor t/run returns all contacts with any tag containing floor or run

find n/alex n/bernice t/floor t/neighbour returns all contacts that have names containing either alex or bernice with tags containing either floor or neighbour
deleteDeletes the specified person from CampusConnect.
Format: delete INDEX
INDEX.Examples:
list followed by delete 2 deletes the 2nd person in CampusConnect.find n/Betsy followed by delete 1 deletes the 1st person in the results of the find command.addtagAdds the specified person's tag.
Format: addtag INDEX t/TAG [t/MORE_TAGS]…
TAG of the person at the specified INDEX.Examples:
addtag 1 t/friend adds a 'friend' tag to the first person in the list.addtag 2 t/classmate t/neighbour adds both the 'classmate' and 'neighbour' tag to the second person in the list.deltagDeletes the specified person's tag.
Format: deltag INDEX t/TAG
TAG of the person at the specified INDEX.Examples:
deltag 1 t/friend
deletes the friend tag of the first person in the list.cattagCategorizes a tag under a defined category.
Format: cattag t/TAG [t/MORE_TAGS]… CATEGORY
Sets the tag(s) in CampusConnect with the specified value TAG to fall under the specified CATEGORY.
Currently available categories with their respective keywords and colours are:
| Category | Keyword (case sensitive) | Colour |
|---|---|---|
| General | general | Grey |
| Academics | acads | Gold |
| Activities | activity | Blue |
| Networking | network | Green |
| Mentorship | mentor | Pink |
Multiple tags can be categorized to the same category using a single command.
All tags specified must be valid existing tags.
Attempts to set a tag to its current category will cause the whole command to be rejected.
Only one category is allowed to be entered per command, i.e. cattag t/tag1 acads t/tag2 general is not allowed.
Note: Newly created tags (by add🔗 or addtag🔗) will have category General and colour Grey by default.
Examples:
cattag t/CS2100 acads categorizes the tag CS2100 under Academics and display colour of the tagCS2100 becomes Gold.cattag t/mahjong t/Floorball activity categorizes both tags mahjong and Floorball under Activities with colour Blue.undoUndoes the previous command and reverts CampusConnect.
Format: undo
undo command will cause an exception to be thrownlist and find will not be undone.redoReapplies a command that was previously undone by undo.
Format: redo
undo command, if any.list and find will not be redone.redo or undo) is executed after an undo, the redo history is cleared, and further redo will not be possible.clearClears all entries from CampusConnect.
Format: clear
clear command, you can use the undo🔗 command to restore your data.exitExits the program.
Format: exit
CampusConnect data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
CampusConnect data is saved automatically as a JSON file [JAR file location]/data/CampusConnect.json. Advanced users are welcome to update data directly by editing that data file.
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 CampusConnect home folder.
Q: How can I add contacts with the same name?
A: If two contacts share the same name, you can differentiate them by adding a number or adjusting the capitalization. For example, use “Mary” and “Mary 2” or “John” and “john” to keep each entry unique.
Q: What if I need to use special characters in tags?
A: You can work around this by using hyphens (-) to signify spacing and eliminate all special characters. For example, you can add "Cafe@NUS" as a tag using "Cafe-NUS".
Q: Why can't I find fields by whole words? There's too much clutter!
A: We understand the importance of a neat and simple contact list. But, like search engines, we want to give you unparallelled control and flexibility over how you find contacts. As is often said, "It is better
to give too much than to not give at all", and we believe that finding by whole words is not enough and gives too little.
Q: Why are tags case-sensitive? Now I can just add tags with different cases and clutter up CampusConnect...
A: Again, we want to give you the flexibility to customise your own tags, so we allow this.
Q: Why does the tags list not update when I find something?
A: Our tags list is meant to span the entire contact list, which can serve as a reference if you require to find a contact to add a specific and easily-forgettable tag to.
preferences.json file created by the application before running the application again.help command (or use the Help menu, or the keyboard shortcut F1) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.