TAPro is your go-to Contact Book, created with love for Computer Science Teaching Assistants (TAs) like you. We get it — juggling your students and keeping track of attendance can be a handful. That’s why TAPro is here to make your life easier. With features designed precisely for you, it's all about simplifying those time-consuming tasks, letting you focus on what you do best: teaching and inspiring your students. Welcome to a smoother, more personalized way of managing your TA duties!
TAPro is 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, TAPro can get your contact management and attendance taking tasks done faster 🚀 than traditional GUI apps.
help
setcrs
addstu
list
edit
find
mark
unmark
delstu
clear
exit
Welcome to the cozy corner of the TAPro User Guide! 🌟 Whether you're embarking on your very first day as a TA or you're practically a wizard with student info, we've put together this guide to make sure you get the most out of TAPro.
New around here? No worries, we've got you. Start with these sections to become a TAPro buddy in no time:
Ready to Roll? Skip over to Quick Start for the no-fuss, easy-peasy steps to download TAPro and get ready for action.
🚀 Already a TAPro champ? Let's add some spice to your TA skills:
setcrs
.addstu
.mark
.unmark
reverses that mark.list
.edit
.find
helps you search by keyword.delstu
.clear
does just that.Need a quick TAPro refresher? Our Command Summary is like the TAPro bible—short, sweet, and to the point.
Stumbled upon a hurdle or just curious? Swing by our FAQ where we tackle all your burning questions and offer nuggets of wisdom for a smooth TAPro journey.
This segment aims to make your TAPro experience as smooth as silk. With these notions and terms at your fingertips, you're well on your way to becoming a TAPro power user!
Diving into TAPro, you'll encounter some handy notations and terms. We've decoded them here to make your journey smoother and more enjoyable.
Symbols are indicators that give additional information about a target piece of text.
Symbol | Meaning of target text |
---|---|
Tip | |
Warning | |
Important | |
Additional useful information | |
Valid example | |
Invalid example | |
Danger | |
Definition | |
Question | |
Command Format | |
KEY | Keyboard key input |
syntax | Input and output related syntax |
link | Clickable link |
Keywords are word(s) that hold greater significance.
Keywords | Meaning |
---|---|
Attribute | A single detail of a student. |
Autocomplete | A feature that predicts and completes commands as you type. |
Autocompletion | The autocomplete feature's suggested result(s). |
Command | An executable input text in the command input box. |
Command History | A record of successfully executed commands that can be retrieved for reuse. |
Command Line Interface | A text-based interface used for entering commands directly. |
Command Name | The word used to identify that it's associated command is used. |
Graphical User Interface | The visual interface that enhances user interaction with graphical elements. |
Parameter | A piece of information can be used in commands to be executed. |
Placeholder Value | A parameter value used to indicate that a value is not set for an attribute. |
Recognized Prefix | A prefix that has an associated parameter and attribute. |
Abbreviations are a shortened form of a word or phrase.
Abbreviation | Meaning |
---|---|
ASCII | American Standard Code for Information Interchange |
CLI | Command Line Interface |
CS | Computer Science |
GUI | Graphical User Interface |
JSON | JavaScript Object Notation |
NUS | National University of Singapore |
TA | Teaching Assistant |
UI | User Interface |
URL | Uniform Resource Locator |
Commands formats have specific notations to represent how a command can be used.
Notation | Meaning |
---|---|
prefix/ | Represents a prefix. |
UPPER_CASE | Represents parameters that need to be given by you! |
[ELLIPSIS]... | Indicates that a parameter can be repeated or omitted entirely. |
[SQUARE_BRACKETS] | Denotes optional parameters. |
Prefixes must have a space in front of them.
Recognized Prefixes: Prefixes that have an associated parameter and attribute in TAPro.
Parameter | Recognized Prefix | Attribute | Constraints |
---|---|---|---|
NAME | n/ | Name of the student. | Proper-case and alphabetical characters only. |
NUSNET | nn/ | NUSNet ID of the student. | Case-insensitive, unique identifier. |
PHONE | p/ | Phone number of the student. | At least 3 digits, and digits only. |
EMAIL | e/ | Email address of the student. | Case-insensitive, valid email address. |
MAJOR | m/ | Major of the student. | Unconstrained. |
TAG | t/ | Tag(s) of the student. | Case-sensitive, alphanumeric without spaces. |
WEEK | wk/ | Week number of student's attendance. | Integer between 1 to 13 (inclusive). |
Tags can be associated with a student for categorization.
These parameters are not associated with an attribute and do not have recognized prefixes.
Parameter | Meaning |
---|---|
COURSE_CODE | Course code which the user is tutoring for. |
INDEX | The numbered position of a student in the student contact cards panel. |
KEYWORD | The main search keyword for student names. |
MORE_KEYWORDS | Additional search keywords for student names. |
Welcome to the TAPro GUI! 🎉 Here's a quick tour to help you get comfortable with the interface:
Installing Java:
If you do not have Java 11 or above installed, you can download the latest available version of Java from here.
For macOS users, you may wish to follow the instructions here.
Only Java 11 has been tested to work with TAPro, so check that your Java version is correct if you are facing issues with TAPro.
Download the latest version of TAPro.jar
from here.
Copy the file to the folder you want to use as the home folder for your TAPro.
Open a command terminal, cd
into the folder you downloaded the JAR file in, and run the java -jar TAPro.jar
command to launch the application.
A GUI similar to the below image should appear in a few seconds. Note how the app contains some sample data.
Example: Typing help
in the command input box and pressing ENTER will open the help window.
Here are some example commands you can try:
list
: Lists all contacts.
addstu nn/E0952224 n/John Doe p/98765432 e/johnd@example.com m/Computer Science
: Adds a student named John Doe
to the contact book.
delstu nn/E0952224
: Deletes the student with NUSNet ID E0952224 from the contact book (assuming they were already in the contact book).
clear
: Deletes all students, and their contact and attendance information.
exit
: Exits the application.
About the command format:
Words in UPPER_CASE
are the parameters to be supplied by the user.
Example: In addstu n/NAME
, NAME
is a parameter which can be used as addstu n/John Doe
.
Items in square brackets are optional.
Example: 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.
Example: [t/TAG]…
can be used as (i.e. 0 times),
t/friend
, t/friend t/family
etc.
Parameters can be in any order.
Example: If the command specifies n/NAME p/PHONE
, p/PHONE 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.
Example: If the command specifies help 123
, it will be interpreted as help
.
Non-recognized prefixes be parsed as part of the previous parameter's value.
Example: If the command specifies addstu n/John Doe a/Non-recognized-prefix
, it would be parsed as NAME
parameter being John Doe a/Non-recognized-prefix
, instead of just John Doe
, as a/
is not a recognized prefix.
When 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
Entering the help
command opens a help window that shows a message explaining how to access the help page,
as well as quick reference of each command with simple examples on how to use them.
Format: help
help
will be simply ignored.A new window is opened:
A new window is opened, so that it does not clutter up your main window. A GUI similar to the below image should appear.
More about help's quick reference:
The quick reference is meant for fast and reliable lookup of commands and their usages, without needing an internet connection and opening a browser to get an overview of the commands.
Resizing the help window:
The help window is resizable, so you can easily reposition and resize it to fit anywhere on your screen, exactly where you want it to be.
Switching quickly between the help and main window:
On Windows and most Linux distributions, you can use the keyboard shortcut: ALT + TAB, to switch between windows quickly.
On macOS, you can use the keyboard shortcut: ⌘CMD + `, to switch between windows quickly.
Screenshots of using the help
command:
Help window:
setcrs
Sets the course code in question.
Format: setcrs COURSE_CODE
The course code is shown at the top of TAPro's main window.
Course code must be in the format XX1234Y
, where Y
is optional.
Course codes are case-insensitive.
Course code is meant for CS coded courses, hence only a prefix of two letters is allowed.
Examples:
setcrs cs2103t
setcrs CS2030
Screenshots of using the setcrs
command:
Before running setcrs
command:
After running setcrs
command:
addstu
Adds a student to the contact book.
Format: addstu n/NAME nn/NUSNET [p/PHONE] [e/EMAIL] [m/MAJOR] [t/TAG]…
Adds a student with the given details.
The name and NUSNet ID must be provided, as they are not optional parameters.
And NUSNet ID must be unique.
Case-insensitivity of NUSNet ID:
NUSNet ID is case-insensitive, and it will be converted to uppercase automatically upon running the command.
For example, e0123456
will be converted to E0123456
, as E0123456
and e0123456
refer to the same NUSNet ID.
Adding un-permitted names:
In the current version of TAPro, certain names are not permitted due to the strictness of name validation.
The current workaround is to follow the proper-case format and make slight changes to the name, so that the validation works.
Example: For names like Zubir bin Said
and Balaji s/o Sadasivan
, we can make slight changes to the name to fit current permitted formats.
They become Zubir Bin Said
and Balaji So Sadasivan
after the change, which are still similar enough to the original to not cause confusion.
Major not provided
for MAJOR
field).Any number of tags:
A student can have any number of tags, including 0.
Alphanumeric tags
bestFriend4Ever
, colleague
, Club
are valid tags, but best friend
, best-friend
are not valid tags.
Adding new tag(s) will replace the existing tag(s)
Adding multiple majors:
If a student is undertaking a double degree programme, you can use a comma to separate the disciplines in the MAJOR
field.
Example: We can use m/Computer Science, Mathematics
to indicate that a student has these two majors, Computer Science and Mathematics.
Examples:
addstu n/John Doe nn/E1234567 p/98765432 e/johnd@example.com m/Computer Science
addstu n/Betsy Crowe nn/E0123456 t/friend e/betsycrowe@example.com m/Mathematics, Physics p/1234567 t/club
addstu n/Betsy Crowe nn/E0123456
Screenshots of using the addstu
command:
Before running addstu
command:
After running addstu
command:
list
Shows a list of all persons in the contact book.
Format: list
list
will be simply ignored.Screenshots of using the list
command:
Before running list
command:
After running list
command:
edit
Edits an existing student in the contact book.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [m/MAJOR] [nn/NUSNET] [t/TAG]…
INDEX
. The index refers to the index number shown in the displayed student list. The index must be a positive integer, such as 1, 2, 3, …This command differs from most other commands that uses NUSNET
to identify a student. This command uses the index number shown in the displayed person list to identify the student to be edited.
At least one of the optional fields must be provided.
Existing values will be updated to the input values.
When editing tags, the existing tags of the student will be removed, i.e adding of tags is not cumulative.
You can remove all the student’s tags by typing t/
without
specifying any tags after it.
When t/
is specified in the command, no other tags can be present, in order to remove all of a student's tag.
Otherwise, TAPro will parse the input as adding multiple tags, which may lead to an unsuccessful execution of the command.
Example: Entering edit 1 t/abc t/
will cause the error message Tags names should be alphanumeric
to be shown. This error message is shown because TAPro expects the second t/
to contain an alphanumeric value, which an empty value is not.
Examples:
edit 1 p/91234567 e/johndoe@example.com
Edits the phone number and email contact of the first student to be 91234567
and johndoe@example.com
respectively.
edit 2 n/Betsy Crower t/
Edits the name of the second student to be Betsy Crower
and clears all existing tags.
Screenshots of using the edit
command:
Before running edit
command:
After running edit
command:
find
Finds students whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]…
Parameters of find
command:
Both KEYWORD
and [MORE_KEYWORDS]…
accept alphanumeric and special symbols as their supplied value, and are separated by spaces when supplied.
KEYWORD
is the first keyword to search for. This is a compulsory parameter.
[MORE_KEYWORDS]…
are additional, optional keywords to search for. You can have any number of additional keywords.
About the find
command:
Only the name is searched.
Example: E01234567
will not match a student with NUSNet ID E01234567
.
The name search is case-insensitive.
Example: hans
will match Hans
The order of the keywords does not matter.
Example: Hans Bo
will match Bo Hans
Only full words will be matched.
Example: Han
will not match Hans
Students' name matching at least one keyword will be returned (i.e. OR
search).
Example: Hans Bo
will return Hans Gruber
, Bo Yang
Find does not give any error message when invalid parameters are supplied.
Examples of using the find
command:
Example: find John
returns john
and John Doe
Example: find alex david
returns Alex Yeoh
, David Li
, as seen in the image below.
Screenshots of using the find
command:
Before running find
command:
After running find
command:
mark
Marks a student's attendance for a particular week.
Format: mark nn/NUSNET wk/WEEK
Example: mark nn/E1234567 wk/3
Screenshots of using the mark
command:
Before running mark
command:
After running mark
command:
unmark
Unmarks a student's attendance for a particular week.
Format: unmark nn/NUSNET wk/WEEK
Example: unmark nn/E1234567 wk/3
Screenshots of using the unmark
command:
Before running unmark
command:
After running unmark
command:
delstu
Deletes the specified student from the contact book.
Format: delstu nn/NUSNET
Example: delstu nn/E0957499
deletes the student with the NUSNet ID of E0957499
from the contact book.
Easily find and delete students:
If you cannot remember your student's NUSNet ID, you could use find Betsy
or list
followed by delstu nn/<Betsy's NUSNET>
to find and delete the student.
Screenshots of using the delstu
command:
Before running delstu
command:
After running delstu
command:
clear
Clears all entries from the contact book.
Format: clear
clear
will be simply ignored.Screenshots of using the clear
command:
Before running clear
command:
After running clear
command:
exit
Exits the program.
Format: exit
exit
will be simply ignored.Screenshots of using the exit
command:
Before running exit
command:
The autocomplete feature autocompletes a parameter or command, based on the current command box input and the current data in TAPro. This means that if an attribute value is not present, it will not be present in the autocompletion of that corresponding parameter.
Autocompletion: The autocomplete feature's suggested result(s).
Autocompletes the first word as a command name:
The first word, will be autocompleted as a command name, instead of a parameter, if an autocompletion can be found for the current word that is in the command box input.
Example:
We have three students with NUSNet IDs E0123456
, E1234567
and E2345678
.
If we type mark nn/
into the command input box and press TAB ,
we can see that the text in the command input box autocompletes to become mark nn/E01234567
.
Pressing TAB again, causes the text to update to mark nn/E1234567
,
followed by mark nn/E2345678
.
If we type a
into the command input box and press TAB, we see that the text in the command input box autocompletes to become addstu
.
The last parameter TAG
is autocompleted.
Autocompletes the last parameter in the input:
Autocomplete works on the last parameter (if any) in the command box, which is the text directly after a recognized prefix.
A parameter can only be autocompleted if it is not the first word, and has a recognized prefix.
Example:
We have some students in TAPro, such that the first tag alphabetically is friends
.
If we type edit 1 n/John Doe t/
into the command input box and press TAB,
we see that the text in the command input box autocompletes to become edit 1 n/John Doe t/friends
.
The last parameter TAG
is autocompleted.
Autocomplete scrolls through all autocompletions:
Autocomplete will scroll through all possible suggestions, based on the existing data in your contact list.
When reaching the end of the all possible suggestions, pressing TAB will wrap the possible options back to the start of that list again.
Example:
We have three students with NUSNet IDs E0123456
, E1234567
and E2345678
.
If we type mark nn/
into the command input box and press TAB,
we can see that the text in the command input box autocompletes to become mark nn/E0123456
.
Every press of TAB, causes the command input box text to update to the next autocompletion:
mark nn/E0123456
to mark nn/E1234567
,mark nn/E2345678
,mark nn/E0123456
.Autocomplete is omitted on week number.
Autocomplete does not work for week number, because WEEK
is at most two digits, so it is much faster just typing out the number.
Sorted autocompletions:
The autocompletions will be listed in ASCIIbetical order, which is when all uppercase letters come before lowercase letter, and digits and most punctuations come before letters.
Example:
If we have only the following tags in our contact list: abc
, 123
BCD
, 234
, bcd
, autocompleting a TAG
will give autocompletions in this order: 123
, 234
BCD
, abc
, bcd
.
Quickly clear an attribute with autocomplete:
We can autocomplete the placeholder value, if it is present for that parameter in our contact list. When a placeholder value is inputted as the parameter, it means that attribute for that student will be reset, after entering the command.
Example:
If the placeholder for the MAJOR
parameter, Major not provided
, is present in the contact list, then in the autocompletion for the MAJOR
parameter, the value Major not provided
is available.
TAPro saves successful commands input, so you can retrieve them later, using the UP and DOWN arrow keys.
Example:
mark nn/E0123456
was the previous successful command.mark nn/E0123456
!Current input is erased:
When retrieving commands, be aware that it will erase the current text in the command input box.
Your current input is the latest:
Pressing DOWN without having ever pressed UP will attempt to retrieve a later command, which is empty text, because you are at your most recent command.
Retrieves only successful input:
Only commands that has succeeded previously will be retrieved. If you enter an invalid command, it will not appear when attempting to retrieve it.
TAPro's data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
TAPro's 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.
Invalid data file format:
If your changes to the data file makes its format invalid, TAPro will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause the TAPro 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.
Action | Format | Examples |
---|---|---|
Add Student | addstu n/NAME nn/NUSNET [p/PHONE] [e/EMAIL] [m/MAJOR] [t/TAG]… | addstu n/James Ho p/22224444 e/jamesho@example.com nn/E1234567 m/Computer Science t/friend t/colleague |
Clear | clear | clear |
Delete Student | delstu nn/NUSNET | delstu nn/E0957499 |
Edit | edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [m/MAJOR] [t/TAG]… | edit 2 n/James Lee e/jameslee@example.com |
Find | find KEYWORD [MORE_KEYWORDS]… | find James Jake |
List | list | list |
Mark | mark nn/NUSNET wk/WEEK | mark nn/E1234567 wk/3 |
Unmark | unmark nn/NUSNET wk/WEEK | unmark nn/E1234567 wk/3 |
Set Course | setcrs COURSE_CODE | setcrs CS2103 |
Exit | exit | exit |
Help | help | help |
1. Using multiple screens
If you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the preferences.json
file created by the application before running the application again.
2. Having more than one instance of TAPro running
If you have more than one instance of TAPro running, the application may not function as expected. TAPro's data will desynchronise. The remedy is to close all instances of TAPro and run only one instance of TAPro.
3. When the data file is in an invalid format
If you edit the data file into an invalid format, upon the next launch of TAPro, no error message would be shown, and all data will be discarded. The remedy is to store a backup of your data file before modifying it, to prevent the loss of data.
Q: How do I transfer my data to another computer?
A: Install the application in the target computer and replace the data
folder with the data
folder in
your current computer! Click Yes
if are prompted to replace the existing data
folder in your target computer.
Q: How can I transfer my TAPro contacts to another computer?
A: Install TAPro in your target computer and paste the empty data
folder it creates
with the data
folder from your otehr computer. Paste it in the same directory as your TAPro JAR file in your
target computer.
Q: How can I launch TAPro if clicking on the JAR file does not work?
A: There are two possible methods to launch TAPro.
Method 1: Using the Command Terminal
java -jar TAPro.jar
and the TAPro Application should launch.Method 2: Using .bat/.sh
Scripts
Create a new text file and paste the following code into the file and edit it according to the comments:
java -jar <abosute_path_to_TAPro.jar>
Replace <absolute_path_to_TAPro.jar>
with the path to TAPro on your system, in quotes.
Examples:
java -jar "C:\Users\YOUR_USERNAME\Downloads\TAPro.jar"
java -jar /home/YOUR_USERNAME/Downloads/TAPro.jar
java -jar "/Users/YOUR_USERNAME/Downloads/TAPro.jar"
Save the file as TAPro.bat
(Windows) or TAPro.sh
(macOS/Linux).
Change the admin settings of the script to allow it to run as a program:
chmod +x <script_file_name>
and press ENTER.chmod +x
changes the permissions of the script on unix systems to allow it to be executed.
Double-click on the script to launch TAPro.
Q: How can I check my Java version?
A: Open a command line and type java -version
. If the command is not recognized, it means you do not have Java installed. You can install Java 11 using the Oracle guide here. Alternatively, you can install the OpenJDK version. For macOS users, you may wish to follow the instructions here.
Q: What are the available commands in TAPro?
A: Please refer to the Command Summary for the list of available commands.
Q: Do I need an internet connection to use TAPro?
A: All of TAPro's functionality can be used offline! No internet connection is required.
Q: How do I save my data?
A: Data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Q: How can I remove a student's attendance for a particular week?
A: In TAPro, you can remove a student's attendance for a particular week using the unmark
command! The syntax
for the unmark
command is as follows:
The syntax for the unmark
command is as follows:
unmark nn/NUSNET wk/WEEK
Q: Long names, phone numbers, emails and majors are truncated in the UI. Why does TAPro not make these text wrap around?
A: By international standards, telephone numbers should not exceed 15 digits. And typical names and email addresses are rarely too long, which falls outside of normal use cases. Lastly, most students will have no more than 2 majors. So under any normal use case, the fields will not contain texts long enough to be truncated. Having a single line of text for each field also ensures the UI remains clean and uncluttered.
Q: Can I add tags to a TAPro contact if I want to remember something additional, like a birthday?
A: Yes you can! In fact, you may use the TAG
parameter of a contact to store any information you want. Simply
use edit
with the INDEX
of the student and the information you wish to add to the contact, and you should be on your way!
Tags are alphanumeric and cannot contain spaces or special characters.
Example: Using tag as a birthday for contacts
edit 1 t/12Dec
edit 2 t/25Jan
edit 3 t/1Mar
Example: Using tag as a industry interest
edit 1 t/EduTech
edit 2 t/Finance
edit 3 t/HealthTech
Adding new tag(s) will replace the existing tag(s).
Q: How can I save more time when using TAPro?
A: You can use the advanced features like autocomplete and command history retrieval in TAPro! These features are designed to help you input commands faster and more efficiently.
Example: Unmarking a wrongly marked student's attendance
mark nn/E0123456 wk/6
un
in front of mark
to change the command to unmark nn/E0123456 wk/6
.Future enhancements include pressing the RIGHT key to move the cursor to the front of your input.