Skip to content

Commit

Permalink
Merge pull request #164 from nananakx-x/branch-v1.4.5
Browse files Browse the repository at this point in the history
Update PPP
  • Loading branch information
butteredyakiimo authored Nov 13, 2023
2 parents f8b8cb2 + 614bbac commit 16ca4ba
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 17 deletions.
12 changes: 8 additions & 4 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@ Here is a step-by-step explanation of how the `Logic` component works when it us
1. The command can communicate with the `Model` when it is executed (e.g. to delete a person).
1. The result of the command execution is encapsulated as a `CommandResult` object which is returned back from `Logic` to `UI`.

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

Here is a step-by-step explanation of how the `Logic` component works when it uses `ViewModeParser`:

1. When `Logic` is called upon to execute a command, it is passed to an `ViewModeParser` object which in turn creates a `Command` object (e.g., `SaveCommand`).
Expand All @@ -144,6 +146,8 @@ Here are the other classes in `Logic` (omitted from the class diagram above) tha
* 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.

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

### Model component
**API** : [`Model.java`](https://github.com/AY2324S1-CS2103T-T13-4/tp/blob/master/src/main/java/seedu/address/model/Model.java)

Expand Down Expand Up @@ -365,6 +369,8 @@ Step 2. With `executeInView()`, `ViewModeParser` is used to parse the command te

![SaveSequenceDiagramStep2.png](images/SaveSequenceDiagramStep2.png)

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

Step 3. `EditFieldCommand` is executed, and `setPerson()` method from `Model` class is called with personToEdit and targetIndex obtained from `MainWindow` class.

![SaveSequenceDiagram.png](images/SaveSequenceDiagram.png)
Expand Down Expand Up @@ -434,8 +440,6 @@ Here are the justifications of why `SaveCommand` exits the profile page when add
* Pros: Easy to implement. Utilizes the current architecture and does not add additional coupling between `MainWindow` and `CommandBox`.
* Cons: May potentially cause errors since users may type in different commands.

<br>

### List feature

#### Implementation
Expand Down Expand Up @@ -538,7 +542,6 @@ Therefore, by ensuring that the user input indices are correctly parsed and vali
* Pros: Easy to implement.
* Cons: Overhead associated with the chain of delete commands should the user choose to perform multiple deletions.


### Sort feature
#### Implementation

Expand Down Expand Up @@ -590,7 +593,6 @@ The sort feature offers the user a choice to ensure that the list of fosterers i
* Pros: Offers an explicit and clear command for reverting to the original sorting of the address book list.
* Cons: Introduces additional commands, potentially leading to increased cognitive load for the users.


### Statistics feature
#### Implementation

Expand Down Expand Up @@ -861,6 +863,8 @@ required to read long error messages with details that might be irrelevant to th

--------------------------------------------------------------------------------------------------------------------

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

## **Documentation, logging, testing, configuration, dev-ops**

* [Documentation guide](Documentation.md)
Expand Down
27 changes: 14 additions & 13 deletions docs/team/nananakx-x.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,28 +22,27 @@ Given below are my contributions to the project.


* **Enhancements to existing features**: Allow for new fields like `housing`, `availability`, `animalName` and `animalType` to be added with a fosterer entry.
* What it does: Allows the foster manager to enter more essential fields/attributes related to a fosterer when the `add` command is executed. Extra blank spaces will be
ignored and in the case where duplicate fields are given, only the last one will be chosen.
* Justification: In the previous implementation, the foster manager can only add name, email, phone number and address of fosterers, which is not well-suited for the
* What it does: Allows the foster manager to enter more essential attributes related to a fosterer when the `add` command is executed.
* Justification: In the previous implementation, the foster manager can only add name, email, phone number and address which is not well-suited for the
needs of the target user since crucial information like housing type should also be taken into account, given the context of managing fosterers for cat and dog shelters.
* Highlights: This feature requires tweaks to the existing `Person` class, and also new classes to encapsulate the new attributes. Furthermore, the implementation was also
challenging when coming up with methods to check if the combination of data / data inputted is valid are implemented since there were multiples cases to consider. Failing to
identify some logical lapses at the initial stages of implementation, constant changes were made to improve on the checks and usefulness of error messages.
challenging when coming up with methods to check if the combination of data / data inputted is valid are implemented since there were multiples cases to consider. Constant
changes were made to improve on the checks and usefulness of error messages.
* Pull requests: [#63](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/63), [#73](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/73),
[#82](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/82)


* **Other enhancements to existing features**:
* Updated the UI for the person card such that the new fields are displayed according to the draft UI. (Pull requests:
[#63](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/63))
* Implemented checking methods to ensure that the fosterer entries are valid before they can be added. (Pull requests:
* Implemented checks to ensure that the fosterer entries are valid before they can be added. (Pull requests:
[#63](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/63), [#73](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/73),
[#82](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/82))
* Implemented error messages to guide the users on how to rectify the errors (which resulted in an invalid fosterer entry) so that the selected fosterer can be added
properly. (Pull requests: [#63](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/63), [#73](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/73),
* Implemented error messages to guide the users on how to rectify the errors which resulted in an invalid fosterer entry.
(Pull requests: [#63](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/63), [#73](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/73),
[#82](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/82))
* Improved on duplicate persons check such that it is now case-insensitive and multiple spaces between words will be ignored ("Anne Tay" is now the same person as
"anne tay" and "anne (multiple spaces) tay"). (Pull requests: [#91](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/91))
* Improved on duplicate persons check such that it is now case-insensitive and multiple spaces between words will be ignored.
(Pull requests: [#91](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/91))


* **Documentation**:
Expand All @@ -64,24 +63,26 @@ Given below are my contributions to the project.
* Added implementation details of the `sort` feature
* Added sequence diagram for `sort` feature
* Added user stories and use cases related to `add`, `sort` and `undo`
* Added non-functional requirements and instructions for manual testing of `add` and `sort`
* Added non-functional requirements and manual testing of `add` and `sort`
* Added planned enhancements for:
* Phone number input
* Preventing Foster Family from crashing due to corruption of data file
* Guide Users on How To Rectify / Preventing the Corruption of Data File
* Notes feature as a separate command
* Specificity of error messages

* Pull requests: [#30](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/30), [#48](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/48),
[#65](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/65), [#73](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/73),
[#82](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/82), [#91](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/91),
[#98](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/98), [#144](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/144),
[#147](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/147)
[#147](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/147), [#149](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/149),
[#161](https://github.com/AY2324S1-CS2103T-T13-4/tp/pull/161)


* **Project management**:
* Helped to set up the GitHub team org/repo, codecov and the project website
* Kept track of deliverables and deadlines
* Helped to maintain the issue tracker for milestones
* Helped with demo video


* **Community**:
Expand Down

0 comments on commit 16ca4ba

Please sign in to comment.