By: Team W12-4 Since: Aug 2018 Licence: MIT

1. Introduction

EazyTutors is an application for tutors or teachers who prefer a virtual way to manage a class of students. It allows users to mark students' attendance, as well as checking on students' individual progress. This helps users customise their teaching to students with different capabilities. It boasts extra features such as calculating the class statistics and assignment statistics. EazyTutors is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). You won’t need to bring around attendance sheets anymore with EazyTutors! Interested? Jump to Section 2, “Quick Start” to get started. Enjoy!

2. Quick Start

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

  2. Copy the file to the folder you want to use as the home folder for EazyTutors.

  3. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
  4. 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.

  5. Some example commands you can try:

    • addn/John Doe p/999 e/police@hotmail.com t/cops: Adds a contact named John Doe to the student list

    • select1: views the details of the 1st student shown in the student list

    • delete3 : deletes the 3rd student shown in the student list

    • exit : exits the app

  6. Refer to Section 3, “Features” for details of each command.

3. 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 if all the parameters have prefixes e.g. if the command specifies n/NAME p/PHONE_NUMBER, p/PHONE_NUMBER n/NAME is also acceptable.

3.1. Viewing help : help

Shows all commands available with examples. Format: help

3.2. Adding a student: add

Adds a student at the specified index in the list with a compulsory name. The rest of the details (index at list to add him to, phone number, email and tags) are optional.
Format: add n/NAME [p/PHONE_NUMBER e/EMAIL a/ADDRESS s/INDEX t/TAG…​]

Students are added to the bottom of the student list by default.
A student can have multiple tags (or none).
Whitespace between different parameters do not affect the result, such as between s/1 and n/John Doe.

Examples:

  • add n/John Doe p/98765432 e/johnd@example.com t/CS2103 (Added to the bottom of the student list as index not specified)

  • add n/Betsy Crowe s/1 e/betsycrowe@example.com t/CS2103T (The order of the parameters can be swapped around as all parameters have prefixes)

3.3. Listing all students : list

Shows the list of all students in the student list. Format: list

3.4. Locating students by name : 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

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

3.5. Clearing all entries : clear

Clears all data from application.
Format: clear

3.6. Deleting a student : delete

Deletes a student from the student list.
Format: delete INDEX

  • There can be any number of spaces between delete and 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, …​

Examples:

  • delete 2
    Deletes the 2nd person in the student list.

3.7. Selecting a student : select

Selects the student identified by the index number used in the displayed student list. Format: select INDEX

  • Selects the student and loads the Google search page 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, …​

Examples:

  • list
    select 2
    Selects the 2nd student in the student list.

  • find Betsy
    select 1
    Selects the 1st student in the results of the find command.

3.8. Adding a profile photo : addphoto

Adds a profile photo to a student

Format: addphoto INDEX f/FILENAME

  • Adds a photo at location FILENAME to person at the specified INDEX. The index refers to the index number shown in the last person listing. The index must be a positive integer 1, 2, 3, …​

  • FILENAME must point to a valid image file.

  • This feature isn’t compatible with MAC OS X at the moment.

  • Do not delete photos from storage (EzTutor File) at this point since doing so may trigger some undesirable behaviour in the program.

  • File size of photo should be less than 5MB.

Examples:

  • addphoto 1 f/C:\\Users\Zackk95\Pictures\zacharytan.jpg
    Edits the profile photo of the 1st person to be the picture at C:\\Users\Zackk95\Pictures\zacharytan.jpg

  • Important to take note the double backslash after C.

3.9. Deleting a student’s photo: deleteProfilePhoto

Delete a student’s photo and sets it to the default photo.
Format: deleteProfilePhoto INDEX

  • Will delete a student’s photo and set it to the default photo.

  • This command is irreversible!

Examples:

  • deleteProfilePhoto 1
    Delete the photo of the person at index 1 and set it to the default photo.

3.10. Undoing previous command : undo

Restores the student list to the state before the previous undoable command was executed.
Format: undo

Undoable commands: those commands that modify the student list’s content (add, delete, edit, sort, addAssignment, deleteAssignment, editAssignment, markAssignment, attend, note, delnote, editnote, addphoto, deleteProfilePhoto and clear).

