CollabSync is a desktop app for university students to help manage contacts swiftly and effectively, 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, CollabSync can get your contact management tasks done faster than traditional GUI apps.
This User Guide is structured to help you quickly set up and use CollabSync effectively:
Quick Start π
Recommended for first-time users.
Step-by-step instructions to get CollabSync running in minutes.
Table of Contents π
Quickly navigate to any section.
Jump directly to features, commands, or FAQs.
Features π‘
Explore commands in detail.
Learn how to use each command with syntax, examples, and best practices.
FAQ β
Have a question? Start here.
Answers to common usage and installation queries.
Known Issues β οΈ
Troubleshooting help.
Lists current bugs and suggested workarounds.
Command Summary π
Perfect for quick reference.
A brief overview of all commands syntax and formats.
Miscellaneous Information π
Setup notes & definitions.
Additional setup tips and glossary of important terms.
Throughout this guide, you'll encounter different types of callout boxes that provide important information:
βΉοΈ Info Box
Provides additional information or clarifications about a feature or command in CollabSync.
π‘ Tip Box
Offers helpful tips to boost productivity. These tips allow you to navigate CollabSync more effectively.
β οΈ Warning Box
Highlights important warnings or potential issues. Pay extra attention to these warnings to avoid problems.
βοΈ Danger Box
Indicates critical warnings or irreversible actions. Always read these carefully before proceeding to the next step.
Ensure Java 17 or above is installed on 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 CollabSync. Click here if you wish to see a pictorial illustration.
Open a command terminal, cd into the folder you put the jar file in, and use the java -jar CollabSync.jar command to run the application.
A 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. For example, 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 a/John street, block 123, #01-01 m/Physics: Adds a contact named John Doe to the Address Book.delete 3: Deletes the 3rd contact shown in the current list.clear: Deletes all contacts.exit: Exits the app.Refer to the Features below for details of each command.
βΉοΈ Info
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.
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.
For the tags, we denote tag as TAG , where TAG is represented as either TAGNAME / TAGNAME: , tags with no priority or TAGNAME:PRIORITY , which corresponds to the
tags associated with priority. This syntax would be highly useful when using add/delete/edit with respect to the tags. TAGNAME is the description of the tag while PRIORITY has 3 levels : Urgent , Trivial , Module.
Items inside normal brackets means that it is an 'either or' option.
e.g. delete (INDEX | t/TAGS) means we can either delete by index or by tag.
So the delete format can either be delete INDEX or delete t/TAGS.
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.
helpβΉοΈ Info
Shows a help window with the basic commands needed for basic usage of CollabSync.
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS m/MAJOR [t/TAG]β¦βπ‘ Tip
π‘ Note
add n/Alex Albon p/98765432 e/Alex@example.com a/Alex street, block 123, #01-01 m/Computer Science t/CS2100
β Adds a student named Alex Albon with contact details and one tag: CS2100.
add n/Bax Berstappen p/87654321 e/Bax@example.com a/Newgate Prison m/Maths t/CS2100:module t/MA1521:module t/CS2103T:module t/AX1234:module
β Adds a student named Bax Berstappen majoring in Maths, with four tags associated with the module priority. Useful when a student is involved in many courses.
add n/Carloz Cainz p/85580001 e/Carloz@example.com a/Carloz stree m/History
β Adds Carloz Cainz with no tags. Tags are optional β this is a valid minimal command with all required fields.
listπ‘ Note
You do not need to enter anything else behind list.
hideπ‘ Note
hide again will not change the contact card.hide on the current window only hides the contacts' attributes in this window, and not all the contacts in the address book.unhideπ‘ Note
unhide again will not change the contact card.unhide on the current window only reveals the contacts' attributes in this window, and not all the contacts in the address book.sort (asc | desc)sort asc : to sort persons in ascending order by name, followed by phone number.sort desc : to sort persons in descending order by name, followed by phone number.βΉοΈ Info
ORDER parameter must be either:asc β Sorts the list in ascending order (A β Z).desc β Sorts the list in descending order (Z β A).If the contact list is empty, the command will notify you that there are no contacts to sort.
Sorting does not modify existing contact details.
sort asc
β Sorts the contact list in ascending order by name, followed by phone number.sort desc
β Sorts the contact list in descending order by name, followed by phone number.edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [m/MAJOR] [t/TAG]β¦ββΉοΈ Info
INDEX. The index refers to the index number shown in the displayed person list. The index must be a positive integer 1, 2, 3, β¦priority of the existing tags can also be changed.t/ without specifying any tags after it.edit 1 p/91234567 e/johndoe@example.com Edits the phone number and email address of the 1st student to be 91234567 and johndoe@example.com respectively.edit 2 n/Betsy Crower t/ Edits the name of the 2nd student to be Betsy Crower and clears all existing tags.find KEYWORD [MORE_KEYWORDS]βΉοΈ Info
hans will match HansHans Bo will match Bo HansHan will not match HansOR search).Hans Bo will return Hans Gruber, Bo Yangtagname & priority (if any) can be used.John Smith is added with tag t/CS2100:Module, we can search for John Smith using the tagname: CS2100 or priority: Module)β οΈ Caution

