-
Notifications
You must be signed in to change notification settings - Fork 434
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
101 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,7 +6,7 @@ title: User Guide | |
TutorPro is a **desktop app designed to help private tutors manage their student information effectively**. With TutorPro, tutors can easily keep track of their students' addresses, contact details, lessons, homework, and progress, all in one place. This app is optimized for use via a Graphical User Interface (GUI), allowing tutors to interact with the app using easy-to-understand buttons and menus. However, TutorPro also provides a Command Line Interface (CLI) for those who prefer a faster way of getting things done. Whether you're managing a handful of students or hundreds, TutorPro can help you streamline your workflow and make your tutoring experience more efficient. | ||
|
||
-------------------------------------------------------------------------------------------------------------------- | ||
* Table of Contents | ||
## Table of Contents | ||
{:toc} | ||
|
||
-------------------------------------------------------------------------------------------------------------------- | ||
|
@@ -30,33 +30,91 @@ TutorPro is a **desktop app designed to help private tutors manage their student | |
-------------------------------------------------------------------------------------------------------------------- | ||
### Glossary | ||
|
||
In the user guide, you may come across some terms you do not understand. The following table provides clarification | ||
of the terms commonly used in PetCode. | ||
|
||
| Term | Description | | ||
|:----------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| **Alphanumeric** | Digits and letters only. For example, `AB3`, `PetCode`, `coco123`, and `2103` are alphanumeric. `#01-04`, `[email protected]`, and `white spaces` are not. | | ||
| **Attribute** | Words that follow prefixes to describe properties, states, characteristics, and traits. Examples are price, weight, name, and order status. | | ||
| **Command** | A command is a specific instruction you can give to PetCode to perform an action. You can view the list of commands available [here](#command-summary). | | ||
| **Contact** | A contact is an information entry in PetCode. There are three types of contacts you can add - `Buyer`, `Supplier` and `Deliverer`. You can add a contact with the [`add` command](#adding-a-contact-or-item-add). | | ||
| **CLI** | Command-Line Interface (CLI) receives commands from a user in the form of lines of text. It refers to the input textbox in this context. | | ||
| **GUI** | GUI stands for Graphical User Interface. It refers to the display window of the PetCode application. | | ||
| **Index** | The index of the contact or item in the display list for contacts/items. | | ||
| **Integer** | Whole number | | ||
| **Parameter** | A parameter refers to the information you need to give to your command such that it can execute an action based on that information. <br/> For example, the [`list` command](#listing-contacts-or-items--list) requires a KEY parameter to know what kind of list to display. `list buyer` displays your list of buyers, where the KEY parameter is `buyer`. | | ||
| **Prefix** | A prefix indicates the kind of information you are keying in. You can view the list of prefixes available [here](#list-of-prefixes). | | ||
| **Whitespace** | An empty character, or a placeholder character ` `. | | ||
| **Student** | A `Student` whom the user (who is a tutor) teaches | | ||
| **Homework** | A `Homework` assignment whom the user (who is a tutor) has assigned to a `Student` | | ||
| **Lesson** | A `Lesson` that the user has scheduled with a `Student` | | ||
| **Exam** | An `Exam` that a Student is scheduled to sit for | | ||
You may come across some terms you do not understand in the user guide. The following table provides clarification of the terms commonly used in TutorPro. | ||
|
||
| Term | Description | | ||
| :--------------: | ------------------------------------------------------------ | | ||
| **Alphanumeric** | Digits and letters only. For example, `AB3`, `TutorPro`, `coco123`, and `2103` are alphanumeric. `#01-04`, `[email protected]`, and `white spaces` are not. | | ||
| **Attribute** | Words that follow prefixes to describe properties, states, characteristics, and traits. Examples are price, weight, name, and order status. | | ||
| **Command** | A command is a specific instruction you can give to TutorPro to perform an action. You can view the list of commands available [here](#command-summary). | | ||
| **Contact** | A contact is an information entry in TutorPro. There are three types of contacts you can add - `Buyer`, `Supplier`, and `Deliverer`. You can add a contact with the [`add` command](#adding-a-contact-or-item-add). | | ||
| **CLI** | Command-Line Interface (CLI) receives commands from a user in the form of lines of text. It refers to the input textbox in this context. | | ||
| **GUI** | GUI stands for Graphical User Interface. It refers to the display window of the TutorPro application. | | ||
| **Index** | The index of the contact or item in the display list for contacts/items. | | ||
| **Integer** | Whole number | | ||
| **Parameter** | A parameter refers to the information you need to give to your command such that it can execute an action based on that information. | | ||
| **Prefix** | A prefix indicates the kind of information you are keying in. You can view the list of prefixes available [here](#list-of-prefixes). | | ||
| **Whitespace** | An empty character, or a placeholder character. | | ||
| **Student** | A `Student` whom the user (who is a tutor) teaches | | ||
| **Homework** | A `Homework` assignment whom the user (who is a tutor) has assigned to a `Student` | | ||
| **Lesson** | A `Lesson` that the user has scheduled with a `Student` | | ||
| **Exam** | An `Exam` that a Student is scheduled to sit for | | ||
|
||
|
||
-------------------------------------------------------------------------------------------------------------------- | ||
## GUI | ||
When you first run the app, you may see a display window pop up similar to the one below. We call this window the **Main Window**. | ||
|
||
## Features | ||
 | ||
|
||
* The **Command Box** on the left bottom refers to the text field where you can type commands in. | ||
* The **Display List for Students** on the left top refers to the list of students you are currently displaying. | ||
* The **Detailed Information Section** on the right refers to the section where more specific information of the profile, homework, lessons, or exams of a particular sutden is displayed. | ||
|
||
You may enter the following commands in the Command Box to see how the Display List changes: | ||
* `list` lists all students. | ||
* `delete-b 1` deletes the student with index 1. | ||
* `view-homework` displays all the homework from all students. | ||
|
||
You may also click the quick access buttons one each student card to see how the Detailed Information Section changes. | ||
|
||
### Quick Access Buttons and Detailed Information Section | ||
Upon launching the application or executing a command, a welcome page will be displayed in the Detailed Information Section. | ||
Each Student card has four buttons, which are profile, homework, lessons, and exams. When a user clicks on any of the buttons, the corresponding information will be presented in the Detailed Information Section. | ||
#### Profile Page | ||
Upon clicking the Profile Button, the Detailed Information section will be refreshed and show the detailed particulars of the student, including the student's full name, phone number, address, and email. | ||
|
||
 | ||
|
||
#### Homework Page | ||
|
||
Upon clicking the Profile Button, the Detailed Information section will be refreshed and show the detailed homework information of the student. | ||
|
||
It includes a homework list, showing all the homework information. The icon on the left of each homework represents its status, with the tick icon being `completed` and the cross icon being `pending`. It also has a pie chart which represents ratio between completed and pending homework. | ||
|
||
 | ||
|
||
#### Lessons Page | ||
|
||
Upon clicking the Lessons Button, the Detailed Information section will be refreshed and show the detailed Lessons Information for the student. | ||
|
||
It includes a past lessons list, showing all the past lesson information and a upcoming lessons list, showing all the upcoming lessons. | ||
|
||
 | ||
|
||
#### Exams Page | ||
|
||
Upon clicking the Exams Button, the Detailed Information section will be refreshed and show the detailed Exams Information for the student. | ||
|
||
It includes a past exams list, showing all the past exams information and all the upcoming exams list, showing all the upcoming exams. | ||
|
||
 | ||
|
||
## Commands | ||
|
||
|
||
:information_source: **How to interpret the Command format:**<br> | ||
|
||
* The terms in `UPPER_CASE` are placeholders need to replace with your n values. For example, in the command `add n/NAME`, `NAME` is a placeholder that can be substituted with a specific name, such as `add n/John Doe`. | ||
|
||
* Items with `…` after them can be used multiple times including zero times.<br> | ||
e.g. `[name/STUDENT_NAME]…` can be used as ` ` (i.e. 0 times), `name/John Doe`, `name/John Doe name/Jane Ho` etc. | ||
|
||
* Extraneous parameters for commands that do not take in parameters (such as `help`, `exit,` and `clear`) will be ignored.<br> | ||
e.g. if the command specifies `help 123`, it will be interpreted as `help`. | ||
|
||
* Unless otherwise specified, the order of prefixes does not matter.<br> | ||
e.g. if the command specifies `n/NAME ph/PHONE_NUMBER`, `ph/PHONE_NUMBER n/NAME` is also acceptable unless stated otherwise in a particular command. | ||
|
||
### Create a new student profile | ||
|
||
|
@@ -94,29 +152,36 @@ Creates a homework assignment with a deadline for a student | |
Format: `new-homework [name/STUDENT_NAME] [homework/HOMEWORK_NAME] [deadline/DEADLINE]` | ||
|
||
* The `STUDENT_NAME` must be an existing student of the tutor. | ||
* The `DEADLINE` must be in the format given in the support date and time formats appendix. | ||
* The `DEADLINE` must be in the future. | ||
|
||
Examples: | ||
* `assign-homework name/John homework/listening comprehension ex1 deadline/02-12-2023-2359` adds the assignment `listening comprehension ex1` to the student named `John. The deadline is 02 Dec 2023 at 23:25. | ||
|
||
|
||
:exclamation: **Caution:** STUDENT_NAME, HOMEWORK_INDEX , and DEADLINE should all only appear at most once and should not be empty. | ||
|
||
|
||
### View the Homework of Students | ||
|
||
Displays a list of homework with the ability to filter by student name and homework status. | ||
|
||
Format: `view-homework [name/STUDENT_NAME] [status/STATUS]` | ||
Format: `view-homework [name/STUDENT_NAME]... [status/STATUS]` | ||
|
||
* By default, all homework will be displayed. | ||
* To view homework for a specific student, specify the name using `name/STUDENT_NAME`. | ||
* By default, all homework will be displayed, if no name or status parameter is provide. | ||
* To view homework for specific students, specify the name using `name/STUDENT_NAME`s. | ||
* To view homework with a specific status, specify the status using `status/STATUS`. | ||
* It is possible to filter by both student name and status simultaneously. | ||
* The available status values are `completed` and `pending`. | ||
|
||
Examples: | ||
* `view-homework` displays a list of all homework. | ||
* `view-homework name/John` displays homework for a student named `John`. | ||
* `view-homework status/completed` displays all completed homework. | ||
* `view-homework status/completed` displays all completed homework from all students. | ||
* `view-homework name/John status/pending` displays pending homework for a student named `John`. | ||
|
||
:exclamation: **Caution:** STATUS should only appear at most once and should not be empty. STUDENT_NAME can be zero or multiple but they all cannot be empty. | ||
|
||
### Delete Homework from a Student | ||
|
||
Deletes a homework assignment for a student. | ||
|
@@ -132,6 +197,8 @@ Examples: | |
* `delete-homework name/John index/1` deletes the first homework assignment for the student named John. | ||
* `delete-homework name/Susan index/3` deletes the third homework assignment for the student named Susan. | ||
|
||
:exclamation: **Caution:** STUDENT_NAME, and HOMEWORK_INDEX should all only appear at most once and should not be empty. | ||
|
||
### Mark the Homework of a Student as Done | ||
|
||
Marks homework of a student as done. | ||
|
@@ -147,6 +214,8 @@ Examples: | |
* `mark-homework name/John index/1` marks the first homework assignment for the student named John. | ||
* `mark-homework name/Susan index/3` marks the third homework assignment for the student named Susan. | ||
|
||
:exclamation: **Caution:** STUDENT_NAME, and HOMEWORK_INDEX should all only appear at most once and should not be empty. | ||
|
||
|
||
### Unmark Homework of a Student as Undone | ||
|
||
|
@@ -163,6 +232,7 @@ Examples: | |
* `unmark-homework name/John index/1`unmarks the first homework assignment for the student named John. | ||
* `unmark-homework name/Susan index/3` unmarks the third homework assignment for the student named Susan. | ||
|
||
:exclamation: **Caution:** STUDENT_NAME, and HOMEWORK_INDEX should all only appear at most once and should not be empty. | ||
|
||
### Update Homework of a Student | ||
|
||
|
@@ -172,7 +242,9 @@ Format: `update-homework [name/STUDENT_NAME] [index/HOMEWORK_INDEX] [homework/HO | |
|
||
* The `STUDENT_NAME` must be an existing student of the tutor. Note that there can only be one student's name. | ||
* The `HOMEWORK_INDEX` must be the index of an existing homework assignment for the specified student. | ||
* At least one homework name and deadline must be in the command. | ||
* The `DEADLINE` must be in the format given in the support date and time formats appendix. | ||
* The `DEADLINE` must be in the future. | ||
* At least one of homework name and deadline must be in the command. They cannot be absent concurrently. | ||
* A success message will be displayed if the homework assignment is successfully deleted. Otherwise, an error message will be displayed. | ||
|
||
Examples: | ||
|
@@ -181,6 +253,7 @@ Examples: | |
* `updates-homework name/Susan index/3 deadline/2023-05-12 23:59` updates the deadline of homework 3 of Susan to be `2023-05-12 23:59`. | ||
* `updates-homework name/Donald index/2 homework/Math Assignment 1 deadline/2023-05-12 23:59` updates the name of homework 2 of Donald to be `Math Assignment 1` and updates the deadline of homework 2 of Donald to be `2023-05-12 23:59`. | ||
|
||
:exclamation: **Caution:** STUDENT_NAME, HOMEWORK_INDEX , and DEADLINE should all only appear at most once and should not be empty. | ||
|
||
### Create a New Lesson Plan for the Upcoming Lesson | ||
|
||
|
@@ -335,7 +408,7 @@ Examples: | |
| `subject/` | Subject | Subject of a lesson | `subject/Mathematics` | | ||
| `done/` | Done | indicates if a lesson/exam is past the current time | `done/done` | | ||
|
||
### Supported date-time formats: | ||
### Supported date-time formats | ||
* `MMM dd yyyy HHmm` | ||
* `MMM dd yyyy HH:mm` | ||
* `yyyy-MM-dd'T'HH:mm ` | ||
|