Value Proposition: AcademeConnect lets academic researchers manage and act on their professional networks faster and more privately than generic contact apps. It supports rich contact metadata (tags, notes, schedules), tag autocompletion, and local-only storage. This enables rapid, scalable contact management and reliable follow-up tracking tailored to research workflows.
Purpose: This User Guide explains how to install, run and use AcademeConnect (AC) — a desktop contact manager optimized for academic researchers who prefer a Command Line Interface (CLI) with an accompanying Graphical User Interface (GUI).
Target users
Assumptions about users
How to use this guide
Ensure you have Java 17 or above installed on your computer.
java -version in PowerShell or Command Prompt. Expected output: java version "17.0.x" ...java -version. Expected output: java version "17.0.x" ...Download the latest .jar file (release) and save it to the folder you want to use as the home folder for AC.
Open a command terminal, cd into the folder containing the jar file, and run:
java -jar "AcademeConnect.jar"
Expected behaviour: A GUI window opens within a few seconds and the CLI input box is shown at the bottom of the
window. Sample data may be present on first run.

Type commands into the command box and press Enter. Example:
help — opens the help window.list — shows all contacts.add n/John Doe p/98765432 e/johnd@example.com a/NUS — adds John Doe.exit — exits the application.Use the list command to confirm the index numbers before using index-based commands like delete, edit, note,
viewNote, and tag.
Copy multi-line example commands into a plain-text editor first if you find line-breaks get removed when copying from a PDF.
Notes about the command format:
UPPER_CASE are parameters. e.g. add n/NAME → add n/John Doe.[...] denote optional items.… after an item indicates it can appear multiple times (including zero).help, list, exit, clear) are ignored.add n/John p/123456 y/info will cause an error reflecting the constraints on phone numbers.Basic
Notes
Reminders
addAdds a person to the address book.
Format: add n/NAME [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…
Examples:
add n/John #Adds a person with only a name
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 p/+441234567 t/criminal
add n/李明 p/+8613812345678 #Names can contain non-English characters
add n/Dr. Jane Smith-O'Connor #Names can contain special characters
Example expected output on success: New person added: John Doe; Phone: 98765432; Email: johnd@example.com; Address: John street, block 123, #01-01; Tags:
Notes:
+ for international numbers (e.g., +6591234567).listShows a list of all persons in the address book.
Format: list
Expected output on success: Listed all persons
editEdits an existing person in the address book.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…
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.
Example expected output on success: New person added: John Smith, Phone: 87654321; Email:SmithyM@example.com; Address:Smithy street, block 123, #01-01; Tags:
Notes:
INDEX. The index refers to the index number shown in the displayed person list.t/ without specifying any tags after it.deleteDeletes one or more persons from the address book.
Format: delete [INDEX]...
Examples:
delete 2 # deletes the 2nd person in the address book
delete 2 3 # deletes the 2nd and 3rd person in the address book
Expected output on success: Deleted Persons: Betsy Crowe; Phone: +441234567; Email: betsycrowe@example.com; Address: Newgate Prison; Tags:[friend][criminal]
Notes:
INDEX.tagAdds one or more tags to an existing person in the address book.
To reflect your contacts' research topics or job titles,
you can choose to add research tags and title tags by using different prefixes rtt/ or jtt/,
instead of t/ (see below).
These tags are displayed with a different colour than other tags.
Format: tag INDEX t/TAG [t/MORE_TAGS]…
Examples:
tag 1 t/friend # Adds the tag `friend` to the 1st person.
tag 1 jtt/lead researcher # Adds the title tag 'lead researcher' to the 1st person.
tag 2 t/colleague t/cs2103t # Adds both `colleague` and `cs2103t` tags to the 2nd person.
tag 2 rtt/AI # Adds the research tag 'AI' to the 2nd person.
Example expected output on success: Tags updated: John Doe; Phone: 98765432; Email:johnd@example.com; Address:John street, block 123, #01-01, Tags:[lead researcher]
Notes:
INDEX.t/, the application will suggest existing tags that match your input. Press Tab to autocomplete the suggestion.rtt/) and job title tags (jtt/) are tag displayed with distinct colors to help you visually distinguish research topics and job titles from other tags. They function identically to normal tags for searching and storage.
tagdelDeletes one or more tags from an existing person in the address book.
You can delete specific tags or all tags of a certain type (research or title).
Format: tagdel INDEX [t/TAG]…
Examples:
tagdel 1 t/friend # Deletes the tag `friend` from the 1st person.
tagdel 2 t/colleague t/cs2103t # Deletes both `colleague` and `cs2103t` tags from the 2nd person.
Example expected output on success: Tag(s) deleted: John Doe; Phone: 98765432; Email:johnd@example.com; Address:John street, block 123, #01-01, Tags:[lead researcher]
Notes:
INDEX.noteOpens a note editor for the person at the given index in the currently displayed list. The editor is a text box that replaces the person list. Use Esc to toggle back to the command box, which automatically saves the note to storage.
See below for a sample image and exact behaviour of the editor.
Format: note INDEX
Examples:
note 2 # opens the note editor for the 2nd person
Expected output on success: Opening text editor for Person: John Smith
Behavior of note editor:
note INDEX opens the note editor, pre-populated with the person’s existing note (if any). After
running the command, you will be focused on the editor (able to edit the note).list) removes the text editor and
returns the UI to the person list. The note saved will reflect the most recent update.Notes:
INDEX.viewNoteDisplays a person's note in the result area (read-only). Refer to 'note' command to edit.
Format: viewNote INDEX
Examples:
viewNote 2 # displays note of the 2nd person
Example expected output on success: Note for John Smith: This is some note content
Notes:
INDEX.deleteNoteDeletes a person's note.
Format: deleteNote INDEX
Examples:
deleteNote 2 # deletes the note of the 2nd person
Expected output on success: Deleted note of Person: John Smith; Phone 8765432; Email: SmithyM@example.com; Address: Smithy Street, block 123, #01-01 Tags:
Notes:
INDEX.findYou can choose between 3 search methods: by name, by tag, or by note content.
Searching by name displays every person whose name contains any of the given keywords.
Searching by tag displays every person who has been assigned any of the specified tags.
Searching by note displays every person whose note contains the search phrase.
Format: find KEYWORD [MORE_KEYWORDS] OR find t/TAG_NAME [t/MORE_TAG_NAMES] OR find note/SEARCH_PHRASE
Examples:
find John # returns `john` and `John Doe`
find alex david # returns `Alex Yeoh`, `David Li`
find t/friends # returns everyone tagged as `friends`
find t/friends t/colleagues # returns everyone tagged as `friends` or `colleagues`
find note/Met at conference # returns everyone who has the phrase "Met at conference" in their notes
Expected output on success: 1 persons listed!
Notes:
hans will match HansHans Bo will match Bo HansHan will not match HansOR search).
e.g. Hans Bo will return Hans Gruber, Bo Yangreminder addAdds a reminder for a person in the address book. Reminders help you track follow-ups, meetings, or important dates associated with your contacts. Added reminders automatically appear in the Upcoming Reminders panel on the right side of the application.
Format: reminder add n/NAME d/DATE m/MESSAGE OR reminder add INDEX d/DATE m/MESSAGE
Examples:
reminder add n/John Doe d/2025-11-15 10:30 m/Follow up on research collaboration
reminder add 1 d/15/11/2025 14:00 m/Coffee meeting at NUS
reminder add n/Jane Smith d/2025-12-01 m/Send conference paper draft
reminder add 2 d/01/12/2025 m/Review thesis chapter
Example expected output on success: New reminder added: John Smith; Date: 2025-12-01; Message: Review thesis chapter
Notes:
n/NAME (exact match required) or by INDEX from the displayed person list.
n/NAME, the application searches your entire address book. This means that you can add a reminder for someone that is not visible on the currently displayed contact listINDEX, it refers to the index number in the currently displayed contact list.INDEX must be a positive integer 1, 2, 3, …yyyy-MM-dd HH:mm (e.g., 2025-11-15 10:30)dd/MM/yyyy HH:mm (e.g., 15/11/2025 10:30)yyyy-MM-dd (e.g., 2025-11-15) - defaults to end of daydd/MM/yyyy (e.g., 15/11/2025) - defaults to end of dayUpcoming Reminders panel.reminder listDisplays all incomplete reminders that are upcoming in the Upcoming Reminders panel. This command is useful for refreshing the reminder view or checking all pending reminders at once.
Format: reminder list
Expected output on success: Listed all reminders
Notes:
reminder mark INDEX to mark reminders as completereminder markMarks one or more reminders as complete, removing them from the Upcoming Reminders panel. This helps you track which follow-ups you have already handled.
Format: reminder mark INDEX [MORE_INDEXES]...
Examples:
reminder mark 1 # marks the 1st reminder as complete
reminder mark 1 4 6 # marks the 1st, 4th, and 6th reminders as complete
Example expected output on success:
Marked Reminders:
Person: John Smith; Date: 2025-12-01; Message: Review thesis chapter
Notes:
INDEX (or INDEXES) as complete.clearClears all entries from the address book.
Format: clear
Expected output on success: 'Address book has been cleared!'
exitExits the program.
Format: exit
helpShows a message explaining how to access the help page.
Format: help
Data is saved automatically after any command that modifies the address book. Data file location:
[JAR file location]/data/addressbook.json.
AddressBook data are saved automatically as a JSON file [JAR file location]/data/addressbook.json. Advanced users are
welcome to update data directly by editing that data file.
[coming in v2.0]Details coming soon ...
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 AddressBook home folder.
preferences.json file created by the
application before running the application again.....
The remedy is to maximise the window or resize it until the data is visible.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 [t/TAG]… e.g., add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd t/friend t/colleague |
| Clear | clear |
| Delete | delete INDEX [MORE_INDEXES]e.g., delete 3 |
| Edit | edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…e.g., edit 2 n/James Lee e/jameslee@example.com |
| Find | find KEYWORD [MORE_KEYWORDS]e.g., find James Jake |
| List | list |
| Help | help |
| Tag | tag INDEX t/TAG [t/MORE_TAGS]…e.g., tag 1 t/friend t/colleague |
| Delete Tag | tagdel INDEX t/TAG [t/MORE_TAGS]…e.g., tagdel 1 t/friend t/colleague |
| Note | note INDEX |
| View Note | viewNote INDEX |
| Delete Note | deleteNote INDEX |
| Add Reminder | reminder add n/NAME d/DATE m/MESSAGE OR reminder add INDEX d/DATE m/MESSAGEe.g., reminder add 1 d/2025-11-15 10:30 m/Follow up on project |
| List Reminders | reminder list |
| Mark Reminder | reminder mark INDEX [MORE_INDEXES]...e.g., reminder mark 1 3 |