Skip to content
This repository has been archived by the owner on Sep 14, 2023. It is now read-only.

Commit

Permalink
Merge pull request #232 from JrmCkh/add-break-dg-branch
Browse files Browse the repository at this point in the history
Add break dg branch
  • Loading branch information
JrmCkh authored Apr 10, 2023
2 parents 0be2264 + 5193aad commit e4a377a
Showing 1 changed file with 43 additions and 1 deletion.
44 changes: 43 additions & 1 deletion docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ Refer to the [_PlantUML Tutorial_ at se-edu/guides](https://se-education.org/gui
to learn how to create and edit diagrams.
</div>

<div style="page-break-after: always;"></div>

[MainClass]: https://github.com/AY2223S2-CS2103-W17-3/tp/blob/master/src/main/java/ezschedule/Main.java
[MainAppClass]: https://github.com/AY2223S2-CS2103-W17-3/tp/blob/master/src/main/java/ezschedule/MainApp.java
[UiClass]: https://github.com/AY2223S2-CS2103-W17-3/tp/blob/master/src/main/java/ezschedule/ui/Ui.java
Expand All @@ -42,6 +44,7 @@ to learn how to create and edit diagrams.
[ModelClass]: https://github.com/AY2223S2-CS2103-W17-3/tp/blob/master/src/main/java/ezschedule/model/Model.java
[StorageClass]: https://github.com/AY2223S2-CS2103-W17-3/tp/blob/master/src/main/java/ezschedule/storage/Storage.java


### **Architecture**

<img src="images/ArchitectureDiagram.png" width="280" />
Expand All @@ -66,6 +69,8 @@ The rest of the App consists of four components.
* [**`Model`**](#model-component): Holds the data of the App in memory.
* [**`Storage`**](#storage-component): Reads data from, and writes data to, the hard disk.

<div style="page-break-after: always;"></div>

### **How the Architecture Components Interact With Each**

The _Sequence Diagram_ below shows how the components interact with each other for the scenario where the user issues
Expand All @@ -86,6 +91,8 @@ implementation of a component), as illustrated in the (partial) class diagram be

<img src="images/ComponentManagers.png" width="300" />

<div style="page-break-after: always;"></div>

### **UI Component**

**API** : [`Ui.java`][UiClass]
Expand All @@ -107,6 +114,8 @@ The `UI` component,
* 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 `Event` object residing in the `Model`.

<div style="page-break-after: always;"></div>

### **Logic Component**

**API** : [`Logic.java`][LogicClass]
Expand All @@ -131,6 +140,8 @@ The lifeline for `DeleteCommandParser` should end at the destroy marker (X) but
the lifeline reaches the end of diagram.
</div>

<div style="page-break-after: always;"></div>

Here are the other classes in `Logic` (omitted from the class diagram above) that are used for parsing a user command:

<img src="images/ParserClasses.png" width="600" />
Expand All @@ -139,6 +150,8 @@ How the parsing works:
* When called upon to parse a user command, the `SchedulerParser` 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.

<div style="page-break-after: always;"></div>

### **Model Component**

**API** : [`Model.java`][ModelClass]
Expand All @@ -156,6 +169,8 @@ The `Model` component,
* does not depend on any of the other three components (as the `Model` represents data entities of the domain,
they should make sense on their own without depending on other components)

<div style="page-break-after: always;"></div>

### **Storage Component**

**API** : [`Storage.java`][StorageClass]
Expand All @@ -172,6 +187,8 @@ The `Storage` component,

Classes used by multiple components are in the `ezschedule.commons` package.

<div style="page-break-after: always;"></div>

## **Implementation**

--------------------------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -220,6 +237,8 @@ The execution can be seen in the activity diagram given below.
_Activity Diagram for a typical `add` command_
![AddCommandActivityDiagram.png](images/AddCommandActivityDiagram.png)

<div style="page-break-after: always;"></div>

### **Recur Command**

[RecurCommand.java]: https://github.com/AY2223S2-CS2103-W17-3/tp/blob/master/src/main/java/ezschedule/logic/commands/RecurCommand.java
Expand Down Expand Up @@ -265,6 +284,8 @@ _Activity Diagram for a typical `recur` command_
_Activity: Check for time clash for all recurring dates._
![RecurCommandRecurringAddActivityDiagram.png](images/RecurCommandRecurringAddActivityDiagram.png)

<div style="page-break-after: always;"></div>

### **Edit Command**

[EditCommand.java]: https://github.com/AY2223S2-CS2103-W17-3/tp/blob/master/src/main/java/ezschedule/logic/commands/EditCommand.java
Expand Down Expand Up @@ -306,6 +327,8 @@ The execution can be seen in the activity diagram given below.
_Activity Diagram for a typical `edit` command_
![EditCommandActivityDiagram.png](images/EditCommandActivityDiagram.png)

<div style="page-break-after: always;"></div>

### **Delete Command**

[DeleteCommandParserClass]: https://github.com/AY2223S2-CS2103-W17-3/tp/blob/master/src/main/java/ezschedule/logic/parser/DeleteCommandParser.java
Expand Down Expand Up @@ -343,6 +366,7 @@ Other alternative path of execution can be traced in the activity diagram below.
_Activity Diagram for a typical `delete` command_
![DeleteCommandActivityDiagram.png](images/DeleteCommandActivityDiagram.png)

<div style="page-break-after: always;"></div>

### **Find Command**

Expand Down Expand Up @@ -383,6 +407,8 @@ The execution can be seen in the activity diagram given below.
_Activity Diagram for a typical `find` command_
![FindCommandActivityDiagram.png](images/FindCommandActivityDiagram.png)

<div style="page-break-after: always;"></div>

### **Next Command**

[ShowNextCommandParserClass]: https://github.com/AY2223S2-CS2103-W17-3/tp/blob/master/src/main/java/ezschedule/logic/parser/ShowNextCommandParser.java
Expand Down Expand Up @@ -432,10 +458,11 @@ Other alternative path of execution can be traced in the activity diagram below.
_Activity Diagram for a typical `next` command_
![NextCommandActivityDiagram.png](images/NextCommandActivityDiagram.png)


[ListChangeListener]: https://docs.oracle.com/javase/8/javafx/api/javafx/collections/ListChangeListener.html
[`ListChangeListener.Change`]: https://docs.oracle.com/javase/8/javafx/api/javafx/collections/ListChangeListener.Change.html

<div style="page-break-after: always;"></div>

### **Undo Command**

[UndoCommand.java]: https://github.com/AY2223S2-CS2103-W17-3/tp/blob/master/src/main/java/ezschedule/logic/commands/UndoCommand.java
Expand Down Expand Up @@ -467,6 +494,7 @@ The execution can be seen in the activity diagram given below.
_Activity Diagram for a typical `undo` command_
![UndoCommandActivityDiagram.png](images/UndoCommandActivityDiagram.png)

<div style="page-break-after: always;"></div>

## **Documentation, Logging, Testing, Configuration, Dev-Ops**

Expand All @@ -489,6 +517,7 @@ _Activity Diagram for a typical `undo` command_
* **Ongoing Event**: An event that has started, but not ended
* **Upcoming Event**: An event that has not started

<div style="page-break-after: always;"></div>

## **Appendices**

Expand Down Expand Up @@ -532,6 +561,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
| `* *` | user | edit my schedule | make changes to events |
| `* *` | busy user | be able to schedule many events | schedule as many events as I want |

<div style="page-break-after: always;"></div>

#### **Use Cases**

(For all use cases below, the **System** is the `EZ-Schedule` and the **Actor** is the `user`, unless specified otherwise)
Expand Down Expand Up @@ -715,6 +746,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

</details>

<div style="page-break-after: always;"></div>

#### **Non-Functional Requirements**

1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed.
Expand Down Expand Up @@ -779,6 +812,8 @@ An example is given below.
If users are interested in knowing more about the events,
they can use the `find` command or click on the calendar date box to view the event details.

<div style="page-break-after: always;"></div>

**Increase flexibility in event names**

Currently, event names only support alphanumeric characters and spaces.
Expand All @@ -788,6 +823,8 @@ special characters such as brackets, colons, and dashes.
We plan to increase the number of characters supported in event names.
However, certain characters such as `/` and `\` will not be supported as they may potentially cause conflicts

<div style="page-break-after: always;"></div>

### **Appendix C: Instructions for Manual Testing**

Presented below are a series of instructions, organized in **Context, Action, Result (CAR)** format,
Expand Down Expand Up @@ -872,6 +909,8 @@ testers are expected to do more *exploratory* testing.
* The `Event` will be added repeatedly until the specified end date
* Details of all the `Event` is also added to the Events Panel and the Calendar

<div style="page-break-after: always;"></div>

#### Scenario 2
{: .no_toc}
**Context:** Another `Event` already exist in the recurring time frame specified by the `Event` being added
Expand Down Expand Up @@ -945,6 +984,8 @@ testers are expected to do more *exploratory* testing.
* The Events Panel will be updated to display only those `Event` whose `Name` includes the word Tennis
* The Calendar will highlight all the date boxes that correspond to days on which the found `Event` are scheduled

<div style="page-break-after: always;"></div>

#### Scenario 2
{: .no_toc}
**Context:** There exists at least one `Event` whose `Name` partially matches the word 'Ten'
Expand Down Expand Up @@ -1049,6 +1090,7 @@ testers are expected to do more *exploratory* testing.
* The Response Box will display the message "Action undone: delete"
* The `Event` with index 1 that was deleted is added back into _Ez-Schedule_

<div style="page-break-after: always;"></div>

### **Appendix D: Effort**

Expand Down

0 comments on commit e4a377a

Please sign in to comment.