logo

contHACKS is a desktop app to help Teaching Assistants (TAs) in managing contacts. It is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). contHACKS streamlines the creation, reading, updating and deleting operations of contacts to make it fast and efficient for TAs, easing your workload to focus on the more important task - teaching.

Table of Contents

Quick start

  1. Ensure you have Java 11 or above installed on your computer

  2. Download the latest contHACKS.jar from here

  3. Copy the file to the folder you want to use as the home folder

  4. Double-click the file to start the app

  5. An application like the one in the screenshot below should appear in a few seconds

Back to table of contents


How to use this User Guide

This section provides tips on reading this document, as well as how to navigate it.

This User Guide is structured so that it is easy for you to find what you need. If this is your first time using contHACKS, we recommend reading the User Guide in order, starting from this section. If you are ever lost, head over to the table of contents to orientate yourself.

Here are some of the things you will need to know before you get started!

Meaning of icons

Icon Description
:information_source: This icon indicates that some extra information is provided.
:exclamation: This icon indicates that the information provided is important.
:warning: This icon indicates proceed with caution.

Key terms

These are the key terms defined for the usage of the commands:

  • Module Code: Refers to the module code of a NUS module
    e.g. CS2103, GEQ1000, ST2334

  • Lesson Code: Refers to the code of the lesson: tutorials, labs, sectionals etc
    e.g. T18, B30, E32

  • Telegram Handle: Telegram username that should begin with an @
    e.g. @BenIsHere, @Jerry321

  • Index: Refers to the number displayed next to the name in the displayed contact list.
    e.g. 1, 2, 3…

  • Alias: These are alternative words that you can use to perform the same command

Refer to the image below for more information on the different components of ContHACKS!

GUI

Top Navigation Bar

Contact List Panel

Lesson List Panel

Command format

Notes about the command format:

  • Command words are case insensitive
    e.g. add,Add and ADD can all be used to perform the same command

  • Words in UPPER_CASE are the parameters to be supplied by you
    e.g. in add n/NAME, NAME is a parameter that can be used as add n/John Doe

  • Items in square brackets are optional
    e.g n/NAME [h/TELEGRAM_HANDLE] can be used as n/John Doe h/@johndoe or as n/John Doe

  • Parameters of all commands can be in any order
    e.g. if the command specifies n/NAME p/PHONE, p/PHONE 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 specify p/12341234 p/56785678, only p/56785678 will be taken

  • 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

Some example commands you can try:

  • list : Lists all contacts

  • add n/Ben p/91234567 e/ben123@gmail.com m/CS2103T : Adds a contact named Ben

  • addc m/CS2103T G09 d/4 t/09:00 10:00 : Adds a class with CS2103T module code and G09 lesson code, that falls on a Thursday from 9am - 10am

  • delete 3 : Deletes the 3rd contact shown in the current contact list

  • deletec 2 : Deletes the 2nd lesson shown in the current lesson list

  • exit : Exits the app

Some additional notes:

  • The contact list panel and the lesson list panel are independent of each other. This means that adding a contact with module and lesson code CS2103T G09 will not create that lesson in the lesson panel list.
  • Contacts and lessons are sorted alphabetically after every command by name and module code name respectively.

Back to table of contents


Features

General

Accessing the help page : help

Shows a message explaining how to access the help page.

Format: help

Command aliases: man h

Back to table of contents


Exiting the program : exit

Exits the program.

Format: exit

Command aliases: quit q

Back to table of contents


Managing contacts

Adding a contact: add

Adds a contact to contHACKS.

Format: add n/NAME e/EMAIL m/MODULE_CODE [LESSON_CODE(S)] [p/PHONE] [h/TELEGRAM_HANDLE] [r/REMARK]

  • Name, email and module code are compulsory
  • Lesson code, phone number, telegram handle and remarks are optional
  • You can add multiple module codes, and can have multiple lesson codes for a single module code
  • You will not be able to add a person with the same email/phone number/telegram handle as another existing contact in contHACKS
  • If you add multiple module codes that are the same, only the first one would be considered
