By: W13-4 Since: September 2018 Licence: MIT

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

  1. Ensure you have Java version 9 or later installed in your Computer.

  2. Download the latest version of TutorHelper here.

  3. Copy the file to the folder you want to use as the home folder for your TutorHelper.

  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 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 named John Doe to the TutorHelper.

    • delete3 : deletes the 3rd contact shown in the current list

    • exit : exits the app

  7. 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, or bio will match with Biology.

  • iology will not match will Biology as the match does not start from the beginning.

  • Ma will not match Mathematics because the length of subtring is shorter than three.

  • phy will only match Physics and will not match Geography as matching is done from the beginning of the string.

  • Maths will not match Mathematics as it is not a full substring match.

  • History Literature will 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_CASE are the parameters to be supplied by the user e.g. in add n/NAME, NAME is a parameter which can be used as add n/John Doe.

  • Items in square brackets are optional e.g n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.

  • Items with ​ after them can be used multiple times including zero times e.g. [t/TAG]…​ can be used as   (i.e. 0 times), t/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.

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.
  • 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/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:00pm will fail due to one invalid subject.

4.3. Delete Student : delete

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 the find command.

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]…​

  • 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/johndoe@example.com
    Edits the phone number and email address of the 1st student to be 91234567 and johndoe@example.com respectively.

  • edit 2 n/Betsy Crower t/
    Edits the name of the 2nd student to be Betsy Crower and 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]

  • 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

  • Students 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 student having names Betsy, Tim, or John

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

  • 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 but MONDAY isn’t

  • The time entered must be in 12hr format. e.g. 12:00pm is valid but 1200 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.

4.8. Select Student : select

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 the find command.

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 (add, delete, edit, clear, addsyll, deletesyll, and copysub).

Examples:

  • delete 1
    list
    undo (reverses the delete 1 command)

  • select 1
    list
    undo
    The undo command fails as there are no undoable commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)

4.11. Redo Command : redo

Reverses the most recent undo command.
Format: redo

Examples:

  • delete 1
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)

  • delete 1
    redo
    The redo command fails as there are no undo commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)
    redo (reapplies the clear command)

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

  • If a payment entry already exists, the amount will replace the existing payment record.

  • The maximum payment amount allowable is 10 000 each time.

  • Only positive integers are accepted as payment amount.

  • Only the 5 latest payments will be displayed each time.

  • Records a payment of a specified AMOUNT for the student at the specified STUDENT_INDEX, for a specified MONTH and YEAR.

  • 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.

4.14. Display Earnings : earnings

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 specified YEAR.

  • The month and year must be positive integers 1, 2, 3, …​

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

  • Adding a subject that already exists for the student will throw an error.

  • Only one subject can be added to a student per command.

  • Adds a new subject SUBJECT for a student at the specified STUDENT_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.

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.

  • Deletes a subject at the specified SUBJECT_INDEX for a student at the specified STUDENT_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.

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 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 specified SOURCE_STUDENT_INDEX to the student at the specified TARGET_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.

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…​]

  • Adding a syllabus topic that already exists under the subject will throw an error.

  • Adding syllabuses of the same topic in a single input will throw an error.
    e.g addsyll 1 1 sy/Calculus sy/Calculus is not permitted.

  • Adds a new syllabus topic SYLLABUS for a subject at the specified SUBJECT_INDEX for a student at the specified STUDENT_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.

4.19. Remove Syllabus Topic : deletesyll

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 specified SUBJECT_INDEX for a student at the specified STUDENT_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.

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.

  • Edits a syllabus topic at the specified SYLLABUS_INDEX for a subject at the specified SUBJECT_INDEX for a student at the specified STUDENT_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".

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

  • Toggle the state of a syllabus topic at the specified SYLLABUS_INDEX for a subject at the specified SUBJECT_INDEX for a student at the specified STUDENT_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.

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.g group Monday
    e.g group 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