Skip to content

Commit

Permalink
Add line breaks
Browse files Browse the repository at this point in the history
  • Loading branch information
tllshan committed Nov 13, 2023
1 parent 909c9a7 commit 72199bd
Showing 1 changed file with 62 additions and 3 deletions.
65 changes: 62 additions & 3 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ For example, the `Logic` component defines its API in the `Logic.java` interface

The sections below give more details of each component.

<br>

### 3.2. UI component

The **API** of this component is specified in [`Ui.java`](https://github.com/AY2324S1-CS2103T-F11-2/tp/tree/master/src/main/java/wedlog/address/ui/Ui.java)
Expand All @@ -138,6 +140,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 `Person` object residing in the `Model`.

<br>

### 3.3. Logic component

**API** : [`Logic.java`](https://github.com/AY2324S1-CS2103T-F11-2/tp/tree/master/src/main/java/wedlog/address/logic/Logic.java)
Expand Down Expand Up @@ -171,6 +175,8 @@ How the parsing works:
* When called upon to parse a user command, the `AddressBookParser` class creates a `GuestCommandParser` or `VendorCommandParser` depending on the command. This class then creates an `XYZCommandParser` (`XYZ` is a placeholder for the specific command name e.g., `GuestAddCommandParser`) which uses the other classes shown above to parse the user command and create a `XYZCommand` object (e.g., `GuestAddCommand`) which the `AddressBookParser` returns back as a `Command` object.
* All `XYZCommandParser` classes (e.g., `GuestAddCommandParser`, `VendorDeleteCommandParser`, ...) inherit from the `Parser` interface so that they can be treated similarly where possible e.g, during testing.

<br>

### 3.4. Model component
**API** : [`Model.java`](https://github.com/AY2324S1-CS2103T-F11-2/tp/tree/master/src/main/java/wedlog/address/model/Model.java)

Expand All @@ -192,6 +198,7 @@ The `Model` component,

</box>

<br>

### 3.5. Storage component

Expand All @@ -204,6 +211,8 @@ The `Storage` component,
* inherits from both `AddressBookStorage` and `UserPrefStorage`, which means it can be treated as either one (if only the functionality of only one is needed).
* depends on some classes in the `Model` component (because the `Storage` component's job is to save/retrieve objects that belong to the `Model`)

<br>

### 3.6. Common classes

Classes used by multiple components are in the `wedlog.addressbook.commons` package.
Expand Down Expand Up @@ -240,13 +249,14 @@ A `TableNumber` object stores a table number as an integer. It is wrapped in an
* Pros: Allows for greater flexibility in implementing features that are specific to either guests or vendors.
* Cons: More code duplication.

<<<<<<< HEAD
<br>

### 4.2. Add Guest and Vendor feature

#### Implementation

The add feature allows users to add new guests or vendors with the compulsory field `Name`, along with any of the optional
fields mentioned in the [Tracking of Guests and Vendors](#tracking-of-guests-and-vendors) section. The feature is implemented through the
fields mentioned in the [Tracking of Guests and Vendors](#4-1-tracking-of-guests-and-vendors) section. The feature is implemented through the
classes `GuestAddCommand` and `VendorAddCommand`. The implementation of the various classes facilitating the add feature
on `Guest` and `Vendor` objects differ only in specifics that are not relevant here, so the keywords `Guest` and `Vendor` will be
replaced by `XYZ` (e.g. `XYZAddCommand` can be substituted with both `GuestAddCommand` and `VendorAddCommand`).
Expand All @@ -273,6 +283,7 @@ user input and convert it into field objects (e.g. string representing a new nam
Step 5. Lastly, `XYZAddCommand#execute` adds a `XYZ` with the given values to the `UniqueXYZList`.
<puml src="diagrams/AddExecuteSequenceDiagram.puml" alt="AddExecuteSequenceDiagram" />

<br>

### 4.3. Delete Guest and Vendor feature

Expand Down Expand Up @@ -306,6 +317,8 @@ Step 5. The resulting `XYZDeleteCommand` is then executed by the `Logic Manager`
* Pros: User refers to displayed list for index of persons
* Cons: Index of a person changes with each filter or list command

<br>

### 4.4. Filter Guest and Vendor feature

The implementation of the `filter` command allows the user to view a filtered list for both guests and vendors.
Expand Down Expand Up @@ -358,6 +371,8 @@ Step 5. A list view of only the guest with name John is returned.
**Note: The guest with name "Johnathan" is not returned due to the words in the name not matching the keyword "John"**
**However, a guest with name "John doe" would be returned as his name contains the "John" word.**

<br>

### 4.5. Edit Guest and Vendor feature

#### Implementation
Expand Down Expand Up @@ -409,6 +424,8 @@ The `EditXYZDescriptor` describes if the `XYZ` fields should be modified, delete
* Pros: Code is more intuitive and no need to keep track of states
* Cons: Many classes must be created

<br>

### 4.6. Undo/redo feature

#### Proposed Implementation
Expand Down Expand Up @@ -496,6 +513,8 @@ The following activity diagram summarizes what happens when a user executes a ne
* Pros: Will use less memory (e.g. for `delete`, just save the person being deleted).
* Cons: We must ensure that the implementation of each individual command are correct.

<br>

### 4.7. \[Proposed\] Data archiving

_{Explain here how the data archiving feature will be implemented}_
Expand Down Expand Up @@ -529,6 +548,7 @@ A bride or groom who
**Value proposition**: consolidate all information related to wedding guests and vendors into 1 platform for
streamlined planning.

<br>

### 6.2. User stories

Expand Down Expand Up @@ -572,6 +592,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
| `*` | experienced user | share my address book with another user | plan the wedding together with my partner |
| `*` | experienced user | add custom fields for guests | keep track of miscellaneous information specific to my wedding |

<br>

### 6.3. Use cases
(For all use cases below, the **System** is the `WedLog` and the **Actor** is the `user`, unless specified otherwise)
Expand All @@ -598,6 +619,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
<br>*a. At any time, user inputs an invalid command/syntax.
<br><span>&nbsp;&nbsp;&nbsp;&nbsp;*a1. WedLog shows an error message.</span>

<br>

<ins>**Use case: UC2 - Delete a guest**</ins>

**MSS:**
Expand All @@ -616,6 +639,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
<br>*a. At any time, user inputs an invalid command/syntax.
<br><span>&nbsp;&nbsp;&nbsp;&nbsp;*a1. WedLog shows an error message.</span>

<br>

<ins>**Use case: UC3 - View all guests**</ins>

**MSS:**
Expand All @@ -627,6 +652,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
<br>*a. At any time, user inputs an invalid command/syntax.
<br><span>&nbsp;&nbsp;&nbsp;&nbsp;*a1. WedLog shows an error message.</span>

<br>

<ins>**Use case: UC4 - View a specific guest**</ins>

**MSS:**
Expand All @@ -643,6 +670,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
<br>*a. At any time, user inputs an invalid command/syntax.
<br><span>&nbsp;&nbsp;&nbsp;&nbsp;*a1. WedLog shows an error message.</span>

<br>

<ins>**Use case: UC5 - Add a vendor**</ins>

**MSS:**
Expand All @@ -665,6 +694,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
<br>*a. At any time, user inputs an invalid command/syntax.
<br><span>&nbsp;&nbsp;&nbsp;&nbsp;*a1. WedLog shows an error message.</span>

<br>

<ins>**Use case: UC6 - Delete a vendor**</ins>

**MSS:**
Expand All @@ -683,6 +714,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
<br>*a. At any time, user inputs an invalid command/syntax.
<br><span>&nbsp;&nbsp;&nbsp;&nbsp;*a1. WedLog shows an error message.</span>

<br>

<ins>**Use case: UC7 - View all vendors**</ins>

**MSS:**
Expand All @@ -694,6 +727,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
<br>*a. At any time, user inputs an invalid command/syntax
<br><span>&nbsp;&nbsp;&nbsp;&nbsp;*a1. WedLog shows an error message.</span>

<br>

<ins>**Use case: UC8 - View a specific vendor**</ins>

**MSS:**
Expand All @@ -710,6 +745,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
<br>*a. At any time, user inputs an invalid command/syntax.
<br><span>&nbsp;&nbsp;&nbsp;&nbsp;*a1. WedLog shows an error message.</span>

<br>

### 6.4. Non-functional requirements

1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed.
Expand All @@ -722,6 +759,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
8. Should provide clear and user-friendly error messages, guiding users on how to rectify issues.
9. Should log errors for analysis and debugging.

<br>

### 6.5. Glossary

* **Mainstream OS**: Windows, Linux, Unix, MacOS
Expand Down Expand Up @@ -757,7 +796,9 @@ testers are expected to do more *exploratory* testing.

2. Re-launch the app by double-clicking the `.jar` file.<br>
Expected: The most recent window size and location is retained.


<br>

### 7.2. Loading data

Prerequisites: Before launching the application, open the `data` folder.
Expand All @@ -772,6 +813,8 @@ Prerequisites: Before launching the application, open the `data` folder.
3. Corrupt the `data/addressbook.json` file <br>
Expected: Upon app launch, the app has no guests or vendors populated.

<br>

### 7.3. Adding guests

1. Adding a guest: `guest add n/John Doe` <br>
Expand All @@ -783,6 +826,8 @@ Prerequisites: Before launching the application, open the `data` folder.
3. Adding a guest with an invalid RSVP status: `guest add n/John Doe r/invalid` <br>
Expected: No guest is added, and an error message is shown.

<br>

### 7.4. Deleting guests

Prerequisites: List all guests using the `guest list` command. There should be at least 3, but less than 10,000 guests in the list.
Expand All @@ -796,6 +841,8 @@ Prerequisites: List all guests using the `guest list` command. There should be a
3. Deleting a guest with an invalid index: `guest delete 0` <br>
Expected: No guest is deleted, and an error message is shown.

<br>

### 7.5. Editing guests

Prerequisites: List all guests using the `guest list` command. There should be at least 3, but less than 10,000 guests in the list.
Expand All @@ -815,6 +862,8 @@ Prerequisites: List all guests using the `guest list` command. There should be a
5. Editing a guest that does not exist: `guest edit 10000` <br>
Expected: No guest is edited, and an error message is shown.

<br>

### 7.6. Filtering guests

Prerequisites: There should be multiple guests in the list.
Expand All @@ -828,6 +877,8 @@ Prerequisites: There should be multiple guests in the list.
3. Filter guests without specifying fields: `guest filter` <br>
Expected: The vendor list remains unchanged, and an error message is shown.

<br>

### 7.7. Adding vendors

1. Adding a vendor: `vendor add n/John Doe` <br>
Expand All @@ -839,6 +890,8 @@ Prerequisites: There should be multiple guests in the list.
3. Adding a vendor with an invalid email: `vendor add n/John e/invalidemail` <br>
Expected: No vendor is added, and an error message is shown.

<br>

### 7.8. Deleting vendors

Prerequisites: List all vendors using the `vendor list` command. There should be at least 3, but less than 10,000 vendors in the list.
Expand All @@ -852,6 +905,8 @@ Prerequisites: List all vendors using the `vendor list` command. There should be
3. Deleting a vendor with an invalid index: `vendor delete 0` <br>
Expected: No vendor is deleted, and an error message is shown.

<br>

### 7.9. Editing vendors

Prerequisites: List all vendors using the `vendor list` command. There should be at least 3, but less than 10,000 vendors in the list.
Expand All @@ -871,6 +926,8 @@ Prerequisites: List all vendors using the `vendor list` command. There should be
5. Editing a vendor that does not exist: `vendor edit 10000` <br>
Expected: No vendor is edited, and an error message is shown.

<br>

### 7.10. Filtering vendors

Prerequisites: There should be multiple vendors in the list.
Expand All @@ -884,6 +941,8 @@ Prerequisites: There should be multiple vendors in the list.
3. Filter vendors without specifying fields: `vendor filter` <br>
Expected: The vendor list remains unchanged, and an error message is shown.

<br>

### 7.11. Clearing all guests and vendors

Prerequisites: There should be at least one guest or vendor in the application.
Expand Down

0 comments on commit 72199bd

Please sign in to comment.