By: W13-4
Since: September 2018
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Valid Inputs
- 4. Features
- 4.1. View Help :
help
- 4.2. Add Student:
add
- 4.3. Delete Student :
delete
- 4.4. Edit Student :
edit
- 4.5. List Students :
list
- 4.6. Find Students :
find
- 4.7. Group Students :
group
- 4.8. Select Student :
select
- 4.9. List Command History :
history
- 4.10. Undo Command :
undo
- 4.11. Redo Command :
redo
- 4.12. Clear TutorHelper :
clear
- 4.13. Record Payment :
paid
- 4.14. Display Earnings :
earnings
- 4.15. Add Subject :
addsub
- 4.16. Delete Subject :
deletesub
- 4.17. Copy Subject :
copysub
- 4.18. Add Syllabus Topic :
addsyll
- 4.19. Remove Syllabus Topic :
deletesyll
- 4.20. Edit Syllabus Topic :
editsyll
- 4.21. Mark Syllabus Topic :
mark
- 4.22. Exit Program :
exit
- 4.23. Save Data
- 4.1. View Help :
- 5. FAQ
- 6. Command Summary
TutorHelper is for tutors who have trouble managing their students’ details & progress, time of tuition and their own weekly tuition schedule. This project is an all-in-one scheduler.
-
Ensure you have Java version
9
or later installed in your Computer. -
Download the latest version of
TutorHelper
here. -
Copy the file to the folder you want to use as the home folder for your TutorHelper.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
list
: lists all contacts -
add
n/John Doe p/98765432 e/[email protected] a/John street, block 123, #01-01 s/Mathematics d/Monday 12:00pm
: adds a student namedJohn Doe
to the TutorHelper. -
delete
3
: deletes the 3rd contact shown in the current list -
exit
: exits the app
-
-
Refer to Section 4, “Features” for details of each command.
Index should always be an integer. It has a maximum range of 0 (exclusive) to 2,147,483,647 (inclusive). Any index outside of this range will automatically make any command an invalid input.
-
Emails should be of the format
local-part@domain
-
The local-part should only contain alphanumeric characters and these special characters, excluding the parentheses, (!#$%&'*+/=?`{|}~^.-) .
-
This is followed by a '@' and then a domain name. The domain name must:
-
be at least 2 characters long
-
start and end with alphanumeric characters
-
consist of alphanumeric characters, a period or a hyphen for the characters in between, if any.
-
Valid subjects are limited to only the following subjects:
Mathematics
, Biology
, Chemistry
, Physics
, Economics
, Geography
, History
, English
, Art
, Music
,
Computing
, Chinese
, Malay
, Tamil
, French
, German
, Japanese
, Literature
-
In order to be valid subjects, the input must be a full substring match of length 3 or more with any of the valid subjects. This is to avoid too short of keyword matching.
-
The match must start at the beginning of the subject name. This is to avoid confusion and multiple matching.
-
Input must be a single word. This is to avoid cases where both invalid and valid keyword are input by user.
-
Matching is case insensitive.
Examples:
-
Biology
,Bio
, orbio
will match withBiology
. -
iology
will not match willBiology
as the match does not start from the beginning. -
Ma
will not matchMathematics
because the length of subtring is shorter than three. -
phy
will only matchPhysics
and will not matchGeography
as matching is done from the beginning of the string. -
Maths
will not matchMathematics
as it is not a full substring match. -
History Literature
will not match anything as it contains more than 1 word.
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/John Doe
. -
Items in square brackets are optional e.g
n/NAME [t/TAG]
can be used asn/John Doe t/friend
or asn/John Doe
. -
Items with
…
after them can be used multiple times including zero times e.g.[t/TAG]…
can be used ast/friend
,t/friend t/family
etc. -
Parameters can be in any order e.g. if the command specifies
n/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable.
Adds a student to the TutorHelper
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS s/SUBJECT… d/TUITION TIMING [t/TAG], [MORE TAGS]…
💡
|
A student can have any number of tags (including 0), and must have at least 1 subject. |
-
Student must not have the same name and one of these fields as an existing student: phone number, email and address.
-
Name cannot contain any integer or symbols.
-
Phone number must only be 8 digits long.
-
Tuition timing has to contain a valid day and valid timing in 12 hour format.
-
All inputs need to be valid for the student to be successfully added.
Examples:
-
add n/John Doe p/98765432 e/[email protected] a/John street, block 123, #01-01, s/Mathematics d/Monday 6:00pm
-
add n/John Doe p/98765432 e/[email protected] a/John street, block 123, #01-01, s/Mathematics s/* d/Monday 6:00pm
will fail due to one invalid subject.
Deletes the specified student from the TutorHelper.
Format: delete INDEX
-
Deletes the student at the specified
INDEX
. -
The index refers to the index number shown in the displayed student list.
-
The index must be a positive integer 1, 2, 3, …
-
The index cannot be more than number of displayed students on list.
Examples:
-
list
delete 2
Deletes the 2nd student in the TutorHelper. -
find Betsy
delete 1
Deletes the 1st student in the results of thefind
command.
Edits an existing student in the TutorHelper.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [s/SUBJECT] [d/TIMING] [t/TAG]…
-
Edits the student at the specified
INDEX
. -
The index refers to the index number shown in the displayed student list.
-
The index must be a positive integer 1, 2, 3, …
-
The index cannot be more than number of displayed students on list.
-
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. -
You cannot edit payment entries or syllabus entries using edit, you will need to use paid or editsyll specifically.
Examples:
-
edit 1 p/91234567 e/[email protected]
Edits the phone number and email address of the 1st student to be91234567
and[email protected]
respectively. -
edit 2 n/Betsy Crower t/
Edits the name of the 2nd student to beBetsy Crower
and clears all existing tags.
Finds students whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
-
The search is case insensitive. e.g
hans
will matchHans
-
The order of the keywords does not matter. e.g.
Hans Bo
will matchBo Hans
-
Only the name is searched.
-
Only full words will be matched e.g.
Han
will not matchHans
-
Students matching at least one keyword will be returned (i.e.
OR
search). e.g.Hans Bo
will returnHans Gruber
,Bo Yang
Examples:
-
find John
Returnsjohn
andJohn Doe
-
find Betsy Tim John
Returns any student having namesBetsy
,Tim
, orJohn
Lists all students with the specified tuition timing.
User can choose to group by time or day of the week.
Format: group TIMING
-
Lists all students with the specified
TIMING
. -
The timing refers to either a time or day of the week.
-
The day entered is case sensitive. e.g.
Monday
is valid butMONDAY
isn’t -
The time entered must be in 12hr format. e.g.
12:00pm
is valid but1200
isn’t
Examples:
-
group Monday
Show all classes on Monday, sorted based on timing. -
group 12:00pm
Show all classes at 12:00pm for the entire week, sorted based on days of the week.
Selects the student identified by the index number used in the displayed student list.
Format: select INDEX
-
Selects the student and displays the information of the student at the specified
INDEX
. -
The index refers to the index number shown in the displayed student list.
-
The index must be a positive integer
1, 2, 3, …
-
The index cannot be more than number of displayed students on list.
Examples:
-
list
select 2
Selects the 2nd student in the TutorHelper. -
find Betsy
select 1
Selects the 1st student in the results of thefind
command.
Lists all the commands that you have entered in reverse chronological order.
Format: history
ℹ️
|
Pressing the ↑ and ↓ arrows will display the previous and next input respectively in the command box. |
Restores the TutorHelper to the state before the previous undoable command was executed.
Format: undo
ℹ️
|
Undoable commands: those commands that modify the TutorHelper’s content ( |
Examples:
-
delete 1
list
undo
(reverses thedelete 1
command) -
select 1
list
undo
Theundo
command fails as there are no undoable commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
Reverses the most recent undo
command.
Format: redo
Examples:
-
delete 1
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command) -
delete 1
redo
Theredo
command fails as there are noundo
commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command)
redo
(reapplies theclear
command)
Records a payment of a specified amount made by a specified student for a specified month and year.
Format: paid STUDENT_INDEX AMOUNT MONTH YEAR
ℹ️
|
|
-
Records a payment of a specified
AMOUNT
for the student at the specifiedSTUDENT_INDEX
, for a specifiedMONTH
andYEAR
. -
The student index refers to the index number shown in the displayed student list.
-
The student index, month and year must be positive integers 1, 2, 3, …
-
The index cannot be more than number of displayed students on list.
Examples:
-
paid 1 200 01 2018
Records a payment of $200 made for January 2018, or overwrites the existing payment entry for January 2018.
Displays total earnings across all students for a specified month of a specified year.
Format: earnings MONTH YEAR
-
Display tutor earnings across all students for a specified
MONTH
of a specifiedYEAR
. -
The month and year must be positive integers 1, 2, 3, …
Examples:
-
earnings 01 2018
Displays earnings made for January 2018.
Adds a new subject to a specified student. Refer to valid subject inputs under 3. Feature.
Format: addsub STUDENT_INDEX s/SUBJECT
ℹ️
|
|
-
Adds a new subject
SUBJECT
for a student at the specifiedSTUDENT_INDEX
. -
The student index refers to the index number shown in the displayed student list.
-
The student index must be a positive integer 1, 2, 3, …
-
The index cannot be more than number of displayed students on list.
Examples:
-
`addsub 1 s/Physics
Adds a subject "Physics" for the first student. -
`addsub 2 s/Mathematics
Adds a subject "Mathematics" for the second student.
Deletes a subject from a specified student.
Format: deletesub STUDENT_INDEX SUBJECT_INDEX
ℹ️
|
Attempting to delete the only subject left for a student will throw an error. A student must have at least one subject. |
-
Deletes a subject at the specified
SUBJECT_INDEX
for a student at the specifiedSTUDENT_INDEX
. -
The student index refers to the index number shown in the displayed student list.
-
The subject index refers to the index number shown in the student’s subject list.
-
The student index and subject index must be positive integers 1, 2, 3, …
-
The index cannot be more than number of displayed students on list.
Examples:
-
deletesub 1 2
Deletes the second subject from the first student. -
deletesub 3 1
Deletes the first subject from the third student.
Copies a subject and all its syllabus topics from a specified student to specified target student. Duplicate syllabus topics will not be added.
Format: copysub SOURCE_STUDENT_INDEX SUBJECT_INDEX TARGET_STUDENT_INDEX
💡
|
Use find command to display both the source and target student on the list.
|
-
Copies a subject (and all its syllabus topics) at the specified
SUBJECT_INDEX
from the student at the specifiedSOURCE_STUDENT_INDEX
to the student at the specifiedTARGET_STUDENT_INDEX
. -
The source and target student indexes refer to the index number shown in the displayed student list.
-
The subject index refers to the index number shown in the student’s subject list.
-
The subject index and source and target student indexes must be positive integers 1, 2, 3, …
-
The student index cannot be more than number of displayed students on list.
Examples:
-
copysub 1 1 2
Copies the first subject from the first student to the second student. -
copysub 1 2 3
Copies the second subject from the first student to the third student.
Adds new syllabuses topic for a specified student and subject.
Format: addsyll STUDENT_INDEX SUBJECT_INDEX sy/SYLLABUS, [MORE SYLLABUSES…]
ℹ️
|
|
-
Adds a new syllabus topic
SYLLABUS
for a subject at the specifiedSUBJECT_INDEX
for a student at the specifiedSTUDENT_INDEX
. -
The student index refers to the index number shown in the displayed student list.
-
The subject index refers to the index number shown in the student’s subject list.
-
The student index and subject index must be positive integers 1, 2, 3, …
-
The student index cannot be more than number of displayed students on list.
Examples:
-
addsyll 1 2 sy/Integration
Adds a syllabus topic "Integration" to the second subject of the first student. -
addsyll 3 2 sy/Poisson Distribution
Adds a syllabus topic "Poisson Distribution" to the second subject of the third student.
Removes a syllabus topic for a specified student and subject.
Format: deletesyll STUDENT_INDEX SUBJECT_INDEX SYLLABUS_INDEX
-
Removes a syllabus topic at the specified
SYLLABUS_INDEX
for a subject at the specifiedSUBJECT_INDEX
for a student at the specifiedSTUDENT_INDEX
. -
The student index refers to the index number shown in the displayed student list.
-
The subject index refers to the index number shown in the student’s subject list.
-
The syllabus index refers to the index number shown in the student’s list of syllabus topics for a subject.
-
The student index, subject index and syllabus index must be positive integers 1, 2, 3, …
-
The student index cannot be more than number of displayed students on list.
Examples:
-
deletesyll 1 1 2
Removes the second syllabus topic from the first subject of the first student. -
deletesyll 3 1 1
Removes the first syllabus topic from the first subject of the third student.
Edits a syllabus topic for a specified student and subject.
Format: editsyll STUDENT_INDEX SUBJECT_INDEX SYLLABUS_INDEX sy/SYLLABUS
ℹ️
|
Editing a syllabus topic will automatically unmark it. |
-
Edits a syllabus topic at the specified
SYLLABUS_INDEX
for a subject at the specifiedSUBJECT_INDEX
for a student at the specifiedSTUDENT_INDEX
. -
The student index refers to the index number shown in the displayed student list.
-
The subject index refers to the index number shown in the student’s subject list.
-
The syllabus index refers to the index number shown in the student’s list of syllabus topics for a subject.
-
The student index, subject index and syllabus index must be positive integers 1, 2, 3, …
-
The student index cannot be more than number of displayed students on list.
Examples:
-
editsyll 1 1 2 sy/Integration
Changes the second syllabus topic of the first subject of the first student to "Integration". -
editsyll 3 1 1 sy/Kinetic Energy
Changes the first syllabus topic of the first subject of the third student to "Kinetic Energy".
Toggles the state of a specified syllabus topic for a specified student and subject.
Format: mark STUDENT_INDEX SUBJECT_INDEX SYLLABUS_INDEX
-
Toggle the state of a syllabus topic at the specified
SYLLABUS_INDEX
for a subject at the specifiedSUBJECT_INDEX
for a student at the specifiedSTUDENT_INDEX
. -
The student index refers to the index number shown in the displayed student list.
-
The subject index refers to the index number shown in the student’s subject list.
-
The syllabus index refers to the index number shown in the student’s list of syllabus topics for a subject.
-
The student index, subject index and syllabus index must be positive integers 1, 2, 3, …
-
The student index cannot be more than number of displayed students on list.
Examples:
-
mark 1 1 3
Marks the third syllabus topic of the first subject of the first student. -
mark 2 1 2
Marks the second syllabus topic of the first subject of the second student.
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 TutorHelper folder.
-
View Help :
help
-
Add Student
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…
e.g.add n/James Ho p/22224444 e/[email protected] a/123, Clementi Rd, 1234665 t/friend t/colleague
-
Delete Student :
delete INDEX
e.g.delete 3
-
Edit Student :
edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…
e.g.edit 2 n/James Lee e/[email protected]
-
List Students :
list
-
Find Students :
find KEYWORD [MORE_KEYWORDS]
e.g.find James Jake
-
Group Students :
group TIMING
e.ggroup Monday
e.ggroup 12:00pm
-
Select Student :
select INDEX
e.g.select 2
-
List Command History :
history
-
Undo Command :
undo
-
Redo Command :
redo
-
Clear TutorHelper :
clear
-
Record Payment :
paid STUDENT_INDEX AMOUNT MONTH YEAR
e.g.paid 1 200 08 2018
-
Display Earnings :
earnings MONTH YEAR
e.g.earnings 01 2018
-
Add Subject :
addsub STUDENT_INDEX s/SUBJECT
e.g.addsub 1 s/Physics
-
Remove Subject :
deletesub STUDENT_INDEX SUBJECT_INDEX
e.g.deletesub 1 2
-
Copy Subject :
copysub SOURCE_STUDENT_INDEX SUBJECT_INDEX TARGET_STUDENT_INDEX
e.g.copysub 1 1 2
-
Add Syllabus Topic :
addsyll STUDENT_INDEX SUBJECT_INDEX sy/SYLLABUS, [MORE SYLLABUS…]
e.g.addsyll 1 2 sy/Integration
-
Remove Syllabus Topic :
deletesyll STUDENT_INDEX SUBJECT_INDEX SYLLABUS_INDEX
e.g.deletesyll 1 1 1
-
Edit Syllabus Topic :
editsyll STUDENT_INDEX SUBJECT_INDEX SYLLABUS_INDEX sy/SYLLABUS
e.g.editsyll 1 1 2 sy/Integration
-
Mark Syllabus Topic :
mark STUDENT_INDEX SUBJECT_INDEX SYLLABUS_INDEX
e.g.mark 1 1 1
-
Exit TutorHelper :
exit