TutorMate is a desktop app targeted to private tuition teachers on handling tuition related matters.
It is optimized for use via a Command Line Interface (CLI 1) while still having the benefits of a Graphical User Interface (GUI 2). If you can type fast, TutorMate can get your administrative tasks done faster than traditional GUI 2 apps.
This document describes the main features of TutorMate:
With a customised student list and schedule in TutorMate just for you, organising lessons and managing students will be the least of your worries.
Users are expected to have a basic level of technical knowledge and are familiar with fundamental computer operations and tasks e.g. how to open command terminal and install application.
This project is based on the AddressBook-Level3 project.
Ensure you have Java 3 11 or above installed in your Computer. You can check by opening a command terminal 4 and typing java -version
.
Download the latest tutormate.jar
from here.
Copy the file to the folder you want to use as the home folder 5 for your TutorMate.
Open a command terminal 4, navigate into the home folder 5 using the change directory command cd
, and use the java -jar tutormate.jar
command to run the application.
A GUI 2 similar to the picture 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 students
: Lists all students with their name.
In π¨βπ STUDENTS list:
add -name Leah
: Adds a student named "Leah" to the application.
show 3
: Shows the details of the person with the index 3 in TutorMate.
exit
: Exits the app.
Refer to the Features below for details of each command.
Refer to the Command Summary below for the summary of all commands.
Refer to the Glossary below for definitions of glossary terms.
Flag: A flag is a word starting with a dash "-" that is used to identify the type of information that is being provided e.g. -name
.
Text formatted as code snippets are either commands e.g. list schedule
, command formats e.g. list [LIST][KEYWORDS]
or parameters e.g. NAME
.
This box denotes command outputs.
add -name NAME
, NAME
is a parameter which can be used as add -name Leah
.
In this case, "Leah" is substituted for NAME
.list [LIST] [KEYWORDS]
can be used as list
or as list students email
, though the behaviour may differ.link -student student name -lesson lesson name
and link -lesson lesson name -student student name
are acceptable.delete INDEX
, the "index" parameter must immediately follow the command name "delete".linkTo
is the same as linkto
or LiNkTo
.add info -name new name -notValid flagBody -subject physics
, it will be interpreted as add -name new name -subject physics
. "info " and "-notValid flagBody" will be ignored. delete 3 extra
, it will be interpreted as delete 3
delete extra 3
will not be accepted as delete command specifies that the index parameter must immediately follow the command name.Parameter | Used in | Constraints | Valid examples | Invalid examples |
---|---|---|---|---|
INDEX | show editPerson deletePerson editLesson deleteLesson addTask deleteTask | Must be a positive integer in the range of 1 to 99999 inclusive. | "1", "24", "12" | "-1", "2147483648", "10000" |
LIST | list | Must be either "Students", "Schedule", "Tasks". Parameter is case-insensitive. | "STUDENTS", "stuDEnts" | "task", "student" |
KEYWORDS | list | Must be either "phone", "email", "address", "tags", "subjects", "remark", "none", or "all" | "none", "all", "subJeCts" | "subject", "" |
NAME , LESSON_NAME , STUDENT_NAME | addLesson editLesson addPerson editPerson filter find linkTo | Must not be empty. Must only contain alphanumeric characters. | "John", "Elton" | "", "jo!" |
SUBJECT | addLesson editLesson | Must be either "Mathematics", "Physics", "Biology", "Chemistry" or "English". | "mathematics", "MATHEMATICS", | "math" |
SUBJECTS | addPerson editPerson filter | Must be a valid SUBJECT (see row above) or multiple entries of SUBJECT separated using a comma (,). | "mathematics", "mathematics, physics" | "math, physics" |
PHONE | addPerson editPerson | Should be at least 3 characters long, and can only contain numbers. | "96681234", "823234" | "+6592212341", "98" |
EMAIL | addPerson editPerson | Should follow the format localpart@domain. The local-part should only contain alphanumeric characters and these special characters, excluding the parentheses, (+_.-). The local-part may not start or end with any special characters. This is followed by a '@' and then a domain name. The domain name is made up of domain labels separated by periods. The domain name must: - end with a domain label at least 2 characters long - have each domain label start and end with alphanumeric characters - have each domain label consist of alphanumeric characters, separated only by hyphens, if any. | "hello@gmail.com", "test@g.com" | "hello.com", "f@f" |
ADDRESS | addPerson editPerson | Must not be empty. | "Bedok", "25 Lower Kent Ridge Road" | "" |
REMARK | addPerson editPerson | Must be either alphanumeric or a symbol (!, @, #...). Can be empty | "Bedok", "25 Lower Kent Ridge Road", "", "@" | "πΌ", "η±" |
TAG | addPerson editPerson filter | Must not be empty and cannot contain any spaces. Multiple tags can be specified at once by using a comma (,) as a separator. | "jc,express", "weak" | "junior college" |
DATE | addLesson editLesson filter | Must follow either the date format yyyy/MM/dd, yy/MM/dd, MM/dd, dd. See here for an exhaustive explanation of the allowable formats. | To represent the date 13/08/2023 and assuming today is 07/08/2023: "2023/08/13", "23/08/13", "08/13", "13" | "20222/08/2", "13/1" |
TIME | addLesson editLesson filter | Must follow either HH:MM or H:MM (only for 0:00 to 9:59) | "13:30", "9:17" | "9:1", "13:70" |
SEARCH_STRING | find | Must not be empty. | "Alex", "alex yeoh", "+asdf-" | "" |
DESCRIPTION | addTask | Must not be empty. | "Mark Alkanes Extra Practice", "Make Forces Notes" | "" |
The list command is the way to navigate between the 3 states in our app. It will display the specified list and its corresponding details panel.
Format: list [LIST] [KEYWORDS]
[LIST]
.[KEYWORDS]
parameter is for specifying which student details to display, and is only valid for π¨βπ STUDENTS list. Specifying the [KEYWORDS]
parameter without specifying the [LIST]
parameter is not allowed. When used for displaying the π
SCHEDULE list and πΌ TASKS list, [KEYWORDS]
will be ignored.Tips:
list
without specifying the [LIST]
parameter defaults to showing the π
SCHEDULE list.[KEYWORDS]
parameter after list
(without specifying [LIST]
) is not allowed!Example usages:
list students
displays all the students with their names (including previously specified fields).list students subjects email
displays all the students with their names, the list of subjects for each student and their email.Success outputs:
list students
(with no additional student details):Showing list STUDENT
Example usages:
list
and list schedule
displays the π
SCHEDULE list with all the lessons with their names in time order.Success outputs:
list
or list schedule
Showing list SCHEDULE
Note: list schedule subjects
will display the π
SCHEDULE list with all the lessons with their names in time order. subjects
will be ignored.
Example usages:
list tasks
displays all the tasks with their description.Success outputs:
list tasks
Showing list TASK
Failure outputs:
list student
students
instead of student
.list task
tasks
instead of task
.list students EMAIL
email
in lower case, not EMAIL
.list students subject
subjects
instead of subject
.list students subjects,phone
subjects phone
for keywords instead of comma separation. list: Displays the specified list, which can be a STUDENTS list, SCHEDULE list or TASKS list. Default command without specified list displays the schedule list. When specifying STUDENTS list, optional parameters can be used to specify what student details to display.
Parameters: [LIST] [KEYWORDS]...
Example: list schedule
Example: list students phone email
Example: list tasks
The show command has different behaviours depending on the current list. It shows the details of the specified item in the current list in the application.
Format: show INDEX
INDEX
.INDEX
refers to the index number shown in the displayed list.INDEX
has to be within the range of the displayed π¨βπ STUDENTS list, π
SCHEDULE list or πΌ TASKS list.In π¨βπ STUDENTS list, the show command shows the details of the specified student from the π¨βπ STUDENTS list in the application.
Example usages:
list STUDENTS
followed by show 2
shows the details of the 2nd student in the π¨βπ STUDENTS list.find Betsy
followed by show 1
shows the details of the 1st student in the results of the find
command.Success outputs:
show 1
Showing Person: Alex Yeoh; Phone: 87438807; Email: alexyeoh@example.com; Address: Blk 30 Geylang Street 29, #06-40; Subjects: BIOLOGYCHEMISTRY; Tags: [friends]; Remark: To be added
In π SCHEDULE list, the show command shows the details of the specified lesson from the π SCHEDULE list in the application.
Example usages:
list SCHEDULE
followed by show 2
shows the details of the 2nd lesson in the π
SCHEDULE list.find lesson1
followed by show 1
shows the details of the 1st lesson in the results of the find
command.Success outputs:
show 1
Showing Lesson: Start: 1:30 PM; End: 3:30 PM
In πΌ TASKS list, the show command shows the details of the specified task from the full πΌ TASKS list in the application.
Example usages:
list TASKS
followed by show 2
shows the description of the 2nd task in the full πΌ TASKS list.Success outputs:
show 1
Showing Task: Description: Revise CS2103T Materials
Failure outputs:
show
Invalid command format!
show: Shows the details of the item identified by the index number used in the last item listing.
Parameters: INDEX (must be a positive integer)
Example: show 1
show 100
The lesson index provided is invalid
Adds a student/lesson/task to the π¨βπ STUDENTS list, π SCHEDULE list or the πΌ TASKS list of a lesson in the application.
Format: addPerson -name NAME [-phone PHONE_NUMBER] [-email EMAIL] [-address ADDRESS] [-subject SUBJECTS] [-tag TAG] [-remark REMARK]
Tips:
add
.Example usages:
addPerson -name John
addPerson -name John -phone 91234567 -email test@gmail.com -address 10 Kent Ridge Drive -subject MATHEMATICS
add -name John -phone 91234567 -email test@gmail.com -address 10 Kent Ridge Drive -subject MATHEMATICS
Success outputs:
addPerson -name John -phone 91234567 -email test@gmail.com -address 10 Kent Ridge Drive -subject MATHEMATICS
New person added: John; Phone: 91234567; Email: test@gmail.com; Address: 10 Kent Ridge Drive; Subjects: MATHEMATICS; Tags: ; Remark: To be added
Failure outputs:
addPerson
Invalid person format: Flag name not found.
Usage: addPerson -name NAME (any number of unique [-phone|email|address|subject|tag|remark] VALUE).
For example, addPerson -name John -phone 91234567
If you are currently displaying student list, you could use 'add' inplace of 'addPerson'.
Note you must provide a 'name' not already in the address book.
Format: addLesson -name NAME [-day DATE] [-start TIME] [-end TIME] [-subject SUBJECT]
Tips:
If the user is currently in π
SCHEDULE list, the command can be shortened to add
.
Example usages:
addLesson -name Chemistry Lesson at Bishan
addLesson -name Lesson at Tai Seng -start 09:00 -end 11:00 -day 03/21 -subject physics
add -name Lesson at Yishun -day 21 -subject MATHEMATICS
Success outputs:
addLesson -name Chemistry Lesson at Bishan
New lesson added: Lesson Chemistry Lesson at Bishan
addLesson -name Lesson at Tai Seng -start 09:00 -end 11:00 -day 03/21 -subject physics
New lesson added: Lesson Lesson at Tai Seng from 9:00 AM to 11:00 AM on 21-03-2023 for PHYSICS
Failure outputs:
addLesson -name Chemistry Lesson
followed by addLesson -name Chemistry Lesson -day 2023/12/12
Lesson with this name already exists in the schedule
addLesson -name English Lesson -start 13:00 -end 10:00
Invalid lesson input: End time: 10:00 AM cannot be before start time: 1:00 PM..
Usage: addLesson -name NAME (any number of unique [-subject|day|start|end VALUE]).
For example, addLesson -name John -subject English -day 23 -start 14:30 -end 16:30
If you are currently displaying schedule list, you could use 'add' inplace of 'addLesson'.
Note you must provide a 'name' not already in the schedule and 'start' must be before 'end'.
Format: addTask [INDEX] DESCRIPTION
INDEX
of the displayed π
SCHEDULE list or to the shown lesson (if INDEX
is omitted).INDEX
has to be within the range of the displayed π
SCHEDULE list.Example usages:
addTask 1 Make Forces Notes
addTask Mark MYE Practice Paper
Success outputs:
addTask 1 Make Forces Notes
New task added to lesson with index 1: Make Forces Notes
addTask Mark MYE Practice Paper
New task added to current lesson: Mark MYE Practice Paper
Failure outputs:
addTask
show
command or add the lesson index you want to add tasks to after addTask
. Add description of the task at the end of the command.Invalid description: Tasks can take any values, and it should not be blank
Usage: addTask + [lesson index] [description]. You could omit the lesson index when adding task to showing lesson.
Example1: addtask 1 do homework
Deletes the specified item in the π¨βπ STUDENTS list or π SCHEDULE list of the application.
Deletes a student in the π¨βπ STUDENTS list of the application.
Format: deletePerson INDEX
INDEX
.INDEX
refers to the index number shown in the displayed π¨βπ STUDENTS list.INDEX
has to be within the range of the displayed π¨βπ STUDENTS list.deleteperson
, deletePerson
and DELETEPERSON
are all valid.Tips:
delete
.Example usages:
deletePerson 1
delete 1
Success outputs:
deletePerson 1
Deleted Person: Alex Yeoh; Phone: 87438807; Email: alexyeoh@example.com; Address: Blk 30 Geylang Street 29, #06-40; Subjects: BIOLOGYCHEMISTRY; Tags: [friends]; Remark: To be added
Failure outputs:
deletePerson
Invalid command format!
deleteperson: Deletes the entry identified by the index number used in the displayed list.
Parameters: INDEX (must be a positive integer)
Example: delete 1
Deletes a lesson in the π SCHEDULE list of the application.
Format: deleteLesson INDEX
INDEX
.INDEX
refers to the index number shown in the displayed π
SCHEDULE list.INDEX
has to be within the range of the displayed π
SCHEDULE list.deletelesson
, deleteLesson
and DELETELESSON
are all valid.Tips:
delete
.Example usages:
deleteLesson 1
delete 1
Success outputs:
deleteLesson 1
Deleted Lesson: Lesson lesson1 from 12:30 PM to 2:30 PM on 20-11-2023 for MATHEMATICS
Failure outputs:
deleteLesson
Invalid command format!
deletelesson: Deletes the lesson identified by the index number used in the displayed schedule list.
Parameters: INDEX (must be a positive integer)
Example: deletelesson 1
Deletes the specified task from the shown lesson in the application. User must be in the π SCHEDULE list and showing a lesson.
Format: deleteTask INDEX
INDEX
of the task list in the shown lesson.INDEX
refers to the index number shown in the displayed task list of the lesson.INDEX
has to be within the range of the displayed task list.deletetask
, deleteTask
and DELETETASK
are all valid.Caution:
The deleteTask
command can only be used in the π
SCHEDULE list and while a lesson is shown.
Example usages:
show 1
followed by deleteTask 2
deletes the 2nd task of the 1st lesson in the π
SCHEDULE list.Success outputs:
show 1
followed by deleteTask 1
Deleted Task: Revise CS2103T Materials
Failure outputs:
show 1
followed by deleteTask 100
Task index do not belong to any tasks!
show 1
followed by deleteTask
Invalid command format!
deletetask: Deletes the task identified by the task index from the currently displayed lesson.
Parameters: task index (must be a positive integer)
Example: deletetask 1
deleteTask 1
without showing a lesson
show
command.Please use show lessonIndex before deleting task!
Edits the specified item in the π¨βπ STUDENTS list or π SCHEDULE list of the application.
Format: editPerson [INDEX] [-name NAME] [-phone PHONE_NUMBER] [-email EMAIL] [-address ADDRESS] [-subject SUBJECTS] [-tag TAG] [-remark REMARK]
INDEX
if it is provided, otherwise edits the currently/lastly shown student.INDEX
has to be within the range of the displayed π¨βπ STUDENTS list.Tips:
edit
.Example usages:
editPerson 1 -name John
edit -phone 91234567 -tag jc,express
Success outputs:
editPerson 1 -name new name -phone 91234567 -tag jc,express
Edit success.
from: Bernice Yu; Phone: 99272758; Email: berniceyu@example.com; Address: Blk 30 Lorong 3 Serangoon Gardens, #07-18; Subjects: MATHEMATICSENGLISH; Tags: [colleagues][friends]; Remark: sn
to: new name; Phone: 91234567; Email: berniceyu@example.com; Address: Blk 30 Lorong 3 Serangoon Gardens, #07-18; Subjects: MATHEMATICSENGLISH; Tags: [jc][express]; Remark: sn
Failure outputs:
editPerson 1
No edit detected. Please edit at least one field: name, phone, email, address, subjects, remark, tags to different value.
editPerson 1 -name David Li
(assuming there is already another student named David Li)
Clash detected.
Edited: David Li; Phone: 91234567; Email: berniceyu@example.com; Address: Blk 30 Lorong 3 Serangoon Gardens, #07-18; Subjects: MATHEMATICSENGLISH; Tags: [jc][express]; Remark: sn
Clashes with: David Li; Phone: 91031282; Email: lidavid@example.com; Address: Blk 436 Serangoon Gardens Street 26, #16-43; Subjects: BIOLOGY; Tags: [family]; Remark: .
editPerson -phone 91234567 -tag jc,express
(assuming no student is currently shown)
editPerson
is used without specifying INDEX
, then a student must be selected via the show INDEX
command.Using edit command without specifying index when no entry is shown.
Usage: edit [INDEX] (at least one of unique [-name|phone|email|address|subject|tag|remark VALUE]).
For example, edit 1 -name John -phone 91234567
If you want to edit the currently shown person, you could omit the index.
Note your edited 'name' must not already in the address book.
Format: editLesson [INDEX] [-name NAME] [-start TIME] [-end TIME] [-day DATE] [-subject SUBJECT]
(for list specific format)
INDEX
if it is provided, otherwise edits the currently/lastly shown lesson.INDEX
has to be within the range of the displayed π
SCHEDULE list.addLesson
command, the editLesson
command's "-subject" flag only accepts one subject, not multiple subjects (parameter is SUBJECT
, not SUBJECTS
).Tips:
edit
.Example usages:
editLesson 1 -start 12:35 -end 14:35 -day 2023/11/21 -subject English
edit -start 12:30 -end 14:30 -day 2023/11/20 -subject English
Success outputs:
editLesson 1 -start 12:35 -end 14:35 -subject English
Edit success.
from: Lesson lesson1 from 12:30 PM to 2:30 PM on 20-11-2023 for MATHEMATICS
to: Lesson lesson1 from 12:35 PM to 2:35 PM on 20-11-2023 for ENGLISH
Failure outputs:
editLesson 1
No edit detected. Please edit at least one field: name, start, end, subject, day to different value.
editLesson -name a new name
(assuming no lesson is currently shown)
show
command.Using edit command without specifying index when no entry is shown.
Usage: edit [INDEX] (at least one of unique [-name|subject|day|start|end VALUE]).
For example, edit 1 -name lesson2 -subject English -day 23/12 -start 14:30 -end 16:30
If you want to edit the currently shown lesson, you could omit the index.
Note your edited 'name' must not already in the schedule and 'start' must be before 'end'.
editLesson 1 -start 12:35 -end 14:35 -day 2023/11/21
(assuming there is already another lesson with clashing time)
Time clash detected.
Edited: Lesson lesson1 from 12:35 PM to 2:35 PM on 21-11-2023 for ENGLISH
Clashes with: Lesson lesson2 from 1:30 PM to 3:30 PM on 21-11-2023 for PHYSICS.
editLesson 1 -name lesson2
(assuming there is already another lesson named lesson2)
Name clash detected.
Edited: Lesson lesson2 from 12:30 PM to 2:30 PM on 20-11-2023 for MATHEMATICS
Clashes with: Lesson lesson2 from 1:30 PM to 3:30 PM on 21-11-2023 for PHYSICS.
Editing of πΌ TASKS list is not supported at this time!
The find command finds students (in π¨βπ STUDENTS list) or lessons (in π SCHEDULE list) whose names contain the search string 7.
Format: find SEARCH_STRING
lesson
will match Lesson
. hans
will match Hans
.sson Che
will return Lesson Chemistry
.NAME
parameter only allows alphanumeric characters.Caution:
show
lesson to see list of tasks of the lesson.Example usages:
find bernice
find a
Success outputs:
find bernice
1 persons listed!
find a[s*(|o
0 persons listed!
Example usages:
find lesson
find b
Success outputs:
find lesson
4 lessons listed!
find &*af1
0 lessons listed!
Finding in πΌ TASKS list is not supported at this time!
Failure outputs:
find
or find
Invalid command format!
find: Finds all persons or lesson whose names contains the specified search string (case-insensitive) and displays them as a list with index numbers.
Parameter: SEARCH_STRING
Example: find alex yeoh
find task1
(in πΌ TASKS list)
Unknown command
You must be in the π¨βπ STUDENTS list to run this command. Type list students
to go to the π¨βπ STUDENTS list.
filter [-name NAME] [-subject SUBJECTS] [-tag TAG] [-remark REMARK]
Tips:
list students
.Example usages:
filter -name Alex -tag primary -subject Mathematics
Success outputs:
filter -name Alex -tag primary -subject Mathematics
filter -name Brian
Filtered student list successfully!
Failure outputs:
filter -name Alan!
Invalid filter format: Names should only contain alphanumeric characters and spaces, and it should not be blank.
Usage: filter (any number of unique -[name|subject|tag|remark] [value]).
For example, filter -name John -subject physics,english
You must be in the π
SCHEDULE list to run this command. Type list schedule
to go to the π
SCHEDULE list.
filter [-name NAME] [-subject SUBJECTS] [-before DATE] [-on DATE] [-after DATE]
-before
, -on
, -after
can be used at once. For example, you cannot use both -before
and -after
in the same filter command.-before
and -after
are exclusive. For example, specifying -before 2023/05/01
will find lessons before but not on 2023/05/01.Tips:
list schedule
.Example usages:
filter -before 2022/10/10 -subject Mathematics
filter -name CS2103T Lab
Success outputs:
filter -before 2023/12/20 -subject Mathematics
Filtered schedule list successfully!
filter -before 2022/10/10 -after 2022/01/01
-before
and -after
flags are specified. Use only one of -before
, -after
, and -on
in the same command.Invalid filter format: You can only use one of -before, -on, -after at a time.
Usage: filter -(at least one of unique [-name|subject|before|on|after|remark VALUE]).
For example, filter -before 2023/10/10 -subject physics
Note you should only use one of -before, -on, -after at a time.
filter -on 2/2/2
Invalid filter format: 2/2/2 is not a valid date, please use yyyy/mm/dd or mm/dd or dd
for example, assume today is 2023/11/3, to add 2023/11/29, could use 29, 11/29, 2023/11/29 or 23/11/29.
Usage: filter -(at least one of unique [-name|subject|before|on|after VALUE]).
For example, filter -before 2023/10/10 -subject physics
Note you should only use one of -before, -on, -after at a time.
Filtering is not supported in the πΌ TASKS list at this time!
Failure outputs:
filter
Invalid filter format: You must specify at least one unique field to filter!.
Usage: filter -(at least one of unique [-name|subject|before|on|after VALUE]).
For example, filter -before 2023/10/10 -subject physics
Note you should only use one of -before, -on, -after at a time.
You can link lessons to students, and vice versa. For example, if a lesson has a few students, you can link each of the students to the lesson, so that you can quickly see who is attending this specific lesson.
You can be in the π¨βπ STUDENTS list or π
SCHEDULE list.
Format: link -student STUDENT_NAME -lesson LESSON_NAME
STUDENT_NAME
is the name of the student you would like to link to.LESSON_NAME
is the name of the lesson you would like to link to.STUDENT_NAME
's and LESSON_NAME
's constraints here.As of now, you cannot unlink a lesson from a student and vice versa. Use caution when running the link
command.
Example usages:
link -student alex yeoh -lesson lesson1
Success output:
link -student alex yeoh -lesson lesson1
Linked alex yeoh to lesson1
Failure outputs:
link -student alex yeoh -lesson lesson1
twiceThe student is already linked to this lesson
link -student alexxxx -lesson lesson1
(No student with alexxxx in application)No such student with name alexxxx found
Tips: LESSON_NAME
is case-insensitive. This means that "CS2103T Lab" and "cs2103T lab" are treated as the same lesson.
You must be in the π¨βπ STUDENTS list and are viewing a student to run this command. Type list students
to go to the π¨βπ STUDENTS list, then type show INDEX
to select a student to link lessons to.
Format: linkTo LESSON_NAME
LESSON_NAME
is the name of the lesson you would like to link to.LESSON_NAME
's constraints here.Tips:
linkTo
command repeatedly.LESSON_NAME
is case-insensitive. This means that "CS2103T Lab" and "cs2103T lab" are treated as the same lesson.As of now, you cannot unlink a lesson from a student. Use caution when running the linkTo
command.
Example usages:
linkTo CS2103T Lab
Success outputs:
linkTo CS2103T Lab
Linked Alex Wong to CS2103T Lab
Failure outputs:
linkTo CS2103T Lab
show INDEX
first.No student is shown
LinkTo command usage: linkTo LESSON_NAME
Example: linkTo CS2103T lab1
Note: This command is only available when a student is shown
linkTo CS2109 Lab
No such lesson
You must be in the π
SCHEDULE list and are viewing a lesson to run this command. Type list schedule
to go to the π
SCHEDULE list, then type show INDEX
to select a lesson to link students to.
linkTo STUDENT_NAME
STUDENT_NAME
is the name of the student you would like to link to.STUDENT_NAME
's constraints here.Tips:
linkTo
command repeatedly.STUDENT_NAME
is case-insensitive. This means that "Alex Yeoh" and "alex yeoh" are treated as the same student.As of now, you cannot unlink a student from a lesson. Use caution when running the linkTo
command.
Example usages:
linkTo Bernice Yu
Success outputs:
linkTo Bernice Yu
Linked Bernice Yu to CS2103T Lab
Failure outputs:
linkTo Bernice Yu
show INDEX
first.No lesson is shown
LinkTo command usage: linkTo STUDENT_NAME
Example: linkTo Alice Pauline
Note: This command is only available when a lesson is shown
linkTo Bernice Yong
No such student with name Bernice Yong found
This feature is not used for tasks!
After linking students to lessons or vice versa, you can "navigate" between the student and their linked lessons, or the lesson and its linked students. This comes in handy when you want to view the details of students in a lesson, or see what lessons a student has upcoming.
Format: nav
You must be in the π¨βπ STUDENTS list and are viewing a student to run this command. Type list students
to go to the π¨βπ STUDENTS list, then type show INDEX
to select a student.
Tips:
Example usages:
nav
Success outputs:
nav
Navigated to student's lessons
Failure outputs:
nav
nav
only works when a student is selected. Select a student with the show INDEX
command and try again.No student is currently displayed
nav
nav
only works when a student has linked lessons. Link a lesson with the linkTo
command.This student has no linked lessons
You must be in the π
SCHEDULE list and are viewing a lesson to run this command. Type list schedule
to go to the π
SCHEDULE list, then type show INDEX
to select a lesson.
Tips:
Example usages:
nav
Success outputs:
nav
Navigated to lesson's students
Failure outputs:
nav
nav
only works when a lesson is selected. Select a lesson with the show INDEX
command and try again.No lesson is currently displayed
nav
nav
only works when a lesson has linked students. Link a student with the linkTo
command.This lesson has no linked students
This feature is not used for tasks!
The command history feature allows you to retrieve previously typed commands into the command text box.
Tips:
Caution:
list tasks
, list students
, list schedule
], if user retrieves the command history with list students
and clears his command box, pressing up β§ again will retrieve list tasks
.Example usages:
list students
, list schedule
, list tasks
were entered in this order.list tasks
.list schedule
.list tasks
.Clears the program data.
Format: clear
Exits the program.
Format: exit
Shows a message explaining how to access the help page. Click on the button to copy the link, enter it in a web browser to visit our user guide.
Format: help
TutorMate data is saved in the hard disk9 automatically after any command that changes the data. There is no need to save manually.
TutorMate data is saved automatically as JSON10 files [JAR file location]/data/addressbook.json
, [JAR file location]/data/schedulelist.json
and [JAR file location]/data/personLessonMap.json
. It is possible to update data directly by editing that data file, but we do not recommend doing so.
If you insist on modifying the data file directly, be very careful, especially when you modify attributes such as Start and End time of lessons, as any overlapping lesson timings will render the data as invalid. Scenarios like these are not exhaustive.
Caution: If your changes to the data file makes its format invalid, TutorMate 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.
Q: How do I install Java version 11?
A: You can follow the steps here to install Java 11 to your computer.
Q: How do I transfer my data to another Computer?
A: Copy TutorMate's jar file into the folder you want to use as the home folder5 in the other computer. Before running the application, copy addressbook.json, personLessonMap.json and schedulelist.json files from the home folder5 in your current computer into the home folder5 of the other computer. After copying the 3 files, running the application will show the same data. However, do note that the changes made through the application in one computer will not be reflected in the data in another computer.
Q: Can I edit the data in the application through the addressbook.json, personLessonMap.json, schedulelist.json files directly?
A: It is possible. However, it is not advisable for normal users to do so as if the changes made to the data file makes its format invalid, TutorMate will discard all data. Please use the edit
command to make changes to your data instead. If you insist on directly modifying data files, please read this caution here.
Q: Can I still use the application without internet connection?
A: Yes, you can. TutorMate is an offline desktop application. The only exception is the help
command which provides a URL11 to the user guide.
preferences.json
file created by the application before running the application again.Action | List | Format | Examples | Remarks |
---|---|---|---|---|
List | Any | list [LIST] [KEYWORDS] | list students email , list schedule , list tasks | list without optional parameters displays the π
SCHEDULE list |
Show | Any | show INDEX | show 1 , show 3 | show will show the specified item at the given index of the current list |
Add | Students(add ), Any(addPerson ) | addPerson -name NAME [-phone PHONE_NUMBER] [-email EMAIL] [-address ADDRESS] [-subject SUBJECTS] [-tag TAG] [-remark REMARK] | addPerson -name John -phone 91234567 -email test@gmail.com -address 10 Kent Ridge Drive -subject MATHEMATICS | NA |
Add | Schedule(add ), Any(addLesson ) | addLesson -name NAME [-day DATE] [-start TIME] [-end TIME] [-subject SUBJECT] | addLesson -name Lesson at Tai Seng -start 09:00 -end 11:00 -day 03/21 -subject physics | NA |
Add | Schedule | addTask [INDEX] DESCRIPTION | addTask 1 Make Forces Notes | NA |
Delete | Students(delete ), Any(deletePerson ) | deletePerson INDEX | deletePerson 1 | NA |
Delete | Schedule(delete ), Any(deleteLesson ) | deleteLesson INDEX | deleteLesson 1 | NA |
Delete | Schedule | deleteTask INDEX | deleteTask 1 | show INDEX to show the lesson has to be used prior to deleteTask |
Edit | Students(edit ), Any(editPerson ) | editPerson [INDEX] [-name NAME] [-phone PHONE_NUMBER] [-email EMAIL] [-address ADDRESS] [-subject SUBJECTS] [-tag TAG] [-remark REMARK] | editPerson 1 -subject physics -remark need urgent help | INDEX can be omitted when editing the currently shown person |
Edit | Schedule(edit ), Any(editLesson ) | editLesson [INDEX] [-name NAME] [-day DATE] [-start TIME] [-end TIME] [-subject SUBJECT] | editLesson 2 -day 11/29 -start 14:30 -end 15:30 | INDEX can be omitted when editing the currently shown lesson |
Find | Students, Schedule | find SEARCH_STRING | find bernice , find lesson | Disabled in πΌ TASKS list |
Filter | Students | filter [-name NAME] [-subject SUBJECTS] [-tag TAG] [-remark REMARK] | filter -name Alex -tag primary -subject Mathematics | NA |
Filter | Schedule | filter [-name NAME] [-subject SUBJECTS] [-before DATE] [-on DATE] [-after DATE] [-remark REMARK] | filter -before 2023/12/20 -subject Mathematics | NA |
Link | Students, Schedule | link -student STUDENT_NAME -lesson LESSON_NAME | link -student Alex Yeoh -lesson CS2103T Lab | There is no way to unlink lesson to student |
Link | Students | linkTo LESSON_NAME | linkTo CS2103T Lab | There is no way to unlink lesson to student |
Link | Schedule | linkTo STUDENT_NAME | linkTo Bernice Yu | There is no way to unlink student to lesson |
Navigate | Students, Schedule | nav | nav | Student/Lesson should have at least one linked lesson/student |
id | Term | Definition |
---|---|---|
1 | CLI | Abbreviation for Command Line Interface, which allow user to interact with the application by inputting commands, and receive feedback from the application in the form of text. |
2 | GUI | Abbreviation for graphical user interface, which allow user to interact with with the application via graphical components such as icons, buttons, and menus. |
3 | Java | A programming language that you need to install before you are able to launch TutorMate. You could refer to FAQ for tips on how to verify whether you already have Java installed and how to install it. |
4 | Command Terminal | A text based user interface where most of the interaction is done by inputting commands. You can search for "terminal" to find and launch the inbuilt terminal in your operating system (Windows, Linus and MacOS). |
5 | Home Folder | The folder TutorMate is located at while running. This will be the folder where TutorMate read the date from and write the data to. |
6 | Code Injection | A computer attack in which malicious code is inserted into an application program. |
7 | String | A sequence of characters. Can be taken as just any text. |
8 | Pointer | A variable that stores the memory address of another variable. |
9 | Hard Disk | The long term storage device of the computer. The memory will remain even after the computer is turned off. |
10 | JSON | Abbreviation for JavaScript Object Notation. It is a format for storing data |
11 | URL | Abbreviation for uniform resource locator. It is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. |