:information_source: Note: Module code and lesson code are separated by white spaces.

Examples:

  • add n/Ben e/ben123@gmail.com m/CS2103T T12 m/CS2100 T11 B05 p/91238456 h/@BenIsHere r/Overseas: Adds a contact using all parameters, with multiple module code and multiple lesson code
  • add n/Mary e/mary123@gmail.com m/CS2103T: Adds a contact using only the compulsory parameters
  • add n/Tim e/timothy@gmail.com m/CS2101 G09 m/CS2101 T11 h/@Teeeeeeeemo: Adds a contact with multiple module codes that are the same, only CS2101 G09 is considered

Command alias: a

Back to table of contents


Editing a contact: edit

Edits the contact at the specified index in the currently viewed list.

Format: edit INDEX [n/NAME] [e/EMAIL] [m/MODULE_CODE LESSON_CODE(S)] [p/PHONE] [h/TELEGRAM_HANDLE] [r/REMARK]

  • At least one of the parameters must be provided
  • Existing values of the parameters specified will be erased and updated to the input values
  • You can input multiple module codes, and can have multiple lesson codes for a single module
  • Edited person should not contain the same email/phone number/telegram handle as another existing contact in contHACKS
  • If you provide multiple module codes that are the same, only the first one would be considered
:information_source: Note: To remove an existing phone number/telegram handle/remark from a contact, simply input p/,h/,r/ respectively.

Examples:

  • edit 1 e/ben321@gmail.com p/91234567: Edits the email and phone number of the 1st contact to be ben321@gmail.com and 91234567respectively
  • edit 2 m/CS2100 T09 B09 m/CS2100 T01: Edits the modules of the 2nd contact to be [CS2100 T09 B09] because multiple module codes that are the same is provided
  • edit 3 r/: Removes the remark of the 3rd contact

Command aliases: update e

Back to table of contents


Deleting a contact / contacts: delete

Delete the specified contact(s) from contHACKS.

Format: delete INDEX/ delete INDEX_START-INDEX_END

  • Deletes the specified contact(s) at the specified index(es) including INDEX_END and INDEX_START.
  • INDEX_END should be a positive integer greater than or equal to INDEX_START.

Format: delete m/MODULE_CODE/delete m/MODULE_CODE LESSON_CODE

  • Delete all contacts associated with a module code using m/MODULE_CODE.
  • Delete all contacts associated with a lesson code under the module using m/MODULE_CODE LESSON_CODE.

Examples:

  • delete 2: Deletes the 2nd contact in the displayed list.
  • delete 2-5: Deletes the 2nd, 3rd, 4th and 5th contacts in the displayed list.
  • delete m/CS2103T: Deletes all the contacts with the module code CS2103T.
  • delete m/CS2103T T10: Deletes all the contacts with both the module code CS2103T and lesson code T10.

Command aliases: del rm d

Back to table of contents


Finding contacts by name / module code: find

Finds a contact by specifying either the name/module code(s).

Format: find n/NAME(S)/find m/MODULE_CODE(S)

  • Can only search by name(s) or module code(s), but not both at once
    i.e. You cannot perform find n/Ben m/CS2040S
  • The search is case-insensitive
    e.g alex will match Alex
  • The order of the keywords does not matter
    e.g. Yeoh Alex will match Alex Yeoh
  • Partial words will also be matched, for both name and module code searches.
    e.g. Ben will match Benjamin, S123 will match CS1231
:exclamation: Important: If multiple words are specified for the name search, only results matching all the words specified will be returned
e.g find n/Bernice Yu will only return contacts that have both words Bernice and Yu
Similarly, if multiple module codes are specified, only results matching all the module codes specified will be returned
e.g. find m/CS2030S CS2040S will only return contacts that have both CS2030S and CS2040S module codes

