T_Assistant is a desktop app for CS2103 tutors managing their students, groups and tasks 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, T_Assistant can get your tutor management tasks done faster than traditional GUI apps.
For easy navigation, you can use the navigation breadcrumb on the right side of the website.
If you are on the PDF, use the table of contents below to navigate the site.
Ensure you have Java 17
or above installed in 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 T_Assistant.
Open a command terminal, cd
into the folder you put the jar file in, and use the java -jar t_assistant.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. e.g. typing help
and pressing Enter will
open the help window.
Some example commands you can try:
list_s
: Lists all students.
as sno/A0123456A sn/James Ho e/e0123456A@u.nus.edu t/TD9
: Adds a student named James Ho
to T_Assistant.
undo
: Undo the last command ran.
clear
: Deletes all data.
exit
: Exits the app.
Refer to the Features below for details of each command.
Notes about the command format:
Command words are case-insensitive!
add_s ...
and ADD_S ...
will both be recognised as commands to add a new student.
Command words come with shorthands
e.g. add_s...
and as...
will both be recognised as commands to add a new student.
Prefixes are case-insensitive!
e.g. i/INDEX
and I/INDEX
will be recognised.
Words in UPPER_CASE
are the parameters to be supplied by the user.
e.g. in as sn/STUDENT_NAME
, STUDENT_NAME
is a parameter which can be used as as sn/John Doe
.
Items in square brackets are optional.
e.g sn/STUDENT_NAME [t/TAG]
can be used as sn/John Doe t/TD9
or as sn/John Doe
.
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/TD9
, t/GoodatUI t/TeamLead
etc.
Parameters can be in any order.
e.g. if the command specifies sno/STUDENT_NUMBER sn/STUDENT_NAME
, sn/STUDENT_NAME sno/STUDENT_NUMBER
is also
acceptable.
The following commands (i.e. help
, exit
and clear
) will ignore extraneous parameters.
e.g. if the command specifies help 123
, it will be interpreted as help
.
The following commands (i.e. list_s
, list_g
and sort
commands) will throw an error for extraneous parameters.
Using extraneous parameters/repeated parameters, unlike stated, in other commands might result in an error!
Caution:
gn/
will be detected as a prefix if entered like this (space)gn/
.gn\
.Important
When running commands that use i/INDEX
, the index used references the unfiltered lists so always run the relevant list
commands first!
e.g. add_t tn/Merry Christmas td/2024-12-24 0000
will return a filtered view of the task.
However, if you wish to edit the new task, you must run list_t
first to edit it globally or list_t gn/GROUP_NAME
if you wish to edit it for a group.
list_s
, ls
Shows a list of all students in the T_Assistant.
Format: list_s
This screenshot shows the result of executing list_s
.
add_s
, as
Adds a student to T_Assistant.
Format: add_s sno/STUDENT_NUMBER sn/STUDENT_NAME e/EMAIL [t/TAG]...
Student Number
and Email
are the unique identifiers for each student, so no two students can have the same student number or email.Student Number
provided by the user will be capitalised by the system.Tags
are case-insensitive, so T1
and t1
will be recognised as the same tags. T_Assistant will add the first
instance of the repeated tag.James Ho
to T_Assistantadd_s sno/A0123456A sn/James Ho e/e0123456A@u.nus.edu t/TD9
This screenshot shows the result of executing add_s sno/A0123456A sn/James Ho e/e0123456A@u.nus.edu t/TD9
.
del_s
, ds
Deletes a student from T_Assistant.
Format: del_s sno/STUDENT_NUMBER
Student Number
must exist in T_Assistant.James Ho
from T_Assistantdel_s sno/A0123456A
This screenshot shows the result of executing del_s sno/A0123456A
.
edit_s
, es
Edits the details of a student.
Format: edit_s i/INDEX [sn/NAME] [e/EMAIL] [t/TAG]...
edit_s
edits the student identified by the index. It only accepts a valid index based on the list returned when list_s
is called.Student Number
is the unique identifier for each student, Student Number
can't be edited.Email
can be edited, but it must not exist in T_Assistant.t/
without specifying any tags after it.Bernice Yu
's Nameedit_s i/2 sn/Bernice Yu Ting Kang
This screenshot shows the result of executing edit_s i/2 sn/Bernice Yu Ting Kang
.
add_s_g
, asg
Adds student(s) to a group.
Format: add_s_g sno/STUDENT_NUMBER [sno/STUDENT_NUMBER]... gn/GROUP_NAME
Group Name
and student(s) with the Student Number
(s) must both exist in T_Assistant.Group
is 5 Students
.Roy Balakrishnan
to CS2103-F11-1
add_s_g sno/A0122764H gn/CS2103-F11-1
This screenshot shows the result of executing add_s_g sno/A0122764H gn/CS2103-F11-1
.
del_s_g
, dsg
Deletes a student from its assigned group.
Format: del_s_g sno/STUDENT_NUMBER
Alex Yeoh
from CS2103-F12-1
del_s_g sno/A0737935G
This screenshot shows the result of executing del_s_g sno/A0737935G
.
find_s
, fs
Searches T_Assistant for students with fields that match the search query.
Format: find_s q/QUERY [q/QUERY]...
Alex Y
to find Alex Yeoh
.fs q/
will return all students.
!nogroup
is a special query that searches for students with no groups, it is also case-insensitive.
Take note that if any other student with a group happens to have a field that matches the special keyword, they will also appear in the results.
TD7
and Oliveiro
find_s q/TD7 q/Olveiro
This screenshot shows the result of executing find_s q/TD7 q/Olveiro
.
find_s q/!nogroup
This screenshot shows the result of executing find_s q/!nogroup
.
sort_s
, ss
Sorts the list of students in ASCII order.
Format: sort_s
Caution:
The student list is sorted in ASCII order, not in alphabetical order as the message will say after successfully executing sort_s
.
This screenshot shows the result of executing sort_s
.
list_g
, lg
Shows a list of all groups in the T_Assistant.
Format: list_g
This screenshot shows the result of executing list_g
.
add_g
, ag
Adds a group to the T_Assistant。
Format: add_g/ag gn/GROUP_NAME [gn/GROUP_NAME]...
Group Name
is the unique identifier for each group, so no two groups can have the same group name.Group Name
will be truncated, e.g. CS2103-F00012-002
will be read as CS2103-F12-2
.CS2103T-T10-1
add_g gn/CS2103T-T10-1
This screenshot shows the result of executing add_g gn/CS2103T-T10-1
.
del_g
, dg
Deletes the specified group from T_Assistant.
Format: del_g gn/GROUP_NAME
del_g gn/CS2103-F12-2
anddel_g gn/cs2103-f12-2
will delete the same group.
CS2103-F12-2
del_g gn/CS2103-F12-2
This screenshot shows the result of executing del_g gn/CS2103-F12-2
.
edit_g
, eg
Edits the specified group in T_Assistant.
Format: edit_g i/INDEX gn/GROUP_NAME
edit_g
edits the group identified by the index. It only accepts a valid index
based on the list returned when list_g
is called.CS2103-F11-3
to CS2103T-F11-3
list_g
to see the list of groups.edit_g i/3 gn/CS2103T-F11-3
This screenshot shows the result of executing edit_g i/3 gn/CS2103T-F11-3
.
find_g
, fg
Searches T_Assistant for groups with fields that match the search query.
Format: find_g q/QUERY [q/QUERY]...
F12
to find CS2103T-F12-10
.fg q/
will return all groups.F11
find_g q/F11
This screenshot shows the result of executing find_g q/F11
.
sort_g
, sg
Sorts the list of groups in ASCII order.
Format: sort_g
Caution:
The group list is sorted in ASCII order, not in alphabetical order as the message will say after successfully executing sort_g
.
This screenshot shows the result of executing sort_g
.
list_t
, lt
Shows a list of all tasks in the T_Assistant.
Format: list_t [gn/GROUP_NAME]
gn/Group Name
supplied, all the tasks in that group will be listed instead.list_t
This screenshot shows the result of executing list_t
.
CS2103-F11-1
list_t gn/CS2103-F11-1
This screenshot shows the result of executing list_t gn/CS2103-F11-1
.
add_t_g
, atg
Adds a task to a group or multiple groups.
Format: add_t_g tn/TASK_NAME td/TASK_DEADLINE (YYYY-MM-DD HHmm) gn/GROUP_NAME [gn/GROUP_NAME]...
cs2103-f11-1
will yield the same result as CS2103-F11-1
.Complete task 4
and deadline of 2024-11-15 1700
to groups CS2103-F12-1
and CS2103-F11-1
This is the default scenario where the task does not already exist and both groups exist.
add_t_g tn/Complete task 4 td/2024-11-15 1700 gn/CS2103-F12-1 gn/CS2103-F11-1
.This screenshot shows the result of executing add_t_g tn/Complete task 4 td/2024-11-15 1700 gn/CS2103-F12-1 gn/CS2103-F11-1
.
add_t
, at
Adds a task to all groups.
Format: add_t tn/TASK_NAME td/TASK_DEADLINE (YYYY-MM-DD HHmm)
add_t tn/Complete task 6 td/2024-10-20 1800
add_t tn/Complete task 6 td/2024-10-20 1800
.This screenshot shows the result of executing add_t tn/Complete task 6 td/2024-10-20 1800
.
add_et_g
, aetg
Adds an existing task to the groups specified.
Format: add_et_g i/INDEX gn/GROUP_NAME [gn/GROUP_NAME]...
gn/CS2103-F12-2
andgn/cs2103-f12-2
will be recognised as the same group.
add_et_g
adds an existing task identified by the index. It only accepts a valid index
based on the list returned when list_t
is called.1
to CS2103T-T10-1
list_t
to see the list of tasks.list_g
to check on the names of groups you wish to add the task to.add_et_g i/1 gn/CS2103T-T10-1
This screenshot shows the result of executing add_et_g i/1 gn/CS2103T-T10-1
.
del_t_g
, dtg
Deletes a task from a group.
Format: del_t_g i/INDEX gn/GROUP_NAME
del_t_g
deletes a task identified by the index. It only accepts a valid index
based on the list returned when list_t gn/GROUP_NAME
is called, where gn/GROUP_NAME
is the group of interest.
gn/CS2103-F12-2
andgn/cs2103-f12-2
will be recognised as the same group.
1
from CS2103-F11-1
list_t gn/CS2103-F11-1
to see the list of tasks in CS2103-F11-1
.del_t_g i/1 gn/CS2103-F11-1
This screenshot shows the result of executing del_t_g i/1 gn/CS2103-F11-1
.
del_t
, dt
Delete a task from all groups that contain it.
Format: del_t i/INDEX
del_t
deletes a task identified by the index. It only accepts a valid index
based on the list returned when list_t
is called.2
list_t
to see the list of tasks.del_t i/2
This screenshot shows the result of executing del_t i/2
.
edit_t_g
, etg
Edits a task from a group.
Format: edit_t_g i/INDEX gn/GROUP_NAME [tn/TASK_NAME] [td/TASK_DEADLINE (YYYY-MM-DD HHmm)]
edit_t_g
edits a task identified by the index. It only accepts a valid index
based on the list returned when list_t gn/GROUP_NAME
is called, where gn/GROUP_NAME
is the group of interest.Group Name
must exist in the T_Assistant.
gn/CS2103-F12-2
andgn/cs2103-f12-2
will be recognised as the same group.
1
in CS2103-F12-1
list_t gn/CS2103-F12-1
to see the list of tasks in CS2103-F12-1
.edit_t_g i/1 gn/CS2103-F12-1 tn/Complete task 7
This screenshot shows the result of executing edit_t_g i/1 gn/CS2103-F12-1 tn/Complete task 7
.
edit_t
, et
Edits a task from all groups that contain it.
Format: edit_t i/INDEX [tn/TASK_NAME] [td/TASK_DEADLINE (YYYY-MM-DD HHmm)]
edit_t
edits a task identified by the index. It only accepts a valid index
based on the list returned when list_t
.2
list_t
to see the task list.edit_t i/2 tn/Complete task 8
This screenshot shows the result of executing edit_t i/2 tn/Complete task 8
.
mark_t
, mt
Marks a task as done or undone.
Format: mark_t gn/GROUP_NAME i/INDEX
mark_t
marks a task identified by the index. It only accepts a valid index
based on the list returned when list_t gn/GROUP_NAME
is called, where gn/GROUP_NAME
is the group of interest.Type and execute: mark_t gn/CS2103-F12-1 i/2
Executing mark_t
will mark the task as done.
This screenshot shows the result of executing mark_t gn/CS2103-F12-1 i/2
.
Type and execute: mark_t gn/CS2103-F12-1 i/2
Executing mark_t
will mark the task as undone.
This screenshot shows the result of executing mark_t gn/CS2103-F12-1 i/2
.
find_t
, ft
Searches T_Assistant for tasks with fields that match the search query.
Format: find_t q/QUERY [q/QUERY]...
tp
to find tP v1.6 Release
.ft q/
will return all tasks.4
This screenshot shows the result of executing find_t q/4
.
sort_t
, st
Sorts the task list by deadline from the earliest to the latest date.
Format: sort_t
This screenshot shows the result of executing sort_t
.
undo
Undoes the previous command ran.
Format: undo
redo
Redoes the previously undone command.
Format: redo
help
Shows a message explaining how to access the help page.
Format: help
clear
Clears all entries from the assistant.
Format: clear
exit
Exits the program.
Format: exit
T_Assistant data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
T_Assistant 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.
Caution:
If your changes to the data file makes its format invalid, T_Assistant 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 T_Assistant 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.
Changes done directly to the data file will NOT be registered by the application, i.e. undo
/redo
will not register these changes.
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 T_Assistant home folder and also copy over versionHistory.json
if you wish to keep it.
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.et
, if a group has completed the task, their status will be reset to pending or overdue. The remedy is to run etg
such that you create a new task for the groups with completed status before editing the task.Key Terms | Definition |
---|---|
Mainstream OS | Operating Systems (i.e. Windows, Linux, MacOS |
JAR | Executable file containing Java classes and other resources. |
Prefix | Keyword used in commands to specify the parameter type |
Student Number | Unique identifier for a student |
This section will inform you about what parameters are used in T_Assistant and their restrictions 😃
Parameter | Constraints | Correct | Incorrect |
---|---|---|---|
sno/ Student Number | Start with A0 Followed by 6 numerical digits End with any letter | A0123456B | A1234567 A1234567A |
sn/ Student Name | Only contain alphanumeric characters, a variety of latin characters and spaces, and it should not be blank | John Doe | J0hn Doe$$ |
e/ | Format: local-part@domain-part local-part should contain only alphanumeric characters and the following special characters _ , . local-part cannot start and end with special charactersdomain-part must end with u.nus.edu | johndoe@u.nus.edu ,john_doe@u.nus.edu | $johndoe@u.nus.edu johndoe@gmail.com |
t/ Tag | Only contain alphanumeric characters | TD8 | TD 8 Great at UI |
gn/ Group Name | Format: [Module]-[Tutorial Group]-[Group Number] Module can be either CS2103 or CS2103T Tutorial Group should be one letter followed by a positive integerGroup Number should be a positive integerInteger are supported up to 2147483647 | CS2103-F12-2 CS2103T-W1-5 | CS2103A-1-A1 CS2040S-A1-1 |
tn/ Task Name | Cannot be blank | Release tP v1.6 | |
td/ Task Deadline | Must be in the following format: YYYY-MM-DD HHmm Relative to Singapore's timezone | 2024-11-09 1800 | today 2024-1-9 1900 2024-01-09 800 |
q/ Query | No limitations | iP tP v1.5 | |
i/ Index | Must be positive integer | 1 10 | -1 test |
Action | Format, Examples |
---|---|
List Students | list_s/ls |
Add Student | add_s/as sno/STUDENT_NUMBER sn/STUDENT_NAME e/EMAIL [t/TAG]... e.g., as sno/A0123456A sn/James Ho e/e0123456A@u.nus.edu t/TD9 |
Delete Student | del_s/ds sno/STUDENT_NUMBER e.g., ds sno/A0123456A |
Edit Student | edit_s/es i/INDEX [sn/STUDENT_NAME] [e/EMAIL] [t/TAG]... e.g., es i/1 sno/A0123456A sn/James Ho Ting Kang |
Add Student to Group | add_s_g/asg sno/STUDENT_NUMBER gn/GROUP_NAME e.g., asg sno/A0123456A gn/CS2103-F12-2 |
Delete Student From Group | del_s_g/dsg sno/STUDENT_NUMBER e.g., dsg sno/A0123456A |
Find Student | find_s/fs q/QUERY [q/QUERY]... e.g., fs q/James |
Sort Students | sort_s/ss |
Action | Format, Examples |
---|---|
List Groups | list_g/lg |
Add Group | add_g/ag gn/GROUP_NAME [gn/GROUP_NAME]... e.g., ag gn/CS2103-F12-2 gn/CS2103-F12-1 |
Delete Group | del_g/dg gn/GROUP_NAME e.g., dg gn/CS2103-F12-2 |
Edit Group | edit_g/eg i/INDEX gn/GROUP_NAME e.g., eg i/1 gn/CS2103-F12-3 |
Find Group | find_g/fg q/QUERY [q/QUERY]... e.g., fg q/CS2103-F12-2 |
Sort Groups | sort_g/sg |
Action | Format, Examples |
---|---|
List Task | list_t/lt [gn/GROUP_NAME] e.g., lt , lt gn/CS2103-F12-2 |
Add Task to Group | add_t_g/atg tn/TASK_NAME td/TASK_DEADLINE (YYYY-MM-DD HHmm) gn/GROUP_NAME [gn/GROUP_NAME]... e.g., atg tn/v1.5 Release td/2024-11-07 2359 gn/CS2103-F12-2 |
Add Task to All Groups | add_t/at tn/TASK_NAME td/TASK_DEADLINE (YYYY-MM-DD HHmm) e.g., at tn/Submit Postmortem td/2024-10-20 1800 |
Add Existing Task to Group | add_et_g/aetg i/INDEX gn/GROUP_NAME [gn/GROUP_NAME]... e.g., aetg i/1 gn/CS2103-F12-3 |
Delete Task from All Groups | del_t/dt i/INDEX e.g., dt i/1 |
Delete Task from Group | del_t_g/dtg i/INDEX gn/GROUP_NAME e.g., dtg i/1 gn/CS2103-F12-2 |
Edit Task for Group | edit_t_g/etg i/INDEX gn/GROUP_NAME [tn/TASK_NAME] [td/TASK_DEADLINE (YYYY-MM-DD HHmm)] e.g., etg i/1 gn/CS2103-F12-3 tn/v1.4 Release |
Edit Task for All Groups | edit_t/et i/INDEX [tn/TASK_NAME] [td/TASK_DEADLINE (YYYY-MM-DD HHmm)] e.g., et i/1 td/2024-11-20 1200 |
Mark Task | mark_t/mt gn/GROUP_NAME i/INDEX e.g., mt gn/CS2103-F12-2 i/2 |
Find Task | find_t/ft q/QUERY [q/QUERY]... e.g., ft q/v1.3 Release |
Sort Tasks | sort_t/st |
Action | Format, Examples |
---|---|
Help | help |
Clear | clear |
Undo | undo |
Redo | redo |
Exit | exit |