TutorLink is a streamlined, offline application developed for professors at NUS who manage single-staffed classes. It is designed to simplify the management of class assignments, and other administrative tasks, allowing professors to focus on teaching and curriculum development. By automating repetitive tasks and providing quick access to essential information, TutorLink saves valuable time and reduces the burden of administrative work.
help
add_student
delete_student
list_student
find_student
add_component
delete_component
list_component
add_grade
delete_grade
list_grade
bye
TutorLink
from here.Your command terminal should look similar to the one below.
When inputting commands into TutorLink
, kindly take note of the following:
add_student n/John Doe n/John Doe i/A1234567X
add_student i/A1234567X n/John Doei/A1234567X
will be intepreted as adding
a student with the name of John Doei/A1234567X
and matric number A1234567X
.i/MATRIC_NUMBER
.
Rouge spaces in between the prefix i.e i/ MATRIC_NUMBER
will invalidate the command and be treated as a null parameter
.add_student n/John i/A1234567X
is the same as add_student i/A1234567X n/John
|
as this character is used for storage).
Including these may yield unpredictable results with the Storage
component.i/
argument) is case-sensitive. Therefore, only A1234567X
is the accepted and not a1234567x
. Matric numbers
will be remain in uppercase for storage.test
will match against TEST
and Test
.Components
cannot exceed 100%
. An error will be displayed should you attempt to add a component
that causes the overall weight to exceed 100%
. For illustration, consider the following scenario:-------------------------------------------------------------
list_component
------------------------- Result -------------------------
1: Quiz 2 (maxScore: 20.0, weight: 30%)
2: Quiz 4 (maxScore: 20.0, weight: 25%)
-------------------------------------------------------------
add_component c/Quiz 1 w/60 m/10
------------------------- Error -------------------------
Error! Total weighting must not exceed 100%.
Current weighting (after addition): 115%
-------------------------------------------------------------
In this case, an error was thrown because total component weighting
exceeded 100%
percentage_score
computation follows the following equation: sum(grade score [of student]/max component score * component_weight) / total component weight
To illustrate:list_component
------------------------- Result -------------------------
1: Quiz 2 (maxScore: 20.0, weight: 30%)
2: Quiz 4 (maxScore: 20.0, weight: 25%)
-------------------------------------------------------------
list_grade
------------------------- Result -------------------------
List of All Grades:
1: Ethan Chua (A0276007H):
1. Quiz 2 : 15.00
2. Quiz 4 : 10.00
Final Percentage Score: 63.64%
-------------------------------------------------------------
The computation of the final score is as follows:
(15/20*30 [Quiz 2] + 10/20*25 [Quiz 1])/(30 + 25 [Total Weighting]) = 63.64% (2d.p)
help
Shows a message explaining different features of the app.
help
add_student
Adds a student to your class.
add_student i/MATRIC_NUMBER n/STUDENT_NAME
STUDENT_NAME
: The full name of the student.MATRIC_NUMBER
: The unique identifier of the student. It should start with “A”, followed by 7 digits, and end with an uppercase letter (e.g., A1234567X)add_student i/A1234567X n/John Doe
adds a new student named John Doe with the matric number of A1234567X to the class.delete_student
Removes a student from the class. Note that a student can only be deleted using his/her matric number to prevent identification errors.
delete_student i/MATRIC_NUMBER
MATRIC_NUMBER
: The unique identifier of the student. It should start with “A”, followed by 7 digits, and end with an uppercase letter (e.g., A1234567X)delete_student i/A1234567X
deletes a student with the matric number of A1234567X.list_student
Displays a list of all students in the class.
Format: list_student
Example:
list_student
find_student
Searches for a student and returns a list of matching results, complete with information such as matric number
and percentage score
find_student i/MATRIC_NUMBER
find_student n/STUDENT_NAME
i/MATRIC_NUMBER
and n/STUDENT_NAME
are supplied, n/STUDENT_NAME
is disregarded for the query.STUDENT_NAME
: The name of the student.MATRIC_NUMBER
: The matriculation number of the student. It should start with “A”, followed by 7 digits, and end with an uppercase letter (e.g., A1234567X)STUDENT_NAME
is case-sensitive; a search query for n/John Doe
will not match against john doe
STUDENT_NAME
matches substrings; a search query for n/jo
will match against john doe
find_student i/A1234567X
find the student with the matric number of A1234567X
among the list of students and prints out the student information.find_student n/John Doe
find the student with the name John Doe
among the list of students and prints out the student information.add_component
Adds a new grading component to the class (e.g., “Homework,” “Midterm,” “Final Exam”).
add_component c/COMPONENT w/WEIGHT m/MAX_SCORE
COMPONENT
: The name of the grading component to add. Note that when adding, the component name is case-insensitive,
i.e if Quiz
exists in the app, then quiz
cannot be added.
Moreover, whitespace after the component string is trimmed.WEIGHT
: The weight of the component as a percentage, input as an integer from 0 - 100 (inclusive).MAX_SCORE
: The max_score of the component. Must be a double
between 0 and 10,000 (inclusive).
Use case for WEIGHT = 0
, MAX_SCORE = 0
: ungraded components like optional assignments etcadd_component c/Quiz 1 w/30 m/50
adds a Quiz 1 component with a weightage of 30%, it has a max score of 50 marks.delete_component
Removes an existing grading component from the class.
delete_component c/COMPONENT
COMPONENT
: The name of the grading component to delete. Note that component name is case-insensitive, i.e Test
is the same as test
.
Moreover, whitespace after the component string is trimmed.delete_component c/Quiz 1
deletes Quiz 1 component from the list of components that form the final grade.update_component
Updates an existing component in the class
update_component c/COMPONENT w/WEIGHT m/MAX_SCORE
COMPONENT
: The name of the grading component to update. Note that when updating, the component name case-insensitive,
i.e if there exists a component by the name of Quiz 2
in the applicaiton, supplying update_component
with a parameter c/QUIZ 2
will update it.
Moreover, whitespace after the component string is trimmed.WEIGHT
: The weight of the component as a percentage, input as an integer from 0 - 100 (inclusive).MAX_SCORE
: The max_score of the component. Must be a double
between 0 and 10,000 (inclusive).
Refer to add_component
documentation for use cases of WEIGHT=0
, MAX_SCORE=0
.update_component c/Quiz 1 w/40 m/50
updates component by the name of Quiz 1
to now bear a weightage of 40% and a max score of 50 marks.update_component
checks through all the Grade
objects in the app and if any Grade
object has a score that is greater than
the updated max score, the score in the Grade
object is set to be the newly updated component max score. This is done to
prevent the case where a grade has a score that is greater than the max score of the corresponding component.list_component
Displays all grading components and their respective weights for a class.
Format: list_component
Example:
list_component
add_grade
Records a grade for a specific student in a particular assignment or exam component.
add_grade i/MATRIC_NUMBER c/COMPONENT s/SCORE
MATRIC_NUMBER
: The unique identifier of the student. It should start with “A”, followed by 7 digits, and end with an uppercase letter (e.g., A1234567X)COMPONENT
: The name of the grading component. Note that component name is case-insensitive, i.e Test
is the same as test
.
Moreover, whitespace after the component string is trimmed.SCORE
: The score to be recorded. Must be a numerical value that will be interpreted as a double
. Note that score cannot exceed the max score of the component.add_grade i/A1234567X c/Quiz 1 s/45
adds the grade of Quiz 1 for the student with the matric number of A1234567X with a score of 45.add_grade i/A1234567X c/Quiz 2 s/30.5
adds the grade of Quiz 2 for the student with the matric number of A1234567X with a score of 30.5.delete_grade
Removes a previously recorded grade for a specific student and component.
delete_grade i/MATRIC_NUMBER c/COMPONENT
MATRIC_NUMBER
: The unique identifier of the student. It should start with “A”, followed by 7 digits, and end with an uppercase letter (e.g., A1234567X)COMPONENT
: The name of the grading component. Note that component name is case-insensitive, i.e Test
is the same as test
.
Moreover, whitespace after the component string is trimmed.delete_grade i/A1234567X c/Quiz 1
deletes the grade of Quiz 1 for the student with the matric number of A1234567X.list_grade
Views all recorded grades for a specific student or all students, and final percentage calculation. If the weightage of components does not add up to 100% (i.e., the course is still in progress), “IP” (In Progress) will be shown instead of a final percentage.
list_grade i/MATRIC_NUMBER
MATRIC_NUMBER
: The unique identifier of the student. It should start with “A”, followed by 7 digits, and end with an uppercase letter (e.g., A1234567X)list_grade i/A1234567X
list_grade
bye
Exits the program.
bye
TutorLink data is saved in the hard disk automatically after every command execution. There is no need to save manually. Existing data from previous application runs are loaded on startup.
The data from the student, component and grade lists are stored in studentlist.txt
, componentlist.txt
and gradelist.txt
respectively, located in the [JAR file location]/data/
directory.
Q: How do I transfer my data to another computer?
A: To transfer data, simply copy the TutorLink
home folder (where the .jar
file and data files are located) to your new computer. Then, download Java 17 (if not already installed), place the .jar
file in the copied folder, and run java -jar TutorLink.jar
from that folder.
Q: Can I update data by directly editing the data files?
A: Do so at your own risk. If changes to the data file alter its format, invalid file lines will discarded during startup, and displayed in the command line for verification. While TutorLink can detect most invalid file entries, certain edits can cause unexpected behaviour. Therefore, it is not recommended to edit the data files unless you are confident you can do so correctly.
Command | Description | Example |
---|---|---|
help |
Displays list of commands | help |
add_student |
Adds a student to the class roster | add_student i/A1234567X n/John Doe |
delete_student |
Deletes a student from the class roster | delete_student i/A1234567X |
list_student |
Lists all students in the class | list_student |
find_student |
Finds a student in the class roster by name or matric number | find_student i/A1234567X n/John Doe |
add_component |
Adds a new grading component to the class | add_component c/Quiz 1 w/30 m/50 |
delete_component |
Deletes a grading component from the class | delete_component c/Quiz 1 |
update_component |
Updates a component with a new maxscore or weight | update_component c/Quiz 1 w/40 m/60 |
list_component |
Lists all grading components | list_component |
add_grade |
Adds a grade for a student for a specific component | add_grade i/A1234567X c/Quiz 1 s/45 |
delete_grade |
Deletes a student’s grade for a specific component | delete_grade i/A1234567X c/Quiz 1 |
list_grade |
Lists all grades for a student | list_grade i/A1234567X |
bye |
Exits the program | bye |
update_student
: updates a student entry in the appupdate_grade
: updates a grade entry in the appfilter_student
: filters students by percentage scorefilter_grade
: filters grades by percentage score