diff --git a/README.md b/README.md index 69c4c04f42d..e1833ec5e2f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Tutor Connect +# Tutor Connect [![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/AY2324S1-CS2103T-T17-3/tp/actions) [![codecov](https://codecov.io/gh/AY2324S1-CS2103T-T17-3/tp/graph/badge.svg?token=CY67NSXKQZ)](https://codecov.io/gh/AY2324S1-CS2103T-T17-3/tp) @@ -31,7 +31,7 @@ To verify, perform the following steps: 3. Double click the jar file to launch the application. -> If you are a **Mac** user, you may encounter a warning that says the jar file cannot be opened because it is from an unidentified developer. +> If you are a **Mac** user, you may encounter a warning that says the jar file cannot be opened because it is from an unidentified developer. > To continue: > > i. **Right click** on the jar file and select `Open With > JavaLauncher (default)`. @@ -39,4 +39,4 @@ To verify, perform the following steps: > ii. Press **Open** when prompted. ## Acknowledgements -This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org). +This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org). diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 14db3800014..660314d50dc 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -352,7 +352,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3a1. TutorConnect shows an error message. Use case resumes at step 2. - + * 3b. The schedule parameters is invalid. * 3b1. TutorConnect shows an error message. @@ -430,7 +430,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3a1. TutorConnect shows an error message. Use case resumes at step 2. - + * 3b. The tutor information parameters is invalid. * 3b1. TutorConnect shows an error message. @@ -552,13 +552,13 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. Should work on any _mainstream OS_ as long as it has Java `11` installed. 2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. -3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. -4. Should work without requiring an installer -5. _GUI_ should work well for standard screen resolutions 1920x1080 and higher, and, for screen scales 100% and 125%. -6. _GUI_ should be usable for resolutions 1280x720 and higher, and, for screen scales 150%. -7. Should not require the user to have an internet connection to use. -8. Should be a single-user application. -9. Should persistently save data in a human-readable text file between sessions. +3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. +4. Should work without requiring an installer +5. _GUI_ should work well for standard screen resolutions 1920x1080 and higher, and, for screen scales 100% and 125%. +6. _GUI_ should be usable for resolutions 1280x720 and higher, and, for screen scales 150%. +7. Should not require the user to have an internet connection to use. +8. Should be a single-user application. +9. Should persistently save data in a human-readable text file between sessions. 10. Should be able to transfer the data file to another device with no loss of data. *{More to be added}* @@ -566,7 +566,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli ### Glossary * **Mainstream OS**: Windows, Linux, Unix, OS-X -* **Use case**: A description of a set of sequences of actions, including variants, that a system performs to yield an observable result of value to an actor +* **Use case**: A description of a set of sequences of actions, including variants, that a system performs to yield an observable result of value to an actor * **GUI**: Graphical user interface -------------------------------------------------------------------------------------------------------------------- diff --git a/docs/UserGuide.md b/docs/UserGuide.md index ea396352248..aec6f3e0ea7 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -50,11 +50,11 @@ On top of these functionalities, we believe that tuition centre management must ## Quick Start 1. Ensure you have Java `11` installed in your Computer. To verify, perform the following steps: - 1. Open a terminal. Refer to the following guides on how: - 1. [MacOS](https://support.apple.com/en-sg/guide/terminal/apd5265185d-f365-44cb-8b09-71a064a42125/mac#:~:text=Terminal%20for%20me-,Open%20Terminal,%2C%20then%20double%2Dclick%20Terminal) - 2. [Windows](https://www.howtogeek.com/235101/10-ways-to-open-the-command-prompt-in-windows-10/#:~:text=anywhere%20you%20like.-,Open%20Command%20Prompt%20from%20the%20Run%20Box,open%20an%20administrator%20Command%20Prompt) - 2. Type `java -version` and press Enter. - 3. If it says a version other than 11 or `command not found`, please install Java 11 by following this [guide](https://www.java.com/en/download/help/download_options.html). + 1. Open a terminal. Refer to the following guides on how: + 1. [MacOS](https://support.apple.com/en-sg/guide/terminal/apd5265185d-f365-44cb-8b09-71a064a42125/mac#:~:text=Terminal%20for%20me-,Open%20Terminal,%2C%20then%20double%2Dclick%20Terminal) + 2. [Windows](https://www.howtogeek.com/235101/10-ways-to-open-the-command-prompt-in-windows-10/#:~:text=anywhere%20you%20like.-,Open%20Command%20Prompt%20from%20the%20Run%20Box,open%20an%20administrator%20Command%20Prompt) + 2. Type `java -version` and press Enter. + 3. If it says a version other than 11 or `command not found`, please install Java 11 by following this [guide](https://www.java.com/en/download/help/download_options.html). 2. Download the latest jar file (tutorconnect.jar) from our [Github Releases](https://github.com/AY2324S1-CS2103T-T17-3/tp/releases). @@ -63,14 +63,14 @@ On top of these functionalities, we believe that tuition centre management must 4. Double-click the jar file to launch the application.
- - **:information_source: Mac Users**
- - If you are a Mac user, you may encounter a warning that says - the jar file cannot be opened because it is from an unidentified developer. To continue: - - 1. Right-click on the jar file and select `Open With > JavaLauncher (default)` - 2. Press Open when prompted + + **:information_source: Mac Users**
+ + If you are a Mac user, you may encounter a warning that says + the jar file cannot be opened because it is from an unidentified developer. To continue: + + 1. Right-click on the jar file and select `Open With > JavaLauncher (default)` + 2. Press Open when prompted
@@ -85,17 +85,17 @@ On top of these functionalities, we believe that tuition centre management must **:information_source: 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`. + 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`. + 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. + 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. -* Extraneous parameters for commands that do not take in parameters (such as `help`, `list`, `exit` and `clear`) + e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable. +* Extraneous parameters for commands that do not take in parameters (such as `help`, `list`, `exit` and `clear`) will be ignored.
- e.g. if the command specifies `help 123`, it will be interpreted as `help`. -* If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple + e.g. if the command specifies `help 123`, it will be interpreted as `help`. +* If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application. @@ -120,12 +120,12 @@ Adds a tutor to the address book. **Expected output**: * `New tutor John Doe 98765432 johnd@example.com has been added.` -**Error messages**: -* `Missing parameter: n/`: The tag n/ is missing or tutor’s name is missing. -* `Missing parameter: p/`: The tag p/ is missing or tutor’s phone number is missing. -* `Missing parameter: e/`: The tag e/ is missing or tutor’s email is missing. -* `Wrong input: n/`: The name entered is not a valid string. -* `Wrong input: p/`: The phone number entered does not consist of numbers only. +Error messages: +* `Missing parameter: n/`: The tag n/ is missing or tutor’s name is missing. +* `Missing parameter: p/`: The tag p/ is missing or tutor’s phone number is missing. +* `Missing parameter: e/`: The tag e/ is missing or tutor’s email is missing. +* `Wrong input: n/`: The name entered is not a valid string. +* `Wrong input: p/`: The phone number entered does not consist of numbers only. * `Wrong input: e/`: The email entered is invalid. ### Listing all tutors: `list-t` @@ -190,6 +190,29 @@ Find tutors whose names contain any of the given keywords. **Error messages**: * `Invalid command format!`: No search keyword provided. +### Deleting a tutor: `delete-t` + +Deletes a tutor in the address book based on their index number in the table. + +![delete tutor](images/deleteTutor.png) + +**Format**: `delete-t TUTOR_INDEX` + +**Examples**: +* `delete-t 5` deletes the tutor that is indexed as 5 in the address book. +* `list` followed by `delete-t 2` deletes the 2nd person in the address book. + +**Acceptable values for each parameter**: +* `TUTOR_INDEX`: Only accepts numerical value + +**Expected output**: +* `Tutor has been deleted: Alex Yeoh; Phone: 87438807; + Email: alexyeoh@example.com; Address: Blk 30 Geylang Street 29, #06-40` + +**Error messages**: +* `Index number given is out of range`: Given index is out of range. +* `Invalid parameter given`: Parameter given is not a numerical value. + ### Adding a schedule: `add-s` Adds a schedule to a specified tutor. @@ -208,9 +231,9 @@ Adds a schedule to a specified tutor. * `END_TIME`: Only datetime in `yyyy-MM-ddTHH:mm:ss` format is accepted
- - **:information_source: Information**
- + + **:information_source: Information**
+ * `yyyy` represents the **year** (e.g., 2023). * `MM` represents the **month** with a leading zero (e.g., 09 for September, 10 for October). * `dd` represents the **day** of the month with a leading zero (e.g., 03, 15). @@ -218,7 +241,7 @@ Adds a schedule to a specified tutor. * `HH` represents the **hour** in **24-hour format** with a leading zero (e.g., 09 for 9 AM, 21 for 9 PM). * `mm` represents the **minutes** with a leading zero (e.g., 05). * `ss` represents the **seconds** with a leading zero (e.g., 05). - +
**Expected output**: @@ -233,33 +256,30 @@ Adds a schedule to a specified tutor. * `Wrong input: s/`: The start time entered is not in datetime format. * `Wrong input: e/`: The end time entered is not in datetime format.. -### Deleting a tutor: `delete-t` +### Deleting a schedule: `delete-s` -Deletes a tutor in the address book based on their index number in the table. +Deletes a schedule in the address book based on their index number in the table of schedules listed. -![delete tutor](images/deleteTutor.png) +![delete schedule](images/deleteSchedule.png) -**Format**: `delete-t TUTOR_INDEX` +**Format:** `delete-s SCHEDULE_INDEX` -**Examples**: -* `delete-t 5` deletes the tutor that is indexed as 5 in the address book. -* `list` followed by `delete-t 2` deletes the 2nd tutor in the address book. +**Example:** +* `delete-s 5` deletes the schedule that is indexed as 5 in the schedule list. +* `list` followed by `delete-s 2` deletes the 2nd schedule in the schedule list. -**Acceptable values for each parameter**: -* `TUTOR_INDEX`: Only accepts numerical value +**Acceptable values for each parameter:** +* `SCHEDULE_INDEX`: NUMBER Only numerical input that ranges from 1 to the last schedule shown in the list of schedules. -**Expected output**: -* `Tutor has been deleted: Bernice Yu; Phone: 99272758; - Email: alexyeoh@example.com` +**Expected output:** +* `Schedule has been deleted: Tutor: John Doe; Start date: Sep 15, 2023 09:00; End date: Sep 15, 2023 11:00;` -**Error messages**: +**Error messages:** * `Index number given is out of range`: Given index is out of range. -* `Invalid parameter given`: Parameter given is not a numerical value. - - - +* `Invalid value in parameter SCHEDULE_INDEX`: Parameter given is not a numerical value. +* `Missing parameter SCHEDULE_INDEX`: A numerical value is not provided when calling the command `delete-s`. -_Details coming soon ..._ +_More details coming soon ..._ -------------------------------------------------------------------------------------------------------------------- @@ -278,13 +298,14 @@ _Details coming soon ..._ ## Command summary -| Action | Format, Examples | -|------------------|-----------------------------------------------------------------------------------------------------------------------------| -| **Add Tutor** | `add-t n/NAME p/PHONE NUMBER e/EMAIL`
e.g., `add-t n/John Doe p/98765432 e/johnd@example.com` | -| **Add Schedule** | `add-s ti/TUTOR_INDEX s/START_TIME e/END_TIME`
e.g., `add-s ti/1 s/2023-09-15T09:00:00 e/2023-09-15T11:00:00` | -| **Clear** | `clear` | -| **Delete Tutor** | `delete-t TUTOR_INDEX`
e.g., `delete-t 3` | -| **Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…​`
e.g.,`edit 2 n/James Lee e/jameslee@example.com` | -| **Find** | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find James Jake` | -| **List Tutor** | `list-t` | -| **Help** | `help` | +| Action | Format, Examples | +|---------------------|-----------------------------------------------------------------------------------------------------------------------------| +| **Add Tutor** | `add-t n/NAME p/PHONE NUMBER e/EMAIL`
e.g., `add-t n/John Doe p/98765432 e/johnd@example.com` | +| **List Tutor** | `list-t` | +| **Delete Tutor** | `delete-t TUTOR_INDEX`
e.g., `delete-t 3` | +| **Add Schedule** | `add-s ti/TUTOR_INDEX s/START_TIME e/END_TIME`
e.g., `add-s ti/1 s/2023-09-15T09:00:00 e/2023-09-15T11:00:00` | +| **List Schedule** | `list-s` | +| **Delete Schedule** | `delete-s INDEX_NO`
e.g., `delete-s 3` | +| **Clear** | `clear` | +| **Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…​`
e.g.,`edit 2 n/James Lee e/jameslee@example.com` | +| **Find** | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find James Jake` | diff --git a/docs/images/deleteSchedule.png b/docs/images/deleteSchedule.png new file mode 100644 index 00000000000..58492e8f1b8 Binary files /dev/null and b/docs/images/deleteSchedule.png differ