By: AY1920S1-CS2103-T14-2 Since: Aug 2019 Licence: MIT

1. Introduction

T.A.rence is a desktop app for university Teaching Assistants (TAs) to manage their classes and students. T.A.rence is optimized for users who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, T.A.rence can get your teaching management tasks done faster than traditional GUI apps.

2. Quick Start

  1. Ensure you have Java 11 or above installed in your Computer.

  2. Download the latest .jar here.

  3. Copy the file to the folder you want to use as the home folder for T.A.rence.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
  5. 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.

  6. Some example commands you can try:

    • list : lists all students from a given tutorial.

    • addStudent` n/John Do e/johnd@example.com m/CS2100 tn/Tutorial-01` : adds a student named John Doe into the Tutorial-01 class inside module CS2100.

    • deleteStudent3 : deletes the student in index 3

    • exit : exits the app

  7. Refer to Section 3, “Features” for details of each command.

3. Features

Command Format

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

  • Parameters can be in any order e.g. if the command specifies n/NAME e/EMAIL, e/EMAIL n/NAME is also acceptable.

  • Inputs for parameters (apart from student names) are case-insensitive; e.g. addModule m/Cs1010s saves the module as "CS1010S" and m/cs1010s will subsequently refer to the same module.

  • Command names are also case-insensitive; e.g. addTutorial and addtutorial are equivalent.

  • Longer commands can be truncated; e.g. delstu can be entered instead of deleteStudent.

3.2. Adding a Module: addModule

Adds a module to T.A.rence.
Format: addModule m/MODULE_CODE.

Examples:

  • addModule m/CS1010

  • addModule m/ST2132

Command synonyms: addMod, addmod, addmodule

3.3. Adding a Tutorial Slot : addTutorial

Adds a tutorial slot into the specified module.
Pre-condition: Module must already exist inside application.
Explanation: Adds a tutorial called Tutorial-01 which starts at 1PM, lasts for 60 minutes, and occurs every Monday during weeks 1,2, and 3 into module CS1010.

Format: addTutorial tn/[TUTORIAL_NAME] st/[START_TIME] dur/[TUTORIAL_DURATION] d/[TUTORIAL_DAY] w/[TUTORIAL_WEEKS] m/[MODULE_CODE]

Example:

  • addTutorial tn/Tutorial-01 st/1300 dur/60 d/Mon w/1,2,3 m/CS1010S

START_TIME is in the format hhmm.
TUTORIAL_DURATION is in minutes

Other input options for weeks field:

  • w/even - weeks 4, 6, 8, 10, 12

  • w/odd - weeks 3, 5, 7, 9, 11, 13

  • w/x-y - weeks x to y inclusive, where x and y are integers from 1 to 13 inclusive

Omit w/ field for the default tutorial weeks (3-13 inclusive).

Command synonyms: addtut, addtutorial

3.4. Adding a Student : addStudent

Adds a student into a specified tutorial.

Pre-condition: Module and tutorial slot must already exist inside the application.
Each student is uniquely identified by a combination of their name, email, nusid and matric number.

Format: addStudent n/[NAME] e/[EMAIL] tn/[TUTORIAL_NAME] m/[MODULE_CODE].

Example:

  • addStudent n/Bob e/bob@gmail.com m/CS1010S tn/Tutorial-01

Explanation: Adds a student named Bob into Tutorial-01 under module CS1010.

Optionally, the student’s matriculation number and/or NUSNET ID can also be specified and saved:

addStudent n/Bob e/bob@gmail.com m/CS1010S tn/Tutorial-01 A0123456X E9876543

No prefixes are needed for these additional fields.

Alternatively, you can use tutorial index to specify which tutorial to add the student into.
The format will be: addStudent n/[NAME] e/[EMAIL] i/[TUTORIAL_INDEX]

  • E.g addStudent n/John Doe e/johnd@example.com i/1

Command synonyms: addstu, addstud, addstudent

3.5. Deleting a Module : deleteModule

Deletes an existing module from T.A.rence, based on it’s module list index.
Format: deleteModule INDEX.

  • Deletes the module at the specified INDEX (Based off the module list).

  • The index refers to the index number shown in the displayed module list.

  • The index must be a positive integer 1, 2, 3, …​

  • This will also remove the students and tutorials inside the module.

Examples:

  • deleteModule 1

Alternatively, you can use the module code to specify the module to be deleted. The format will be: deleteModule m/[MOD_CODE]

  • E.g deleteModule m/GER1000

