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
1. Introduction
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.
2. Quick Start
- 
Ensure you have Java version 9or later installed in your Computer.
- 
Download the latest version of TutorHelperhere.
- 
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. typinghelpand pressing Enter will open the help window.
- 
Some example commands you can try: - 
list: lists all contacts
- 
addn/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 s/Mathematics d/Monday 12:00pm: adds a student namedJohn Doeto the TutorHelper.
- 
delete3: deletes the 3rd contact shown in the current list
- 
exit: exits the app
 
- 
- 
Refer to Section 4, “Features” for details of each command. 
3. Valid Inputs
3.1. Index
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.
3.2. Name
Name should only contain alphabetical characters and spaces, and should not be blank.
3.3. Phone
Phone numbers should only be 8 digits long and should not contain spaces.
3.4. Email
- 
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. 
 
- 
3.5. Subjects
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, orbiowill match withBiology.
- 
iologywill not match willBiologyas the match does not start from the beginning.
- 
Mawill not matchMathematicsbecause the length of subtring is shorter than three.
- 
phywill only matchPhysicsand will not matchGeographyas matching is done from the beginning of the string.
- 
Mathswill not matchMathematicsas it is not a full substring match.
- 
History Literaturewill not match anything as it contains more than 1 word.
3.6. TuitionTiming
The days of the week are case sensitive and the valid inputs are:
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
- 
The time should follow the 12-hour clock (e.g. 12:00pm) 
4. Features
Command Format
- 
Words in UPPER_CASEare the parameters to be supplied by the user e.g. inadd n/NAME,NAMEis 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/friendor 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/familyetc.
- 
Parameters can be in any order e.g. if the command specifies n/NAME p/PHONE_NUMBER,p/PHONE_NUMBER n/NAMEis also acceptable.
4.1. View Help : help
Format: help
4.2. Add Student: add
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. | 
Examples:
- 
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01, s/Mathematics d/Monday 6:00pm
- 
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01, s/Mathematics s/* d/Monday 6:00pmwill fail due to one invalid subject.
4.3. Delete Student : delete
Deletes the specified student from the TutorHelper.
Format: delete INDEX
Examples:
- 
list
 delete 2
 Deletes the 2nd student in the TutorHelper.
- 
find Betsy
 delete 1
 Deletes the 1st student in the results of thefindcommand.
4.4. Edit Student : edit
Edits an existing student in the TutorHelper.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [s/SUBJECT] [d/TIMING] [t/TAG]…
Examples:
- 
edit 1 p/91234567 e/johndoe@example.com
 Edits the phone number and email address of the 1st student to be91234567andjohndoe@example.comrespectively.
- 
edit 2 n/Betsy Crower t/
 Edits the name of the 2nd student to beBetsy Crowerand clears all existing tags.
4.5. List Students : list
Shows a list of all students in the TutorHelper.
Format: list
4.6. Find Students : find
Finds students whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
Examples:
- 
find John
 ReturnsjohnandJohn Doe
- 
find Betsy Tim John
 Returns any student having namesBetsy,Tim, orJohn
4.7. Group Students : group
Lists all students with the specified tuition timing.
User can choose to group by time or day of the week.
Format: group TIMING
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.
4.8. Select Student : select
Selects the student identified by the index number used in the displayed student list.
Format: select INDEX
Examples:
- 
list
 select 2
 Selects the 2nd student in the TutorHelper.
- 
find Betsy
 select 1
 Selects the 1st student in the results of thefindcommand.
4.9. List Command History : history
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. | 
4.10. Undo Command : undo
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 1command)
- 
select 1
 list
 undo
 Theundocommand fails as there are no undoable commands executed previously.
- 
delete 1
 clear
 undo(reverses theclearcommand)
 undo(reverses thedelete 1command)
4.11. Redo Command : redo
Reverses the most recent undo command.
Format: redo
Examples:
- 
delete 1
 undo(reverses thedelete 1command)
 redo(reapplies thedelete 1command)
- 
delete 1
 redo
 Theredocommand fails as there are noundocommands executed previously.
- 
delete 1
 clear
 undo(reverses theclearcommand)
 undo(reverses thedelete 1command)
 redo(reapplies thedelete 1command)
 redo(reapplies theclearcommand)
4.12. Clear TutorHelper : clear
Clears all student records from the TutorHelper.
Format: clear
4.13. Record Payment : paid
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
| 
 | 
Examples:
- 
paid 1 200 01 2018
 Records a payment of $200 made for January 2018, or overwrites the existing payment entry for January 2018.
4.14. Display Earnings : earnings
Displays total earnings across all students for a specified month of a specified year.
Format: earnings MONTH YEAR
Examples:
- 
earnings 01 2018
 Displays earnings made for January 2018.
4.15. Add Subject : addsub
Adds a new subject to a specified student. Refer to valid subject inputs under 3. Feature.
Format: addsub STUDENT_INDEX s/SUBJECT
| 
 | 
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.
4.16. Delete Subject : deletesub
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. | 
Examples:
- 
deletesub 1 2
 Deletes the second subject from the first student.
- 
deletesub 3 1
 Deletes the first subject from the third student.
4.17. Copy Subject : copysub
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 findcommand to display both the source and target student on the 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.
4.18. Add Syllabus Topic : addsyll
Adds new syllabuses topic for a specified student and subject.
Format: addsyll STUDENT_INDEX SUBJECT_INDEX sy/SYLLABUS, [MORE SYLLABUSES…]
| 
 | 
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.
4.19. Remove Syllabus Topic : deletesyll
Removes a syllabus topic for a specified student and subject.
Format: deletesyll STUDENT_INDEX SUBJECT_INDEX SYLLABUS_INDEX
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.
4.20. Edit Syllabus Topic : editsyll
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. | 
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".
4.21. Mark Syllabus Topic : mark
Toggles the state of a specified syllabus topic for a specified student and subject.
Format: mark STUDENT_INDEX SUBJECT_INDEX SYLLABUS_INDEX
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.
4.22. Exit Program : exit
Exits the program.
Format: exit
4.23. Save Data
TutorHelper data is saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
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 TutorHelper folder.
6. Command Summary
- 
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/jamesho@example.com 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/jameslee@example.com
- 
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