Examples:

  • delete 1
    select 2 undo (reverses the delete 1 command)

  • results
    select 1
    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)

3.11. Redoing the previously undone command : redo

Reverses the most recent undo command only if the last command is undo.
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)

3.12. Exiting the program : exit

Exits the program.
Format: exit

3.13. Add a lesson: addLesson

Adds a lesson to the list of lessons in the address book.
Format: addLesson n/NAME d/DATE

  • Adds a lesson to all students in the class (i.e the students is the address book), with the name of the lesson, NAME and when the session was held, DATE.

  • NAME should be a String.

  • DATE should follow the format DD/MM/YYYY.

  • Cannot be undone/redone.

addLesson
Figure 1. Add Lesson

3.14. Mark a student’s attendance: attend

Creates an attendance entry for the person identified by the index number used in the displayed person list.
Format: attend INDEX id/SESSION_INDEX at/ATTENDANCE

  • Marks a student’s attendance, ATTENDANCE as 1, for present, 0 for absent, given the index of the student in the address book, INDEX, index of the lesson, SESSION_INDEX

  • INDEX should be a positive integer.

  • SESSION_INDEX should be a positive integer.

  • ATTENDANCE should be either 1 or 0.

  • Cannot be undone/redone.

attend
Figure 2. Mark Attendance

3.15. Delete a session: deleteAttendance

Deletes a lesson from the list of lessons in the address book.
Format: deleteAttendance id/SESSION_INDEX

  • Deletes a lesson from the list of lessons in the address book with the input index, SESSION_INDEX.

  • SESSION_INDEX should be a positive integer.

  • Cannot be undone/redone.

deleteAttendance
Figure 3. Delete Lesson

3.16. Edit a session: editLesson

Edits the name and date of an existing lesson.
Format: editLesson id/SESSION_INDEX n/UPDATED_NAME d/UPDATED_DATE

  • Edits the name and/or date of an existing lesson in the list of lessons in the addressbook, replacing them with UPDATED_NAME and/or UPDATED_DATE respectively.

  • UPDATED_NAME should be a String.

  • UPDATED_DATE should follow the format DD/MM/YYYY.

  • Cannot be undone/redone.

editLesson
Figure 4. Edit Lesson

3.17. Sort the student list: sort

Sort the student list by alphabetical order.
Format: sort

3.18. Add an assignment: addAssignment

Adds an assignment with given assignment name, weight, deadline, maximum mark.
Format: addAssignment n/ASSIGNMENTNAME w/WEIGHT d/DEADLINE m/MAX_MARK

3.19. Delete an assignment: deleteAssignment

Delete an assignment with given assignment index.
Format: deleteAssignment INDEX

3.20. Edit an assignment: editAssignment

Edit an existing assignment with specified informations. Format: editAssignment INDEX [n/ASSIGNMENTNAME] [w/WEIGHT] [d/DEADLINE] [m/MAX_MARK]

3.21. Sort all assignment: sortAssignment

Sort all assignment by deadline.
Format: sortAssignment

3.22. Record a mark for a student: markAssignment

Adds a mark for an assignment associated with a student given the mark obtained. Can mark more than maxMark in case of bonus score.
Format: markAssignment STUDENT_INDEX id/ASSIGNMENT_INDEX m/MARK

3.23. Display the statistics for the marks of an assignment: assignmentStats

Displays the number of submissions and the maximum, highest, lowest, 25th/75th percentiles, average, and median mark for the specified assignment.
Format: assignmentStats ASSIGNMENT_INDEX

assignment stats
Figure 5. Assignment Statistics

3.24. Display the statistics for the total grades of the students in the class: classStats

Displays the number of students and the maximum, highest, lowest, 25th/75th percentiles, average, and median total grade.
Format: classStats

class stats
Figure 6. Class Statistics

3.25. Editing a student: edit

Edits an existing student in the student list.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [t/TAG]…​

  • Edits the person 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, …​

  • 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 person will be removed i.e adding of tags is not cumulative.

  • You can remove all the person’s tags by typing t/ without specifying any tags after it.

Examples:

  • edit 1 p/91234567 e/johndoe@example.com
    Edits the phone number and email address of the 1st person to be 91234567 and johndoe@example.com respectively.

  • edit 2 n/Betsy Crower t/
    Edits the name of the 2nd person to be Betsy Crower and clears all existing tags.