Examples:

  • find n/Alex: Search contacts that have names that contain Alex
  • find n/Charlotte Oliveiro: Search contacts with names containing all of Charlotte and Oliveiro
  • find m/CS1231 CS2030S: Search contacts that have both module codes CS1231 and CS2030S

Command alias: f

Back to table of contents


Listing all contacts : list

Shows a list of all contacts in contHACKS.

Format: list

Command alias: ls

Back to table of contents


Clearing all contacts: clear

Purges all existing contacts from contHACKS.

:warning: Warning: This action cannot be undone. Use with caution!

Format: clear

Command aliases: clr c

Back to table of contents


Managing lessons

Adding a lesson: addc

Adds a lesson to contHACKS.

Format: addc m/MODULE_CODE LESSON_CODE d/DAY t/START_TIME END_TIME [r/REMARK]

  • All the parameters are compulsory except for remark
  • Day input is only accepted in integer form
    e.g. 1 for Monday, 7 for Sunday
  • Start and end time input is only accepted in the HH:mm format
    e.g. 09:00
  • You will not be able to add a lesson with the same module and lesson code as another existing lesson in contHACKS
:information_source: Note: Module code and lesson code are separated by white spaces. Lesson start time and end time are separated by white spaces as well.

Examples:

  • addc m/CS2103T T12 d/4 t/09:00 10:00 r/Online: Adds a lesson with remark
  • addc m/CS2100 B05 d/3 t/14:00 15:00: Adds a lesson without remark

Command alias: ac

Back to table of contents


Editing a lesson: editc

Edits the lesson at the specified index in the currently viewed list.

Format: editc INDEX [m/MODULE_CODE LESSON_CODE] [d/DAY] [t/START_TIME END_TIME] [r/REMARK]

  • At least one of the parameters must be provided.
  • Existing values of the parameters specified will be erased and updated to the input values
  • Edited lesson should not contain the same module and lesson code as another existing lesson in contHACKS
:information_source: Note: To remove a remark from a lesson, simply input r/.

Examples:

  • editc 1 m/CS2100 B05: Edits the module of the 1st lesson to be CS2100 B05
  • editc 2 d/3: Edits the day of the 2nd lesson to be Wednesday
  • editc 3 t/10:00 12:00: Edits the start time and end time of the 3rd lesson to be 10AM and 12PM respectively
  • editc 4 r/COM01-0120: Edits the remark of the 4th lesson to COM01-0120
  • editc 5 m/CS2100 B05 d/3 t/10:00 12:00 r/COM01-0120: All parameters present in one command

Command aliases: updatec ec

Back to table of contents


Deleting a lesson / lessons: deletec

Deletes the specified lesson(s) from contHACKS.

Format: deletec INDEX/deletec INDEX_START-INDEX_END

  • Deletes the specified lesson(s) at the specified index(es) including the INDEX_START and INDEX_END.
  • INDEX_END should be a positive integer greater than or equal to INDEX_START.

Format: deletec m/MODULE_CODE

  • Deletes all contacts associated with a module code using m/MODULE_CODE.

Examples:

  • deletec 1: Deletes the 1st lesson in the displayed list.
  • deletec 1-3: Deletes 1st, 2nd and 3rd lesson in the displayed list.
  • deletec m/CS2103T: Deletes all the lessons with CS2103T module code.

Command aliases: delc rmc dc

Back to table of contents


Finding a lesson / lessons: findc

Finds a contact by specifying the module code(s)/day(s)/start time(s).

Format: findc m/MODULE_CODE(S)/findc d/DAY(S)/findc t/START_TIME(S)

  • Can only search using one prefix at a time
    i.e. You cannot perform findc m/CS2040S d/2
  • The search is case-insensitive
    e.g cs1231 will match CS1231
  • Only for module codes, partial word matches will also be matched.
    e.g. S123 will match CS1231
  • Day input is only accepted in integer form
    e.g. 1 for Monday, 7 for Sunday
  • Start time input is only accepted in the HH:mm format
    e.g. 15:00 09:00