Command synonyms: deletemod, delmodule, delmod, `deletemodule

3.6. Deleting a Tutorial : deleteTutorial

Deletes an existing tutorial from T.A.rence, based on it’s tutorial list index.
Format: deleteTutorial INDEX

  • Deletes the tutorial at the specified INDEX (Based off the tutorial list).

  • The index refers to the index number shown in the displayed tutorial list.

  • The index must be a positive integer 1, 2, 3, …​

  • This will also remove the tutorial from the existing module and students who are in the tutorial.

Examples:

  • deleteTutorial 1

Alternatively, You can use the module code and tutorial name to specify the tutorial to be deleted.
If the tutorial name is unique, you can simply specify the tutorial name.

  • The format will be: deleteTutorial tn/[TUTORIAL_NAME]

  • E.g deleteTutorial tn/tut1

If there are multiple tutorials with the same name, you will need to specify the module code.
The format will then be deleteTutorial tn/[TUTORIAL_NAME] m/[MOD_CODE]

  • E.g deleteTutorial tn/Lab 1 m/PC1431

Command synonyms: deletetut, deleteclass, deltutorial, deltut, delclass, deletetutorial

3.7. Deleting a Student : deleteStudent

Deletes an existing student from T.A.rence, based on their student list index.
Format: deleteStudent INDEX

  • Deletes the student at the specified INDEX (Based off the student list).

  • The index refers to the index number shown in the displayed student list.

  • The index must be a positive integer 1, 2, 3, …​

  • This will also remove the student from the existing tutorial/module.

Examples:

  • list 2
    deleteStudent 2
    Deletes the 2nd student in the 2nd tutorial.

  • find Betsy
    deleteStudent 1
    Deletes the 1st person in the results of the find command.

Command synonyms: deletestu, deletestud, delstudent, delstu, delstud, deletestudent

3.8. Editing a Student : edit

Allows user to edit an existing student information. Everything except the module and tutorial of the student can be edited.

Format: edit [INDEX OF STUDENT] n/[EDITED_STUDENT_NAME]

Example:

  • edit 1 n/Ben Leong

3.9. Undo Previously-entered Commands : undo

Undos a specified number of actions.

Format: undo u/[NUMBER_OF_ACTIONS]

Undoes any state-altering command from the application.

Format: undo u/NUMBER_OF_STATES_TO_UNDO

Example:

undo u/2

  • Resets the application state to the previous state.

  • Undo can only be applied to states that are present in that particular session (from application start-up)

  • The NUMBER_OF_STATES_TO_UNDO refers to the previous number of states to undo in that session

  • The NUMBER_OF_STATES_TO_UNDO must be a positive integer; 1, 2, 3, …​

3.10. Clearing all entries : clear

Clears all entries from the T.A.rence.

Format: clear

Example:

clear

  • Resets the application state to a clean state.

3.11. Searching Student by Name: find

Searches and displays student particulars based on name. The search can be based on partial strings that match and need not be the full name of the student.
Format: find [SEARCH_TERM]

  • The search is case insensitive. e.g hans will match Hans

  • The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans

  • Only the name is searched.

  • Only full words will be matched e.g. Han will not match Hans

  • Student matching at least one keyword will be returned (i.e. OR search). e.g. Hans Bo will return Hans Gruber, Bo Yang

Examples:

  • find John
    Returns john and John Doe

  • find Betsy Tim John
    Returns any person having names Betsy, Tim, or John

3.12. Display Tutorial Class' Test Results : displayAssignmentScore

Allows user to display overall results for an exam or assignment. This can be in the form of a graph or table,

Ui
AssignmentTable

Format: displayAssignmentScore i/TUTORIAL_INDEX n/ASSIGNMENT_NAME f/DISPLAY_FORMAT`.

Example:

  • displayAssignmentScore i/1 n/Lab01 f/graph

  • displayAssignmentScore i/1 n/Lab01 f/table

Command synonyms: displayscore, displayassignment, displayassignment

  • When a new student is added/deleted/modified, the assignment will need to be refreshed.

  • i.e you will need to enter the command again to display the updated scores.

  • When displaying the graph format, a short lag may follow.

3.13. Display tutorial class assignments : displayAssignments

Allows user to list out existing assignments in a tutorial.

ListAssignment