3.26. Viewing command history : history

Lists all the commands that you have entered in reverse chronological order.
Format: history

3.27. Add a note about a student : note

Attaches a note with specified text to a student in the student list specified by his/her index.
Format: note INDEX TEXT

  • Any added note is automatically ended with a full stop unless the input TEXT ends with either ., ! or ?.

  • If a note is added to a student who already has a previous note, the previous note is changed to end with a comma before the new text is appended to the back.

TEXT should not begin with a whitespace but alphanumeric and special characters are allowed.

Examples:

  • note 1 hardworking student
    Student at 1st index’s note:

    userGuide noteExample

    note 1 motivated too!
    Student at 1st index’s note:

    userGuide noteExample2

3.28. Delete a student’s note : delnote

Deletes the corresponding note of the student at the specified index.
Format: delnote INDEX

  • There can be any number of spaces between delnote and INDEX.

An empty note cannot be deleted!

Examples:

  • delnote 2 (Deletes the note of the 2nd student shown, is invalid if there is less than 2 students in the shown student list.)

3.29. Edits the note of a student : editnote

Sets the corresponding note of the student at the specified index to text. Refer to Section 3.27, “Add a note about a student : note for details on text.
Format: editnote INDEX TEXT

An empty note cannot be edited!

Examples:

  • note 2 check finals mark addition?
    Student at 2nd index’s note:

    userGuide editnoteExample

    editnote 2 marks checked.
    Student at 2nd index’s note:

    userGuide editnoteExample3

    delnote 2
    Student at 2nd index’s note:

    userGuide editnoteExample4

Pressing the and arrows will display the previous and next input respectively in the command box.

4. Command Summary

  • Add : add n/NAME [p/PHONE_NUMBER e/EMAIL s/INDEX t/TAG…​]
    e.g. add n/James Ho s/1 p/22224444 e/jamesho@example.com t/friend t/colleague

  • AddAssignment : addAssignment n/NAME w/WEIGHT d/DEADLINE m/MAX_MARK
    e.g. addAssignment n/Assignment 1 w/15 d/14/10/2019 m/100

  • AddLesson : addLesson n/NAME d/DATE
    e.g. addLesson n/Tutorial 1 d/11/11/2018

  • AssignmentStats : assignmentStats ASSIGNMENT_INDEX
    e.g. assignmentStats 1

  • Attend : attend INDEX id/SESSION_INDEX at/ATTENDANCE
    e.g. attend 1 id/1 at/1

  • ClassStats : classStats

  • Clear : clear

  • Delete : delete INDEX
    e.g. delete 3

  • DeleteAssignment : deleteAssignment INDEX
    e.g. deleteAssignment 3

  • DeleteAttendance : deleteAttendance id/SESSION_INDEX
    e.g. deleteAttendance id/1

  • Delnote : delnote INDEX
    e.g. delnote 2

  • Edit : edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG]…​
    e.g. edit 2 n/James Lee e/jameslee@example.com

  • EditAssignment : editAssignment INDEX [n/NAME] [w/WEIGHT] [d/DEADLINE] [m/MAXMARK]
    e.g. edit 2 n/Assignment3 w/40

  • EditLesson : editLesson id/SESSION_INDEX n/UPDATED_NAME d/UPDATED_DATE
    e.g. editLesson id/1 n/Tutorial 2 d/12/12/2018

  • Editnote : editnote INDEX TEXT
    e.g. editnote 1 Consult changed to 3pm

  • Exit : exit

  • Find : find KEYWORD [MORE_KEYWORDS] e.g. `find James Jake

  • Help : help

  • History : history

  • List : list

  • MarkAssignment : markAssignment INDEX id/ASSIGNMENT_INDEX m/MARK
    e.g. markAssignment 1 id/1 m/53

  • Note : note INDEX TEXT
    e.g. note 4 Good student

  • Redo : redo

  • Select : select INDEX e.g. select 2

  • Sort : sort

  • SortAssignment : sortAssignment <<<<<<< HEAD

  • Unattend : unattend INDEX at/CLASSNAME {Coming in v2.0} >>>>>>> caf11e4085ee854c8ebf7ffb10759b4d7fbf7e6a

  • Undo : undo