User Guide
Introduction
Teaching Assistant Contact Helper (TACH) is a desktop application that helps Computer Science (CS) Teaching Assistants (TAs) (like you!) from National University of Singapore (NUS), especially those that tutor multiple tutorial groups, by managing their students in an organised manner.
You can add, edit and delete students and their tutorial groups from the list easily. You can also find students by their name or by their tutorial group.
TACH automatically sorts students in alphabetical order, and all the students’ contact details are right next to their names, so that you can get their details in a glance, and easily know which contacts belong to whom.
TACH works by typing what you want to do as commands. It is optimized for keyboard users, so if you can type fast, TACH can work even faster.
How to use this guide
The goal of this guide is to help you, the reader, to understand how to use our app better, regardless of whether you are a new user or an experienced user.
If you are a new user and want to learn how to download and set up the app, go to Quick Start.
If you have already installed the app and want to learn the basics, go to Quick Tutorial.
If you are an experienced user who wants to use the app to its full potential, or just want a quick refresher on the commands, you can look at all the commands for TACH via Commands.
Table of Contents
- Introduction
- How to use this guide
- Table of Contents
- Quick Start
- Quick Tutorial
- Commands
- Input Requirements
- Saving the data
- Editing the data file
- FAQ
- Glossary
- Command Summary
Quick Start
-
Ensure you have Java 11 or above installed in your Computer.
-
Download the latest release of
TACH.jar
here. -
Copy the file to the folder you want to use as the home folder for your TACH.
-
Double-click the file to start the app. The app should appear in a few seconds and look similar to the image below. Note how the app contains some sample data.
For macOS users:
If the app does not open by double-clicking, follow these steps instead:
- Move the downloaded
TACH.jar
to a new folder (e.g. TACHfolder) in yourDesktop
. - Open up your terminal application.
- Enter
cd Desktop
in your terminal to go into your desktop directory. - Then, enter
java -jar TACHfolder/TACH.jar
to open the app.
Note:
- You can resize the app by clicking and dragging the edges of the window to see more users at a time. You can also maximise the window.
You’re ready to start using TACH! You can continue learning how to use TACH through the Quick Tutorial.
On the other hand, if you’re feeling confident, you can dive straight into all the Commands.
Quick Tutorial
This quick tutorial will teach you how to navigate through the app and its components, along with some basic commands that you can use right now!
App Components
Here is a quick summary of all the components of the app:
(Remember that you can resize the window!)
-
Options: Various options that you can use for the app.
-
Command Box: The place where you type your commands. Once you have finished typing your command, press the ⏎Enter key on your keyboard to submit your command.
-
Student Box: Represents a student and all their details. It has an index, the student’s name, their contact details, and their tutorial group(s).
-
Index: A number showing where the student is positioned in the current list.
-
Name: The student’s name.
-
Contact Details: The student’s contact details.
- The student must have an Email, but their Telegram and GitHub usernames can be optional.
-
Tutorial Group(s): The student’s tutorial group(s). The student must have at least one tutorial group.
- Results Display: Displays the results of a successful command, or an appropriate error message if the command is invalid.
Quick Command Tutorial
Now that you know what each of the components are, it’s time to learn a few commands! Commands will look like
this
. Type the following commands exactly into the command box and press the ⏎Enter key to submit
your command. The effect of each command is described after the command itself.
-
list
: Lists all the students in TACH.
-
add n/Carl Sagan e/carlsagan42@gmail.com tg/cs2100 g01
: Adds the student “Carl Sagan” with their email and tutorial group to TACH. They should appear as the 3rd person (Index 3) on the list.
-
delete 2
: Deletes the 2nd person in the displayed list. Here, “Bernice Yu” should be deleted from the list.
-
find david
: Finds all students that have “David” in their name. Only “David Li” should be visible to you now.
-
edit 1 n/David Lee t/DavidLee777 g/david-lee
: Edits the 1st person in the visible list by changing their name, their Telegram and their GitHub. This should edit “David Li” to “David Lee” and add their Telegram and GitHub usernames.
-
findtg cs2106 t05
: Finds all students that have “CS2106 T05” as a tutorial group. In this tutorial, you should see 3 students that have “CS2106 T05” as their tutorial group.
-
list
: Lists all the students in TACH again.
-
deletetgall tg/cs2106 t05
: Deletes the tutorial group “CS2106 T05” from every student. Students that have no tutorial groups afterwards will be deleted as well. In this tutorial, you should see that “CS2106 T05” is nowhere to be found, and the student “Charlotte Oliveiro” is deleted since they no longer have any tutorial groups.
- Experiment with some commands! Try out the same commands but with different formats, or you can take a look at
Commands for a few more commands that are not covered in this tutorial. When you’re ready,
you can move on to the next two easy commands to complete the tutorial.
-
clear
: Clears TACH of all students.
-
exit
: Exits the app.
This completes the command tutorial! You’re now ready to start adding your own students!
Note about reloading sample students:
If you ever get stuck or want to try out the tutorial again, follow these instructions to reload the sample students into the app.
- Exit the app.
- Go to the folder that TACH is in.
- Delete the
data
folder. - Reopen the app again.
The app should give back the original sample students for you to try out commands again!
Congratulations! You’ve learned what each component in the app is, and some basic commands that you can use right now
to get started! If you want more details on what each command does, you can refer to Commands for
a better understanding.
Go back to Table of Contents.
Commands
List of commands:
- Viewing help
- Listing students
- Adding
- Editing a student
- Finding
- Deleting
- Clearing all entries
- Exiting the program
Notes about the command format:
-
Words in
UPPER_CASE
are the parameters to be supplied by you.
e.g. inadd n/NAME
,NAME
is a parameter which can be used likeadd n/John Doe
for example. -
Items in square brackets are optional.
e.g.e/EMAIL [t/TELEGRAM]
can be used ase/e0123456@u.nus.edu t/JohnSmith
or ase/e0123456@u.nus.edu
-
Items with
…
after them can be added multiple times.
e.g.tg/TUTORIAL_GROUP…
can be used astg/CS2103 W15-3
,tg/CS2103 W15-3 tg/CS2100 G08
etc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME e/EMAIL
,e/EMAIL n/NAME
is also acceptable. - Extraneous parameters for commands that do not take in parameters (such as
help
) will be ignored.
e.g. if the command specifieshelp 123
, it will be interpreted ashelp
.
-
help123
will not be interpreted ashelp
.
-
- For information on the requirements of the different inputs, refer to Input Requirements.
Viewing help : help
Opens a window showing the Command Summary and the Input Requirements, and also gives a reference to the full user guide, which is this page.
Format: help
Listing all students: list
Shows a list of all students in TACH.
Format: list
The students will be sorted in alphabetical order by their names.
Adding
Adding a student: add
Adds a student into TACH.
Format: add n/NAME e/EMAIL [t/TELEGRAM] [g/GITHUB] tg/TUTORIAL_GROUP…
Note:
- Adding a student with the exact same name as another student in TACH is not allowed.
- e.g. If
Sam
exists in TACH, anotherSam
cannot be added again even if their contact details are different. - You can manually differentiate them by saving them as
Sam 1
andSam 2
for example, or use your own way of identifying them.
- e.g. If
- Names in TACH are used to uniquely identify students. If two students who have the same name are in the same tutorial group, it would be difficult to differentiate the two students.
Examples:
add n/John Doe tg/CS2100 G08 e/e0123456@u.nus.edu
add n/Michael Tay e/michaelT@gmail.com t/MichaelTay g/michael777 tg/CS2103T W15-3 tg/CS2100 G08
The following image shows the output for the following command:
add n/Chloe Lee e/chloexlee@gmail.com t/chloe201 g/jchloechloe tg/CS2101 G08
Adding tutorial group(s) for a student: addtg
Adds tutorial group(s) for a student in TACH.
Format: addtg INDEX tg/TUTORIAL_GROUP…
- Adds one or more tutorial groups for the student at the specified
INDEX
. - Adding of tutorial groups is cumulative. (Existing tutorial groups of the specified student will remain unchanged.)
Example:
-
list
followed byaddtg 2 tg/CS2040S T03
adds the tutorial groupCS2040S T03
for the 2nd student listed in TACH. -
find Dave
followed byaddtg 1 tg/CS2040S T03 tg/CS3230 T01
adds the tutorial groupsCS2040S T03
andCS3230 T01
for the 1st student in the results of thefind
command.
Editing a student : edit
Edits an existing student in TACH.
Format: edit INDEX [n/NAME] [e/EMAIL] [t/TELEGRAM] [g/GITHUB] [tg/TUTORIAL_GROUPS]…
- Edits the student at the specified
INDEX
- At least one of the optional details (Name/NUS email/Telegram/GitHub/Tutorial Groups) must be provided.
- Any details entered in the
edit
command will replace the original details of the student. - Details not entered in the
edit
command will stay the same and not be replaced.
Note:
- Tutorial groups CANNOT be empty.
edit 1 tg/
is NOT allowed.- GitHub and Telegram CAN be empty.
edit 1 g/ t/
is allowed and will set the student to have no GitHub and Telegram.
Examples:
-
list
followed byedit 2 t/DaveHunter g/
edits the 2nd student listed in TACH. Their Telegram will be edited toDaveHunter
and they will not have any GitHub username. -
find Robert
followed byedit 1 n/Bobby Smiles
edits the 1st student in the results of thefind
command. Their name will be edited toBobby Smiles
.
The following diagram shows the output for edit 5 t/chloe201 g/chloechloe
from the previous Add student
command
Finding
Finding students by name: find
Finds students whose names contain all the given keywords.
Format find KEYWORD [ADDTIONAL_KEYWORDS]
- Only the name is searched.
- The search ignores cases. e.g.
charles
will matchCharles
- The order of the keywords matters. e.g.
Charles Boyle
will not matchBoyle Charles
- Keywords can match the name partially e.g.
Char
WILL matchCharles
- e.g.
Charles Bo
andles Boyle
will matchCharles Boyle
, butCharle Boyle
will not matchCharles Boyle
- e.g.
- The positions of the spaces matter. e.g.
Alex Lee En
will not matchAlex Leeen
- Students whose names contain the keyword fully or partially will be returned
- e.g.
find char
will returnCharles Alex Lee
,Charles Boyle
, andRacharl Tan
if they are in the list of students
- e.g.
Finding students by tutorial group: findtg
Finds all students in a particular tutorial group.
Format findtg TUTORIAL_GROUP
- The search ignores cases. e.g.
cs2101 g08
will matchCS2101 G08
- The search ignores extra spaces between the module name and the tutorial group name. e.g.
cs2101<><><>g08
will matchcs2101<>g08
- In this example,
<>
means a space. - However, e.g.
cs2101<>g<>08
will not matchcs2101<>g08
- In this example,
- Only the tutorial group is searched.
- Only the exact tutorial group will be matched e.g.
CS2101 G
WILL NOT matchCS2101 G08
- Students with matching tutorial group will be returned. e.g.
findtg CS2101 G08
will returnCharles Martinet
andSusan Boyle
only if both of them are in the tutorial groupCS2101 G08
- If there are no students with matching tutorial group, no student will be returned and an empty list is displayed.
The following diagram shows the result for findtg CS2100 T05
Deleting
Deleting a student: delete
Deletes the specified student from TACH.
Format: delete INDEX
- Deletes the student at the specified
INDEX
.
Examples:
-
list
followed bydelete 2
deletes the 2nd student listed in TACH. -
find Waldo
followed bydelete 1
deletes the 1st student in the results of thefind
command.
Deleting a tutorial group from a student: deletetg
Deletes the specified tutorial group from the specified student.
Format: deletetg INDEX tg/TUTORIAL_GROUP
- Deletes the specified tutorial group of the student at the specified
INDEX
. - The tutorial group must be written EXACTLY, but ignores cases. e.g.
deletetg 1 tg/cs2040s t03
will deleteCS2040S T03
if that person has that tutorial group, butdeletetg 1 tg/cs2040s
ordeletetg 1 tg/cs2040st03
WILL NOT successfully delete it. - The tutorial group cannot be deleted if it is the only tutorial group a student has. e.g. A student with only
the tutorial group
CS2040S T03
cannot have that tutorial group deleted.
Examples:
-
list
followed bydeletetg 2 tg/CS2103T W15-3
deletes the tutorial groupCS2103T W15-3
of the 2nd student listed in TACH (only if the 2nd student has more than one tutorial group). -
find Carmen
followed bydeletetg 1 tg/cs2100 g01
deletes the tutorial groupCS2100 G01
of the 1st student in the results of thefind
command (only if the 1st student has more than one tutorial group).
Deleting tutorial groups from all students: deletetgall
Deletes the specified tutorial group from ALL students in TACH.
Format: deletetgall tg/TUTORIAL_GROUP…
- Deletes the specified tutorial group from ALL students stored in TACH.
- The tutorial group must be written EXACTLY, but ignores cases. e.g.
deletetgall tg/cs2040s t03
will deleteCS2040S T03
from tutorial groups of all Students, butdeletetgall tg/cs2040s
ordeletetgall tg/cs2040st03
WILL NOT successfully deleteCS2040S T03
from students in TACH.NOTE: After the deletion, you will see all the updated remaining students in TACH.
WARNING:
- Students with 0 tutorial groups after the deletion will automatically be deleted.
- ALL students in TACH will be affected. Even those not visible as a result of the
find
command.
Example:
-
find Eve
followed bydeletetgall tg/CS2103T W15-3
deletes the tutorial groupCS2103T W15-3
from all students in TACH, including those not visible after thefind Eve
command (i.e. students whose name does not containEve
) -
deletetgall tg/CS2106 T08 tg/CS2103T W13-3
will remove tutorial groupsCS2106 T08
andCS2103T W13-3
from all students in TACH. Students with 0 tutorial groups after the tutorial groups’ deletion will be deleted from TACH.
The following diagram shows the output of deletetgall tg/CS2100 T05
from the previous findtg
command
Note:
- 3 students,
Gwak Seo Hyeon
,John Smith
andPranith Loganathan
are deleted because they have 0 tutorial groups left afterCS2100 T05
is deleted.
Clearing all entries : clear
Clears all entries from TACH. This means every student and all their details.
Format: clear
WARNING: This action erases all the student data stored in your computer and CANNOT be undone! Consider carefully before calling the command as you will have to re-enter the students’ details if clear is executed accidentally.
Exiting the program : exit
Exits the program.
Format: exit
Input Requirements
There are parameters (like Names, NUS Emails, and GitHub usernames for example) that must follow certain requirements so that TACH recognises them as valid parameters. Here is a list of requirements of every parameter to easier understand which parameters are invalid when typing a command.
In the list, a word is defined as a bunch of characters (letters, numbers, punctuation, etc.) separated by spaces.
e.g. There A_RE 4 w0-rd_s.
has 4 words.
Parameter | Requirements |
---|---|
INDEX | Must be a positive number that can be a maximum of 2,147,483,647 (1, 2, 3, … , 2147483647). e.g. 100
|
NAME | Must contain letters. Can contain spaces, apostrophes and hyphens as long as they are in between letters. Consecutive spaces, apostrophes or hyphens are not allowed. Name must start with a letter. Numbers are allowed, but they must strictly be at the end of the name separated by a space. Cannot be empty, and must not be more than 100 characters long, including spaces. e.g. John Smith 2 or Johnson-Johnson Maxine d'Arby
|
TUTORIAL_GROUP | Must STRICTLY consist of a module code, followed by a space, then the tutorial name. It should not be blank. The tutorial name must have a non-zero digit and cannot start or end with a hyphen. The name can consist of a combination of letters, hyphens, digits or underscores. Tutorial groups can only have a maximum of 100 characters including spaces. e.g. CS2103T W15-3_A ALL letters in tutorial group inputs will be converted into uppercase letters e.g. addtg 2 tg/cs2101 t01 will add CS2101 T01 into the list of tutorial groups of student 2, assuming there are at least 2 students in the list that you see. |
An email consists of three parts in the following order, the local part, the @ sign, and the domain part. The local part should only contain letters, numbers, and these special symbols: + _ . - . It cannot start or end with the special symbols. It must be at most 64 characters long. There must be an @ sign afterwards, followed by the domain name. The domain name must be one of the following: u.nus.edu nus.edu.sg gmail.com yahoo.com outlook.com hotmail.com e.g. e0123456@u.nus.edu or jasminelim@gmail.com (Our original intention is for you to put in your students’ NUS emails which are given to you on LumiNUS, but we also provide the freedom to use some of the more popular email providers listed above, should they be more convenient.) |
|
TELEGRAM | May include @ at the start. Must be exactly one word that can contain letters, numbers and underscores. It must be between 5 to 32 characters long (inclusive). This does not count the @ symbol. e.g. Dave3 or @Lorem_ipsum_dolor_sit_amet_12345
|
GITHUB | Must be exactly one word that can contain letters, numbers and hyphens. It must be between 2 to 39 characters long (inclusive). e.g. 12345678 or cake-is-a-lie77
|
Saving the data
TACH data is saved in your computer’s hard disk automatically after any command that changes the data is entered. There is no need to save manually.
Editing the data file
TACH data is saved as a JSON file under [TACH file location]/data/addressbook.json
.
You should not edit the data file directly unless you are absolutely sure of what you are doing!
Only advanced users who are absolutely familiar with the data format should try updating the data directly by editing the data file.
Caution: If your changes to the data file make its format invalid, TACH will consider the data corrupted and discard ALL data, starting with an empty data file in the next run. This action CANNOT be undone! Please consider making a copy of the data first before attempting to edit the data file.
Go back to Table of Contents.
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 TACH home folder.
Q: Does TACH works on both MacOS and Microsoft Windows?
A: Yes. It is supported on both systems.
Q: TACH doesn’t seem to work on my computer, how may I get help?
A: You may drop us an email here with the relevant questions: Link.
Glossary
Terms | Definition |
---|---|
Hard disk | A storage device for data in your computer. |
JSON file | A file that uses human-readable text to store and transmit data objects such as Students in the case of TACH. |
Command Summary
Action | Format, Examples |
---|---|
Add Student |
add n/NAME e/EMAIL [t/TELEGRAM] [g/GITHUB] tg/TUTORIAL_GROUP… e.g. add n/John Smith tg/CS2103T W15-3 e/e0123456@u.nus.edu t/johnsmyname g/johnsmyname
|
Add Tutorial Group for Student |
addtg INDEX tg/TUTORIAL_GROUP… e.g. addtg 5 tg/CS2100 G08
|
Edit Student |
edit INDEX [n/NAME] [e/EMAIL] [t/TELEGRAM] [g/GITHUB] [tg/TUTORIAL_GROUP]… e.g. edit 3 n/Mary Sue t/PresentPerfect
|
Find Students by name |
find KEYWORD [ADDTIONAL_KEYWORDS] e.g. find Jack Ho
|
Find Students by Tutorial Group |
findtg TUTORIAL_GROUP e.g. findtg CS2101 G08
|
Delete Student |
delete INDEX e.g. delete 4
|
Deleting Tutorial Group from Student |
deletetg INDEX tg/TUTORIAL_GROUP e.g. deletetg 4 tg/cs2030s t11
|
Deleting Tutorial Group from all Students |
deletetgall tg/TUTORIAL_GROUP… e.g. deletetgall tg/CS2106 T08
|
List | list |
Clear | clear |
Help | help |