Format: displayAssignments `TUTORIAL_INDEX.

Example:

  • displayAssignments 1

Command synonyms: listassignments, lista

3.14. Display Tutorial Class' Attendance : displayAttendance

Allows user to display overall attendance for a class.

AttendanceDisplay

Full Format: displayAttendance m/MOD_CODE tn/TUTORIAL_NAME

Shortcut Format: displayAttendance i/TUTORIAL_INDEX

Example:

  • displayAttendance m/CS1010 tn/Lab Session

  • displayAttendance i/1

Command Synonyms: displayatt, showattendance, showatt

  • When a new student is added/deleted/modified, the attendance will need to be refreshed.

  • i.e you will need to enter the command again to display the updated attendance.

3.15. Listing Students from a Tutorial : list

Lists all students from a particular tutorial slot. If no index is given, all students will be listed.

Format: list TUTORIAL_INDEX

Example:

  • list 1

  • list

Command synonyms: liststu, liststud, liststudents

3.16. Changing the UI tab : cd

Toggles the tab switching between tutorial(t), module(m) and student(s) list.

Format: cd TAB_TO_SWITCH

Command synonyms: changetab

Example:

  • cd t

  • cd m

  • cd s

3.17. Import tutorials via NUSMods url: import

Imports tutorials via NUSMods url. Does not require an internet connection.

Format: import [URL]

Example:

Command synonyms: importtutorials, importmods, importtutorial

3.18. Marks attendance of a tutorial markAttendance

Marks/Toggles attendance of a tutorial or a student.

Format:

  • markAttendance i/[TUTORIAL_INDEX] w/[WEEK]

  • markAttendance tn/[TUTORIAL_NAME] m/[MODULE_NAME] w/[WEEK] n/[STUDENT NAME]

  • WEEK is a positive integer between 1 to 13

Example:

  • markAttendance i/1 w/5

  • markAttendance n/John Doe tn/Lab 1 m/CS1010 w/5

Example of marking attendance of student: Inputting "markAttendance n/Mark tn/Lab Session m/CS1010S w/7" will toggle the attendance of Mark in tutorial of name "Lab Session" and the attendance table of the tutorial will be displayed accordingly.

MarkAttendance1
MarkAttendance2

Example of marking attendance of tutorial: When "markAttendance tn/Lab Session m/CS1010S w/7" is inputted, the application will prompt the user to mark/toggle the attendance of the first student in the tutorial.

MarkAttendance3

The user may input "y" or "n", after which the command will be executed/cancelled respectively and the application will prompt the user to mark the attendance of the next student.

MarkAttendance4

You can use either tutorial index or tutorial name with module code to specify the tutorial.
Specifying the student name marks/toggles the attendance of a student, otherwise the entire tutorial will have their attendance marked.

Command Synonyms: mark, marka, markatt

3.19. Exports attendance of a tutorial to csv exportAttendance

Exports attendance of a tutorial.

Format:

  • exportAttendance i/[TUTORIAL_INDEX] f/[FILENAME](Optional)

  • TUTORIAL_INDEX is a non-negative integer (>= 0)

Example:

  • exportAttendance tn/Lab 1 m/CS1010 f/exportedAttendance

You can use either tutorial index or tutorial name with module code to specify the tutorial.
The filename field is optional and the tutorial name will be specified as the filename by default.

  • E.g exportAttendance i/1 f/exportedAttendance

Command Synonyms: export, exporta, exportatt, exportattendance

3.20. Adding an Assignment : addAssignment

Adds an assignment to a Tutorial.

Format:

  • addAssignment i/[TUTORIAL_INDEX] n/[ASSIGNMENT_NAME] score/[MAX_SCORE] sd/START_DATE ed/END_DATE

Command Synonyms: adda, addasm, addassn, addassignment

Example:

  • addAssignment i/TUTORIAL INDEX n/ASSIGNMENT NAME score/MAX SCORE sd/START DATE ed/END DATE

  • TUTORIAL_INDEX is a non-negative integer (>= 0)

  • MAX_SCORE is a non-negative integer

  • START_DATE and END_DATE follows the format of dd-mm-yy hhmm e.g 31-10-2019 2359

You can use either tutorial index or tutorial name with module code to specify the tutorial.
This will be in the format:

  • addAssignment tn/[TUTORIAL_NAME] m/[MODULE_CODE] n/[ASSIGNMENT_NAME] score/[MAX_SCORE] sd/[START_DATE] ed/[END_DATE]

  • E.g addAssignment tn/Lab 1 m/CS1010 n/Lab01 score/10 sd/09-11-2001 0000 ed/31-10-2019 2359

Command Synonyms: export, exporta, exportatt, exportattendance

3.21. Deleting an Assignment : deleteAssignment

Deletes an Assignment from a Tutorial.

Format:

  • deleteAssignment i/[TUTORIAL_INDEX] n/[ASSIGNMENT_NAME] score/[MAX_SCORE] sd/START_DATE ed/END_DATE

Example:

  • deleteAssignment tn/Lab 1 m/CS1010 n/Lab01 score/10 sd/09-11-2001 0000 ed/31-10-2019 2359

  • TUTORIAL_INDEX is a non-negative integer (>= 0)

  • MAX_SCORE is a non-negative integer

  • START_DATE and END_DATE follows the format of dd-mm-yy hhmm e.g 31-10-2019 2359

You can use either tutorial index or tutorial name with module code to specify the tutorial.
You can also use i/[ASSIGNMENT INDEX] to specify the assignment, instead of inputting assignment details.
This will be in the format:

  • deleteAssignment i/[TUTORIAL_INDEX] i/[ASSIGNMENT_INDEX]

  • deleteAssignment i/1 i/1

Command Synonyms: dela, delassn, delasm, deleteassignment

3.22. Set an Assignment score for a Student : setAssignmentScore

Sets an Assignment score for a Student.

Format:

  • setAssignmentScore i/[TUTORIAL_INDEX] i/[ASSIGNMENT_INDEX] i/[STUDENT_INDEX] score/[score]

Example:

  • setAssignmentScore i/1 i/1 i/1 score/10

You can use either tutorial index or tutorial name with module code to specify the tutorial.
Tutorial, Assignment, Student indexes are specified in a fixed order.
This will be in the format:

  • setAssignmentScore tn/[TUTORIAL_NAME] m/[MOD_CODE] i/[ASSIGNMENT_INDEX] i/[STUDENT_INDEX] score/[SCORE]

  • E.g setAssignmentScore tn/Lab 1 m/CS1010 i/1 i/1 score/10

Command synonyms: sets, setscore, setsc, setassignmentscore

3.23. Adding an Event : addEvent

Adds an Event to a Tutorial.

Format:

  • addEvent i/[TUTORIAL_INDEX] n/[EVENT_NAME] sd/[START_DATE] ed/[END_DATE]

Example:

  • addEvent i/1 n/Lab01 sd/09-11-2001 0000 ed/31-10-2019 2359

  • TUTORIAL_INDEX is a non-negative integer (>= 0)

  • START_DATE and END_DATE follows the format of dd-mm-yy hhmm e.g 31-10-2019 2359

You can specify the full tutorial name and module code instead of the index

  • This will be in the format:

  • tn/[TUTORIAL_NAME] m/[MODULE_CODE] n/[EVENT_NAME] sd/[START_TIME] ed/[END_TIME]

  • addEvent tn/Lab 1 m/CS1010 n/Lab01 sd/09-11-2001 0000 ed/31-10-2019 2359

Command synonyms: adde, addev, addevnt

3.24. Deleting an Event : deleteEvent

Adds an Event to a Tutorial.

Format:

  • addEvent i/[TUTORIAL_INDEX] n/[EVENT_NAME] sd/[START_DATE] ed/[END_DATE]

Example:

  • deleteEvent i/1 n/Lab01 sd/09-11-2001 0000 ed/31-10-2019 2359

  • TUTORIAL_INDEX is a non-negative integer (>= 0)

  • START_DATE and END_DATE follows the format of dd-mm-yy hhmm e.g 31-10-2019 2359

You can use also use tutorial name with module code to specify the Tutorial.
* This will be the format:

  • deleteEvent tn/[TUTORIAL_NAME] m/[MODULE_CODE] n/[EVENT_NAME] sd/[START_TIME] ed/[END_TIME]

  • Eg. deleteEvent tn/Lab 1 m/CS1010 n/Lab01 sd/09-11-2001 0000 ed/31-10-2019 2359

You can also use i/[EVENT INDEX] to specify the Event, instead of inputting Event details.
This will be the format:

  • deleteEvent i/[TUTORIAL_INDEX] t/[EVENT_INDEX]

Command synonyms: delevnt, dele, delev

3.25. Editing an Event : editEvent

Edits an Event in a Tutorial.

Format:

  • editEvent i/[EVENT_INDEX] i/[TUTORIAL_INDEX] n/[EVENT_NAME] sd/[START_DATE] ed/[END_DATE]

Example:

  • editEvent i/1 i/1 n/Lab01 sd/09-11-2001 0000 ed/31-10-2019 2359

  • TUTORIAL_INDEX is a non-negative integer (>= 0)

  • START_DATE and END_DATE follows the format of dd-mm-yy hhmm e.g 31-10-2019 2359

You can also use the tutorial name with module code to specify the Tutorial.
This will be the format:

  • i/TARGET [EVENT_INDEX] tn/[TUTORIAL_NAME] m/[MODULE_CODE] n/[EVENT_NAME] (OPTIONAL) sd/[START_TIME] (OPTIONAL) ed/[END_TIME] (OPTIONAL)

  • E.g editEvent i/1 tn/Lab 1 m/CS1010 n/Lab01 sd/09-11-2001 0000 ed/31-10-2019 2359

Event detail fields (EVENT_NAME, START_DATE, END_DATE) are optional.

Command synonyms: edev, editev, edite

3.26. List Events in a Tutorial : listEvents

Lists Events in a Tutorial.

Format:

  • listEvents i/[TUTORIAL_INDEX]

  • TUTORIAL_INDEX is a non-negative integer (>= 0)

Example:

  • listEvents i/1

You can use either tutorial index or tutorial name with module code to specify the Tutorial.
This will be in the format:

  • listEvents tn/[TUTORIAL_NAME] m/[MODULE_CODE]

  • Eg: listEvents tn/Lab 1 m/CS1010

Command synonyms: liste, listev, listevnt

3.27. Set start of semester : setSemStart

Sets the start date of the semester. Determines dates of tutorial Events.

Format: * setSemStart sd/[START_DATE] * START_DATE follows the format of dd-mm-yy e.g 31-10-2019

Example:

  • setSemStart sd/31-12-2001

Command synonyms: setsemstart, setst, setsem

3.28. Mark Participation for a Student : classPart [coming in v2.0]

Gives participation marks to a student of a particular tutorial slot

Format: `classPart c/[TUTORIAL_NAME] n/[STUDENT_NAME]

