Skip to content

Commit

Permalink
Merge pull request #204 from cindyangXQ/dg-ppp-ug
Browse files Browse the repository at this point in the history
Update documentation
  • Loading branch information
cindyangXQ authored Apr 11, 2022
2 parents c879d03 + 0e6901c commit f97e2ad
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 44 deletions.
73 changes: 65 additions & 8 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,11 @@ The left column shows the sellers, while the right column shows the buyers.

Two `Person` make a match if the seller has at least one `property` that matches the buyer's `preference`.

A property matches with a preference if
- they have the same `region`, and
- they have the same `size`, and
- the `price` of the property is between `lowPrice` and `highPrice` (inclusive) of the preference.

## Help Feature and Window
The `help` command and selecting help from the dropdown opens the `helpwindow`.

Expand Down Expand Up @@ -303,6 +308,14 @@ Whenever the underlying application data is modified, the `FilteredList<Person>`
In addition to the original `NameContainsKeywordsPredicate`, more predicates concerning each of the attributes in a `Person` are created.
They can be fed to the `FindCommand` to filter out `Person` with the specified keywords in the specified attribute.

This function does an OR search based on words separated by spaces. If the attribute(s) as specified by the user input
of a `Person` contain(s) at least one of the keywords specified by the user input, this `Person` is returned.

Attributes supported are: `all` `name` `phone` `email` `address` `properties` `preference` `usertype`,
among which `all` looks for the keywords in all other attributes.
`property` and `preference` are converted into a string representation concatenating all their fields separating with spaces, and the string is then checked for keywords.
For all other attributes, their original string representation is used.

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

This is how we do our [documentation](https://ay2122s2-cs2103-w16-4.github.io/tp/Documentation.html).
Expand Down Expand Up @@ -367,7 +380,7 @@ RealEstatePro is faster that a typical mouse/GUI driven app that helps the real
## Use cases
System: RealEstatePro (REP)

**Use case: Add a client**
### **Use case: Add a client**

Actor: User

Expand All @@ -382,7 +395,7 @@ Actor: User

Use case resumes at step 1

**Use Case: Edit a client**
### **Use Case: Edit a client**

Actor: User

Expand All @@ -408,7 +421,7 @@ Actor: User

Use case resumes at step 3

**Use Case: Delete a client**
### **Use Case: Delete a client**

Actor: User

Expand All @@ -427,7 +440,37 @@ Actor: User

Use case resumes at step 2

**Use Case: Upload Image**
### **Use Case: Find clients by keywords**

Actor: User

**MSS**
1. User requests to find clients.
2. REP filters the full list of clients for those that satisfy the condition.
3. REP shows the filtered list of clients.

**Extensions:**
* 1a. User request has wrong details.
* 1a1. REP displays an error message.

Use case ends.

### **Use Case: Match clients**

Actor: User

**MSS**
1. User requests to match clients.
2. REP pops up MatchWindow.
3. REP shows matching clients in MatchWindow.

**Extensions:**
* 2a. There are no matching clients.
* 2a1. REP shows an empty MatchWindow.

Use Case ends.

### **Use Case: Upload Image**

Actor: User

Expand All @@ -451,7 +494,7 @@ Actor: User

Use case resumes at step 3

**Use Case: View Image**
### **Use Case: View Image**

Actor: User

Expand All @@ -475,7 +518,7 @@ Actor: User

Use case resumes at step 2

**Use Case: Set a Reminder for a client**
### **Use Case: Set a Reminder for a client**

Actor: User

Expand All @@ -499,7 +542,7 @@ Actor: User

Use case resumes at step 2

**Use Case: View Reminders for clients**
### **Use Case: View Reminders for clients**

Actor: User

Expand Down Expand Up @@ -617,11 +660,25 @@ Please bear in mind to extend your testing to more *exploratory* testing after f
3. Open Statistics window by key
1. Test case: Press on `F2` key on your device. <br>Expected: The Statistics window will pop up above the listings of clients on the Main window. The window will display a pie chart with data of buyers/sellers in regions based on their preference/properties (If there is no data in RealEstatePro, the pie chart will not be displayed. Labels of the Statistics window will still display).

## Finding a client
## Finding clients
1. Finding clients by keywords
1. Prerequisites: None
2. Test Case: `find name Alex Yu`<br>
Expected: `Alex Yeoh` and `Bernice Yu` showed on the screen.
3. Test Case: `find name alex yu`<br>
Expected: The function is case-insensitive. `Alex Yeoh` and `Bernice Yu` showed on the screen.
4. Test Case: `find all`<br>
Expected: List of clients showed does not change. Error message displayed.
5. Other incorrect add commands to try: `find`, `find all`, `find john`<br>
Expected: Similar to previous.

## Sorting clients

## Matching clients
1. Matching clients
1. Prerequisites: None. Ideally there are existing matches, otherwise the MatchWindow that pops up is empty.
2. Test Case: `match`<br>
Expected: MatchWindow pops up, showing matching sellers on the left and buyers on the right.

## Uploading an Image

Expand Down
60 changes: 24 additions & 36 deletions docs/team/cindyangxq.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,52 +5,40 @@ title: Yang Xiquan's Project Portfolio Page

### Project: AddressBook Level 3

AddressBook - Level 3 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
RealEstatePro is a desktop application for managing your client details for real estate agents.
While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).
With RealEstatePro managing your clients will be breeze by using the various features such as reminders, client matching and many more!

