### UI component
@@ -84,6 +87,7 @@ The `UI` component,
* listens for changes to `Model` data so that the UI can be updated with the modified data.
* keeps a reference to the `Logic` component, because the `UI` relies on the `Logic` to execute commands.
* depends on some classes in the `Model` component, as it displays `Person` object residing in the `Model`.
+
### Logic component
@@ -118,6 +122,7 @@ Here are the other classes in `Logic` (omitted from the class diagram above) tha
How the parsing works:
* When called upon to parse a user command, the `AddressBookParser` class creates an `XYZCommandParser` (`XYZ` is a placeholder for the specific command name e.g., `AddCommandParser`) which uses the other classes shown above to parse the user command and create a `XYZCommand` object (e.g., `AddCommand`) which the `AddressBookParser` returns back as a `Command` object.
* All `XYZCommandParser` classes (e.g., `AddCommandParser`, `DeleteCommandParser`, ...) inherit from the `Parser` interface so that they can be treated similarly where possible e.g, during testing.
+
### Model component
@@ -159,6 +164,7 @@ The `Storage` component,
Classes used by multiple components are in the `seedu.addressbook.commons` package.
--------------------------------------------------------------------------------------------------------------------
+
## **Implementation**
@@ -174,6 +180,8 @@ The following activity diagram summarizes what happens when a user executes the
+
+
### Edit Schedule feature
The following sequence diagram shows how an add schedule operation goes through the Logic component:
@@ -182,6 +190,8 @@ The following activity diagram summarizes what happens when a user executes the
+
+
### Delete Schedule feature
The following sequence diagram shows how an add schedule operation goes through the Logic component:
@@ -189,6 +199,8 @@ The following sequence diagram shows how an add schedule operation goes through
The following activity diagram summarizes what happens when a user executes the deleteSched command:
+
+
### \[Proposed\] Undo/redo feature
#### Proposed Implementation
@@ -233,6 +245,8 @@ than attempting to perform the undo.
+
+
The following sequence diagram shows how an undo operation goes through the `Logic` component:
@@ -266,6 +280,7 @@ Step 6. The user executes `clear`, which calls `Model#commitAddressBook()`. Sinc
The following activity diagram summarizes what happens when a user executes a new command:
+
#### Design considerations:
@@ -289,6 +304,7 @@ _{Explain here how the data archiving feature will be implemented}_
--------------------------------------------------------------------------------------------------------------------
+
## **Documentation, logging, testing, configuration, dev-ops**
@@ -301,6 +317,8 @@ _{Explain here how the data archiving feature will be implemented}_
--------------------------------------------------------------------------------------------------------------------
+
+
## **Appendix: Requirements**
### Product scope
@@ -355,6 +373,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
| `*` | international student | know my groupmates’ schedules to better arrange my flights (to avoid missing any meeting)| successfully accommodate my travel plans. |
| `*` | introverted NUS student |arrange meetings with my new groupmates without interacting with them| comfortably initiate group collaboration and fulfil project requirements. |
+
+
### Use cases
(For all use cases below, the **System** is the `Moddie` and the **Actor** is the `user`, unless specified otherwise)
@@ -452,6 +472,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
Use case ends.
+
**Use case: UC06 - Help**
@@ -526,6 +547,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
Use case ends.
+
+
**Use case UC09 - Delete a schedule**
**MSS**
@@ -604,7 +627,6 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
-
### Non-Functional Requirements
1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed.
@@ -620,6 +642,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
* **Private contact detail**: A contact detail that is not meant to be shared with others
* **Module**: A slot in the day used for lesson
--------------------------------------------------------------------------------------------------------------------
+
## **Appendix: Instructions for manual testing**
@@ -706,6 +729,8 @@ testers are expected to do more *exploratory* testing.
1. Other incorrect addSched commands to try: `addSched`, `addSched x s/..`, `...` (where x is larger than the list size)
Expected: Similar to previous.
+
+
1. Adding a schedule while some persons are being shown
1. Prerequisites: List some persons using the `find` command. Multiple persons in the contact list, but less
@@ -735,6 +760,8 @@ testers are expected to do more *exploratory* testing.
1. Other incorrect addSched commands: all previous incorrect addSched applies here
+
+
### Editing a schedule
1. Editing a schedule while all persons are being shown
@@ -778,6 +805,8 @@ testers are expected to do more *exploratory* testing.
1. Other incorrect editSched commands to try: `editSched`, `editSched x schedule/x`, `...` (where x is larger than the list size)
Expected: Similar to previous.
+
+
1. Editing a schedule while some persons are being shown
1. Prerequisites: List some persons using the `find` command. Multiple persons in the contact list, but less
@@ -821,6 +850,7 @@ testers are expected to do more *exploratory* testing.
The error is because schedule index is out of range
1. Other incorrect editSched commands: all previous incorrect editSched applies here
+
### Deleting a schedule
@@ -861,6 +891,8 @@ testers are expected to do more *exploratory* testing.
1. Other incorrect deleteSched commands: all previous incorrect deleteSched applies here
+
+
1. Deleting a schedule while no persons are being shown
1. Prerequisites: List no persons using the `find` command. No person in the contact list. Assume there are 6 contacts in the entire contact list,