:exclamation: Important: If multiple keywords are specified for the search, any lesson that matches at least one of the keywords will be returned
e.g. findc m/CS1231 CS2030S will return lessons that are of module CS1231 or CS2030S
e.g. findc d/2 3 will return lessons that are on Tuesday or Wednesday
e.g. findc t/10:00 15:00 will return lessons that start at either timings 10:00 or 15:00

Examples:

  • findc m/CS1231 CS2030S: Search lessons of modules CS1231 or CS2030S
  • findc d/2: Search lessons that fall on Tuesdays
  • findc t/10:00: Search lessons that start at 10:00

Command alias: fc

Back to table of contents


Listing all lessons: listc

Shows a list of all lessons in contHACKS.

Format: listc

Command alias: lsc

Back to table of contents


Clearing all lessons: clearc

Purges all existing lessons from contHACKS.

:warning: Warning: This action cannot be undone. Use with caution!

Format: clearc

Command aliases: clrc cc

Back to table of contents


Managing Data

Saving the data

Contact 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

contHACKS data are saved as a JSON file [JAR file location]/data/conthacks.json.

:information_source: Note: Advanced users are welcome to update data directly by editing that data file.
:warning: Warning: If your changes to the data file make its format invalid, contHACKS will discard all data and start with an empty data file on the next start up.

Back to table of contents


Command Summary

Category Action Command Format Example
General Accessing the help page help man
h
help help
Exiting the app exit quit
q
exit exit
Managing contacts Adding a contact add
a
add n/NAME e/EMAIL m/MODULE_CODE [LESSON_CODE(S)] [p/PHONE] [h/TELEGRAM_HANDLE] [r/REMARK] add n/Ben e/ben123@gmail.com m/CS2103T T12 p/91238456 h/@BenIsHere r/Overseas
Editing a contact edit
update
e
edit INDEX [n/NAME] [e/EMAIL] [p/PHONE] [h/TELEGRAM_HANDLE] [m/MODULE_CODE LESSON_CODE(S)] [r/REMARK] edit 1 p/91234567 e/ben321@gmail.com
Deleting a contact / contacts delete
del
rm
d
delete INDEX
delete INDEX_START-INDEX_END
delete m/MODULE_CODE
delete m/MODULE_CODE LESSON_CODE
delete 2
delete 2-5
delete m/CS2103T
delete m/CS2103T T09
Finding a contact / contacts find
f
find n/NAME
find m/MODULE_CODE(S)
find n/Ben
find m/CS2103T
Listing all contacts list
ls
list list
Clearing all contacts clear
clr
c
clear clear
Managing lesson Adding a lesson addc
ac
addc m/MODULE_CODE LESSON_CODE d/DAY t/START_TIME END_TIME [r/REMARK] addc m/CS2103T T12 d/4 t/09:00 10:00 r/Online
Editing a lesson editc
updatec
ec
editc INDEX [m/MODULE_CODE LESSON_CODE] [d/DAY] [t/START_TIME END_TIME] [r/REMARK] editc 5 m/CS2100 B05 d/3 t/10:00 12:00 r/COM01-0120
Deleting a lesson / lessons deletec
delc
rmc
dc
deletec INDEX
deletec INDEX_START-INDEX_END
deletec m/MODULE_CODE
deletec 1
deletec 1-3
deletec m/CS2103T
Finding a lesson / lessons findc
fc
findc m/MODULE_CODE(S)
findc d/DAY(S)
findc t/START_TIME(S)
findc m/CS2030 CS2040
findc d/2 3
findc t/10:00 15:00
Listing all lessons listc
lsc
listc listc
Clearing all lessons clear
clrc
cc
clearc clearc

Back to table of contents