Given below are my contributions to the project.

* **New Feature**: Added the ability to undo/redo previous commands.
* What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command.
* Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them.
* Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands.
* Credits: *{mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}*

* **New Feature**: Added `match` command.
* **New Feature**: Added `match` function (Pull Request [#51](https://github.com/AY2122S2-CS2103-W16-4/tp/pull/51)).
* What it does: allows the real estate agent to see potential matching sellers and buyers.

* **New Component**: Added `Preference` class
* What it does: a new field of a `Person`. Specifies the preference of a potential buyer.

* **Code contributed**: [RepoSense link]()

* **Project management**:
* Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub
* **New Component**: Added `Preference` attribute (Pull Request [#79](https://github.com/AY2122S2-CS2103-W16-4/tp/pull/79)).
* What it does: a new attribute of a `Person`. Specifies the preference of a potential buyer.

* **Enhancements to existing features**:
* Updated the GUI color scheme (Pull requests [\#33](), [\#34]())
* Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests [\#36](), [\#38]())
* Enhanced `find` feature to be able to find keywords not only in names but also in all other attributes of a person
* Enhanced `find` feature to be able to find keywords not only in names but also in all other attributes of a person (Pull Request [#97](https://github.com/AY2122S2-CS2103-W16-4/tp/pull/97)).

* **Code contributed**: [RepoSense link](https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=cindyangXQ&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2022-02-18).

* **Project management**:
* Managed releases `v1.1` `v1.3.1` `v1.3.2` (3 releases) on GitHub.

* **Documentation**:
* User Guide:
* Added documentation for the features `delete` and `find` [\#72]()
* Did cosmetic tweaks to existing documentation of features `clear`, `exit`: [\#74]()
* Added documentation for the `match` feature
* Added documentation for the `Preference` attribute
* Updated documentation for the `find` feature
* Added documentation for the `match` feature.
* Added documentation for the `Preference` attribute.
* Updated documentation for the enhanced `find` feature.
* reformatted the summary table into three columns.
* Developer Guide:
* Added implementation details of the `match` feature
* Added implementation details of the `Preference` attribute
* Added implementation details of the enhanced `find` feature
* Added implementation details of the `match` feature.
* Added implementation details of the `Preference` attribute.
* Added implementation details of the enhanced `find` feature.
* Added use cases and manual testing for the `match` feature.
* Added use cases and manual testing for the `find` feature.

* **Community**:
* PRs reviewed (with non-trivial review comments): [\#12](), [\#32](), [\#19](), [\#42]()
* Contributed to forum discussions (examples: [1](), [2](), [3](), [4]())
* Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]())
* Some parts of the history feature I added was adopted by several other class mates ([1](), [2]())

* **Tools**:
* Integrated a third party library (Natty) to the project ([\#42]())
* Integrated a new Github plugin (CircleCI) to the team repo

* _{you can add/remove categories in the list above}_
* PRs reviewed (with non-trivial review comments): [\#47](https://github.com/AY2122S2-CS2103-W16-4/tp/pull/47), [\#50](https://github.com/AY2122S2-CS2103-W16-4/tp/pull/50), [\#67](https://github.com/AY2122S2-CS2103-W16-4/tp/pull/67), [\#94](https://github.com/AY2122S2-CS2103-W16-4/tp/pull/94).
* Contributed to forum discussions (example: [262](https://github.com/nus-cs2103-AY2122S2/forum/issues/262)).
* Reported bugs and suggestions for other teams in the class (examples: [1](https://github.com/cindyangXQ/ped/issues/1), [2](https://github.com/cindyangXQ/ped/issues/2), [3](https://github.com/cindyangXQ/ped/issues/3), [4](https://github.com/cindyangXQ/ped/issues/4), [5](https://github.com/cindyangXQ/ped/issues/5), [6](https://github.com/cindyangXQ/ped/issues/6), [7](https://github.com/cindyangXQ/ped/issues/7)).

0 comments on commit f97e2ad

Please sign in to comment.