From 00210fb2f0a7bcda567ce21e7e830292afd82a07 Mon Sep 17 00:00:00 2001 From: Rui Shan Date: Sat, 11 Nov 2023 10:04:17 +0800 Subject: [PATCH 1/6] Update DG --- docs/DeveloperGuide.md | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index bac62aac33a..723f465160f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -176,6 +176,12 @@ The following sequence diagram shows how the above steps for add tutor operation ![AddTutorSequenceDiagram](images/AddTutorSequenceDiagram.png) +
+:information_source: **Note:** +The lifeline for `AddTutorCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, +the lifeline reaches the end of diagram. +
+ #### Design rationale {:.no_toc} @@ -1440,15 +1446,13 @@ testers are expected to do more *exploratory* testing. Adding a tutor while all tutors are being shown - 1. Prerequisites: List all tutors using the `list-t` command. Multiple tutors in the list. - - 2. Test case: `add-t n/John Doe p/98765432 e/johnd@example.com`
+ 1. Test case: `add-t n/John Doe p/98765432 e/johnd@example.com`
Expected: The tutor is added at the end of tutor list. Details of the added tutor shown in the status message. - 3. Test case: `add-t n/Jonny p/12345678`
+ 2. Test case: `add-t n/Jonny p/12345678`
Expected: No tutor is added. Error details shown in the status message. - 4. Other incorrect add tutor commands to try: `add-t`, `add-t n/abc`, `add-t n/abc p/1 e/abc@example.com`, + 3. Other incorrect add tutor commands to try: `add-t`, `add-t n/abc`, `add-t n/abc p/1 e/abc@example.com`, `add-t n/abc p/12345678 e/abc`
Expected: Similar to previous. @@ -1474,7 +1478,7 @@ Editing a tutor while all tutors are being shown 1. Prerequisites: List all tutors using the `list-t` command. Multiple tutors in the list. - 2. Test case: `edit-t 1 n/John Doe p/98765432 e/johnd@example.com`
+ 2. Test case: `edit-t 1 n/John Dong p/98765432 e/johnd@example.com`
Expected: First tutor's name, phone number and email updated in tutor list. Details of edited tutor shown in the status message. @@ -1519,7 +1523,7 @@ Finds a tutor while all tutors are being shown Adds a schedule while all schedules are being shown - 1. Prerequisites: List all schedules using the `list-s` command. At least 1 existing schedule in the list. + 1. Prerequisites: List all tutors using the `list-t` command. At least 1 existing tutor in the list. 2. Test case: `add-s 1 st/2023-05-05T09:00 et/2023-05-05T11:00`
Expected: New schedule for the first tutor in tutor list is added into the schedule list. Details of the added @@ -1539,7 +1543,7 @@ Edits a schedule while all schedules are being shown 1. Prerequisites: List all schedules using the `list-s` command. At least 1 existing schedule in the list. - 2. Test case: `edit-s 1 st/2023-05-05T09:00 et/2023-05-05T11:00`
+ 2. Test case: `edit-s 1 st/2023-05-05T11:00 et/2023-05-05T13:00`
Expected: First schedule start and end time updated. Details of edited schedule shown in the status message. 3. Test case: `edit-s 1 st/2023-05-05T05:00`
@@ -1617,7 +1621,7 @@ Marks a schedule as missed or completed while all schedules are being shown Unmarks a schedule while all schedules are being shown - 1. Prerequisites: List all schedules using the `list-s` command. At least 1 existing schedule in the list. + 1. Prerequisites: List all schedules using the `list-s` command. At least 1 existing marked schedule in the list. 2. Test case: `unmark 1`
Expected: Status of first schedule is removed. Details of the unmarked schedule is shown in the status message. @@ -1663,16 +1667,14 @@ Displays schedule on a specified day as a calendar view Changes the theme of TutorConnect - 1. Prerequisites: List all schedules using the `list-s` command. At least 1 existing schedule in the list. - - 2. Test case: `theme light`
+ 1. Test case: `theme light`
Expected: The theme of TutorConnect is changed to light colour scheme. Details of the changed theme is shown in the status message. - 3. Test case: `theme white`
+ 2. Test case: `theme white`
Expected: No theme change in TutorConnect. Error details shown in status message. - 4. Other incorrect theme commands to test: `theme`, `theme abc`, `theme Light` + 3. Other incorrect theme commands to test: `theme`, `theme abc`, `theme Light` Expected: Similar to previous. @@ -1797,7 +1799,7 @@ find and locate a particular schedule. The schedules would be sorted first by `StartTime`, then by `EndTime`, and finally alphabetically by the tutor's name. This would make the schedule list more organised, making it easier to use and navigate for the user. -### Help window flickering when displayed +### Help window opening animation fix After moving the help window to the left, subsequent display of the help window will have a flickering animation before the window settles in the center of the screen. From 852b6396613ed30d4856c9756d352618ca0f40e1 Mon Sep 17 00:00:00 2001 From: Rui Shan Date: Sat, 11 Nov 2023 11:29:47 +0800 Subject: [PATCH 2/6] Remove newline --- docs/DeveloperGuide.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 723f465160f..bb46e03fcaa 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1843,4 +1843,3 @@ not been assigned one of these statuses are categorised as unmarked, and it's im 2. This can be done by modifying `ListScheduleCommandParser.java` and `Status.java` to map an integer to enum `Status` that represents umarked status. 3. When `ListScheduleCommand:execute` runs, the command should accept another input from `m/` parameter that represents the umarked status, such as `m/u`. 4. Then `Model::updateFilteredScheduleList` will take in `StatusPredicate.java` to filter schedules based on unmarked status. - From d46cd9c32c6cfb8b7eccb09dc09969f419fb6745 Mon Sep 17 00:00:00 2001 From: Rui Shan Date: Sat, 11 Nov 2023 13:10:39 +0800 Subject: [PATCH 3/6] Update ThemeSequenceDiagram component name --- docs/diagrams/ChangeThemeSequenceDiagram.puml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/diagrams/ChangeThemeSequenceDiagram.puml b/docs/diagrams/ChangeThemeSequenceDiagram.puml index 194190aea57..eb026fe19e1 100644 --- a/docs/diagrams/ChangeThemeSequenceDiagram.puml +++ b/docs/diagrams/ChangeThemeSequenceDiagram.puml @@ -2,7 +2,7 @@ !include style.puml skinparam ArrowFontStyle plain box Ui UI_COLOR_T1 -participant ":Ui" as Ui UI_COLOR +participant ":MainWindow" as Ui UI_COLOR end box box Logic LOGIC_COLOR_T1 From 51aacbffb85c6dca2da8af647364bc2d8e2bb208 Mon Sep 17 00:00:00 2001 From: Rui Shan Date: Sat, 11 Nov 2023 16:29:17 +0800 Subject: [PATCH 4/6] Update planned enhancements and design rationale --- docs/DeveloperGuide.md | 79 ++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 38 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index bb46e03fcaa..ba2ded05841 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -784,6 +784,16 @@ the lifeline reaches the end of diagram. - Cons: Typing out schedule status in words are case-sensitive. This means that users need to accurately input the schedule status with the correct capitalization, which can add an extra layer of precision required from the user. +**Aspect: Number of `m/` tags accepted** +- **Alternative 1 (current choice):** Users input more than one `m/` tags and only the last `m/` tag is taken. + - Pros: Users who are fast typists can easily correct earlier mistakes without deleting text. + - Pros: There are less erroneous behaviours that will result in failure of the command (e.g. entering `m/0 m/0 + m/1` will result in the schedule being marked as `completed`, as opposed to encoutering an error). + - Cons: Some users may be confused about the behaviour of the command especially if tags provided are conflicting. +- **Alternative 2:** Users input only one `m/` tag. Multiple tags will result in an error. + - Pros: The command is unambiguous to use, since multiple (hence conflicting) tags are not accepted. + - Cons: It is inconvenient for fast typists to have to go back to previously typed commands to edit fields. + ### Unmark schedule feature The "Unmark Schedule" feature allows users to unmark a schedule that was previously marked as completed or missed. @@ -1678,6 +1688,14 @@ Changes the theme of TutorConnect Expected: Similar to previous. +
+ +:warning: **Manual edits to JSON file:** +For advanced users who wish to make manual edits to the JSON file, incorrect edits to the datafile can result in +unexpected behaviours. Please proceed only if you are confident. + +
+ ## **Appendix: Planned enhancements** Given below are the planned enhancements for future iterations of the app. @@ -1751,16 +1769,25 @@ prefix `d/` which will parse user input in the `yyyy-MM-dd` format into a `Date` For example, any command that uses the `st/` or `et/` prefix will now use `... d/yyyy-MM-dd st/HH:mm et/HH:m` instead. -### Enhance flexibility of datetime inputs -In the current implementation, users can only enter datetime in this `yyyy-MM-ddTHH:mm` format. This format can be -restrictive as it requires leading zeroes and `-` as a separator. To enhance user experience, the input for datetime -related parameters should be able to handle most frequently used formats like `2023/1/1` and `10:00pm`. +### Tutor and schedule information view +In the current implementation, tutors and schedules with long fields of over 40 characters are truncated. They can +be seen by resizing the window. To improve user experience, the information should be able to be viewed by users +without the window resizing. **Proposed implementation** -The parser handling date and time should be updated to handle different date and time formats. This can be achieved by -having a list of acceptable datetime formats and checking the users input against each one of them. If the user input -does not match any of the acceptable formats, we should throw a `ParseException`. +In the `PersonListCard` and `ScheduleListCard`, the column constraints should be removed. This will add a horizontal +scroll bar in the event the information to be displayed is too long. + +### Calendar row view +In the current implementation, schedule details cannot be viewed in the calendar for schedules that are shorter than +45min long. The additional details are truncated. These details cannot be viewed even with resizing the window and +can only be viewed in the `list-s` view. + +**Proposed implementation** + +In the `CalendarRow`, the column constraints should be removed. This will add a horizontal scroll bar in the event +the information to be displayed is too long. ### Switching back to list view from calendar view In the current system, when executing any commands, including actions like marking, unmarking, or deleting schedules @@ -1799,46 +1826,22 @@ find and locate a particular schedule. The schedules would be sorted first by `StartTime`, then by `EndTime`, and finally alphabetically by the tutor's name. This would make the schedule list more organised, making it easier to use and navigate for the user. -### Help window opening animation fix -After moving the help window to the left, subsequent display of the help window will have a flickering animation before -the window settles in the center of the screen. +### Accepting one input for theme change +In the current implementation, the `theme` command disregards any other input after the first. For example, `theme +dark blue` is regarded as `theme dark`. This may cause confusion for some users. **Proposed implementation** -In `HelpWindow.java`, the window should be centred on instantiation with `getRoot().centerOnScreen()`. -Additionally, the `show` method should be modified, to center first before showing the window, essentially swapping the -order of the two. - -### Allow partial name search for find command - -The `find-t` and `find-s` commands should allow users to search for tutors without having to input their full names. - -The current two `find` commands only allow searching for tutor when a full word in their names matches the user -input exactly. We plan to change search to match partial words instead of only a full word match. - -This would allow users to search for tutors without knowing the tutors' exact name. They can search using just a few -characters of the name. - -For example: `find-t john` will now match: `john`, `JOHN123` and `johnetta`. - -**Proposed implementation** - -A new method `containsPartialWordIgnoreCase` can be added in `StringUtil` that will be used by -`NameContainsKeywordsPredicate` and `TutorNameContainsKeywordsPredicate` to test for a match. - -This method will call `String::contains` instead of `String::equals` to match partial words too. - -Depending on the command prefix, the parse method of the `findTutorCommandParser` or `findScheduleCommandParser` will -create the `find` command object with the updated predicate. - -This would then be used in the `execute` method of the `find` command object to get the filtered tutor -or schedule list with part of their names matching the user input. +Within the parsing of the input in `ThemeCommandParser`, a `ParseException` would be thrown when more than one word +after the command word is detected. This means that `theme dark blue` would result in a `ParseException` and only one +word after the command word `theme` is accepted. ### List schedule by pending status In our current implementation, `list-s` only filters schedule by `COMPLETED` or `MISSED` status. Any schedules that have not been assigned one of these statuses are categorised as unmarked, and it's important to include them in the list-s results. **Proposed implementation**: + 1. Update `list-s` command and `m/` parameter value to accept an additional value for unmarked status to filter by, such as `m/u`. 2. This can be done by modifying `ListScheduleCommandParser.java` and `Status.java` to map an integer to enum `Status` that represents umarked status. 3. When `ListScheduleCommand:execute` runs, the command should accept another input from `m/` parameter that represents the umarked status, such as `m/u`. From 338bc8a5579f53e708ac11f413e4cbdfe2123f21 Mon Sep 17 00:00:00 2001 From: Rui Shan <111447603+ruishanteo@users.noreply.github.com> Date: Sat, 11 Nov 2023 17:19:01 +0800 Subject: [PATCH 5/6] Fix typo Co-authored-by: Jweng88 <108978684+Jweng88@users.noreply.github.com> --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index ba2ded05841..cc43c43478c 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -788,7 +788,7 @@ the lifeline reaches the end of diagram. - **Alternative 1 (current choice):** Users input more than one `m/` tags and only the last `m/` tag is taken. - Pros: Users who are fast typists can easily correct earlier mistakes without deleting text. - Pros: There are less erroneous behaviours that will result in failure of the command (e.g. entering `m/0 m/0 - m/1` will result in the schedule being marked as `completed`, as opposed to encoutering an error). + m/1` will result in the schedule being marked as `completed`, as opposed to encountering an error). - Cons: Some users may be confused about the behaviour of the command especially if tags provided are conflicting. - **Alternative 2:** Users input only one `m/` tag. Multiple tags will result in an error. - Pros: The command is unambiguous to use, since multiple (hence conflicting) tags are not accepted. From e288325d4eb8b3199944477dc35a59e6bf3db22a Mon Sep 17 00:00:00 2001 From: Rui Shan Date: Sun, 12 Nov 2023 09:21:14 +0800 Subject: [PATCH 6/6] Update theme change diagram --- docs/images/ChangeThemeSequenceDiagram.png | Bin 30478 -> 37135 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/ChangeThemeSequenceDiagram.png b/docs/images/ChangeThemeSequenceDiagram.png index 2bab26d2668ae3518272fe24bcb973839914cf01..01ba060c12148fdce67eb20fc19d171e26d45e97 100644 GIT binary patch literal 37135 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 CjcE4( literal 30478 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 eORj}Wn?)}97D=!-J_qIsQ@^C8oO$8;{r>?BE