3.29. Store a Student’s Results : addMarks [coming in v2.0]

Allows user to add test results of a student of a particular tutorial slot

Format: `addMarks c/[TUTORIAL_NAME] n/[STUDENT_NAME] marks/[MARK_OBTAINED]

3.30. Add Personal Notes to a Student : note [coming in v2.0]

Allows user to add personal notes about class or feedback received by students.

Format: `note t/[NOTES]

3.31. Exiting the program : exit

Exits the program.
Format: exit

3.32. Saving the data

All data in T.A.rence is saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

Data is saved to "application.json".

Temporary state files are created in "/data/states/". On closure of the application, the "/data/states/" folder will be automatically deleted.

4. Enhancements

T.A.rence contains a few input correction features to enhance usability.

4.1. Autocorrect

If invalid parameters are detected in the command input, T.A.rence tries to suggest similar alternatives that can be selected and run without having to retype the entire command.

E.g. given input

addTutorial tn/Tut01 m/GET1000 …​

T.A.rence might respond:

No such module found. Did you mean: 1. GER1000

Entering the number 1 runs the command addTutorial tn/Tut01 m/GER1000 …​.

4.2. Autocomplete

T.A.rence generates and displays real-time suggestions for command words and user data from the application (e.g. module codes and tutorial names), depending on the field the user is currently entering. Similar to other CLI programs such as Windows' Command Prompt and MacOS' Terminal, pressing the "TAB" key will autofill the input box with the current suggestion. Pressing "CTRL" cycles through the different available suggestions.

