Skip to content

Commit

Permalink
Update UG GUI
Browse files Browse the repository at this point in the history
  • Loading branch information
Yufannnn committed Mar 30, 2023
1 parent ef57d61 commit 44eca33
Showing 1 changed file with 101 additions and 28 deletions.
129 changes: 101 additions & 28 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -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}

--------------------------------------------------------------------------------------------------------------------
Expand All @@ -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
![Starting Display Window](images/GUI.jpg)

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

![Starting Display Window](images/Profile.jpg)

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

![Starting Display Window](images/Homework.jpg)

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

![Starting Display Window](images/Lessons.jpg)

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

![Starting Display Window](images/Exams.jpg)

## 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

Expand Down Expand Up @@ -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.
Expand All @@ -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.
Expand All @@ -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

Expand All @@ -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

Expand All @@ -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:
Expand All @@ -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

Expand Down Expand Up @@ -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 `
Expand Down

0 comments on commit 44eca33

Please sign in to comment.