From the image, to find Alex Yeoh, whose tag has its tagname : HSA1000 and its priority : Module , use either find HSA1000 or find module. Do not use find HSA1000:Module.
find John returns john and John Doefind alex david returns Alex Yeoh, David Li
delete (INDEX | t/TAG [ ,t/TAGS]) , where TAG is TAGNAME:PRIORITYdelete INDEX : to delete a contact by index.delete t/TAGNAME : to delete any contacts who have tags that correspond to the tagname, with no priority given.delete t/TAGNAME:trivial : to delete any contacts who have tags that correspond to the tagname, and with the trivial priority.delete t/TAGNAME:module : to delete any contacts whose have tags that correspond to the tagname, and with the module priority.delete t/TAGNAME:urgent : to delete any contacts whose tags that correspond to the tagname, and with the urgent priority.βΉοΈ Info
INDEX or with the specified TAGS.π‘ Note
find beforehand.list followed by delete 2 deletes the 2nd student in the address book.find Betsy followed by delete 1 deletes the 1st student in the results of the find command.list followed by delete t/CS2100 removes all contacts with tags CS2100.find Andrew followed by delete t/CS2100 removes all contacts with the name Andrew and tag CS2100.clear[JAR file location]/data/addressbook.json. Advanced users are welcome to update data directly by editing that data file.β οΈ Caution
Your existing data file will be automatically backed up at /data/addressbook_old.json.
Furthermore, certain edits can cause CollabSync to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
exitQ: How do I check my Java Version?
A: Follow these steps:

java -version inside the terminal.foo@bar:~$ java -version
java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)
Q: How to install Java-17?
A: Follow the guide here.
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 CollabSync home folder.
Q: Will the backup file be overwritten?
A: Yes, if a backup exists and the data corrupts again, the old backup will be overwritten.
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.
| Action | Format | Examples |
|---|---|---|
| Add | add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS m/MAJOR [t/TAG]β¦β | add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 m/DSA t/friend t/colleague |
| Clear | clear | - |
| Delete | delete (INDEX | t/TAGS) | delete 3, delete t/CS2100 |
| Edit | edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [m/MAJOR] [t/TAG]β¦β | edit 2 n/James Lee e/jameslee@example.com |
| Sort | sort (asc | desc) | sort asc, sort desc |
| Find | find KEYWORD [MORE_KEYWORDS] | find James Jake tyrone@example.com |
| List | list | - |
| Hide | hide | - |
| Unhide | unhide | - |
| Help | help | - |
| Exit | exit | - |
AmazingProduct , as seen from the image below.CollabSync.jar is in the AmazingProduct folder, as seen from the image below too.
From the image above, click the red-highlighted box. For this example, the rectangular box contains OneDrive > Teng .... > Desktop > AmazingProduct
Then, copy it. This would be the file path (the path to the CollabSync.jar file)
Open your command prompt, type cd <file_path> (without the "<" and ">"). Then press enter/return. Refer to the image below step 5 for your reference.
Lastly, type java -jar CollabSync.jar on your command terminal. And that's it! You should be able to access the exciting features of CollabSync!
foo@bar:~$ cd "C:\Users\tengc\OneDrive - National University of Singapore\Desktop\AmazingProduct"
foo@bar:~$ java -jar CollabSync.jar
...
| Terminology | Definition |
|---|---|
| CLI (Command Line Interface) | A way to interact with CollabSync by typing commands into a text-based terminal. |
| GUI (Graphical User Interface) | A visual interface that lets you interact with CollabSync using windows, buttons, and icons. |
| Command | An instruction typed into the CLI to perform a specific task in CollabSync (e.g. add, delete). |
| Tag | A keyword or label that can be attached to a contact (e.g. CS2100, urgent) for organization and filtering. |
| Major | The primary academic discipline (e.g. Computer Science, History) assigned to a student contact. |
| Module | A specific university course (e.g. CS2100, MA1521) which can be added as a tag. |
| Trivial | Any fun fact or trivial/unimportant fact about the person (e.g. family, buddy) which can be added as a tag. |
| Index | The number assigned to a contact in the current list view (starts from 1). Used in commands like edit 1. |
| Home Folder | The folder where the CollabSync.jar file and its associated data files are stored. |
| .jar File | A Java Archive file that contains the compiled Java code needed to run CollabSync application. |
| JSON File | The file format (addressbook.json) used by CollabSync to store your data persistently. |
| JDK (Java Development Kit) | A software development environment used for developing Java applications that includes the JRE, an interpreter/loader, a compiler, and other tools needed for Java development. |
| Tag Priority | A classification system for tags that determines their importance level. Available priorities include Module, Trivial, Urgent, or no priority. Priority affects how contacts are organized and displayed. |
| Contact Card | The visual representation of a student's contact information in the application interface, displaying details such as name, phone number, email address, and tags. |
| Parameter | A specific piece of information provided to a command, typically indicated by a prefix (e.g., n/ for name, p/ for phone number) followed by the actual value. |
| Attributes | The specific pieces of information associated with a contact, such as name, phone number, email address, physical address, and major. |
| Command Box | The text input field at the bottom of the CollabSync window where users type commands to interact with the application. |
| Cumulative (in context of tags) | The property of adding to existing values rather than replacing them. In CollabSync, tag editing is not cumulative, meaning new tags replace all existing tags rather than being added to them. |
| Command Syntax | The structure that a command must follow to be valid (e.g. required parameters, format). |