E.g.: with addTutorial m/GE in the input box, pressing "CTRL" changes the displayed suggestion to R1000, Q1000, etc., depending on which modules beginning with "GE" were previously added to the application. Pressing "TAB" then changes the input box value to addTutorial m/GE_1000.

4.3. Command History

Every command entered into T.A.rence is saved. Press the "UP" key to bring up older commands and the "DOWN" key to move back to more recent ones.

5. 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 T.A.rence folder.

6. Command Summary

  • Add Module addModule m/MODULE_CODE
    e.g. add m/CS1010

  • Add Tutorial addTutorial tn/TUTORIAL_NAME st/START_TIME dur/TUTORIAL_DURATION d/TUTORIAL_DAY w/TUTORIAL_WEEKS m/MODULE_CODE

    e.g. addStudent n/Bob e/bob@gmail.com mat/A1234567Z1 nusid/E1234567 m/CS1010S tn/Tutorial-01

  • Add Student addStudent n/NAME e/EMAIL mat/MATRICULATION_NUMBER nusid/NUSNET_ID tn/TUTORIAL_NAME m/MODULE_CODE

    e.g. addStudent n/Bob e/bob@gmail.com mat/A1234567Z1 nusid/E1234567 m/CS1010S tn/Tutorial-01

  • Help : help

  • Exit : exit