Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zhuoyang update ppp #219

Merged
merged 4 commits into from
Nov 8, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ We are a team based in the [School of Computing, National University of Singapor

<img src="images/zhuoyang125.png" width="200px">

[[github](http://github.com/zhuoyang125)]
[[github](http://github.com/zhuoyang125)]] [[portfolio](team/zhuoyang125.md)]

* Role: Developer
* Responsibilities: UI IC
Expand Down
24 changes: 12 additions & 12 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ The `UI` component,
- listens for changes to `Model` data so that the UI can be updated with the modified data.
- depends on some classes in the `Model` component, as it displays `Contact` and `Policy` object residing in the `Model`.
- keeps a reference to the `Logic` component, because the `UI` relies on the `Logic` to execute commands.
- is referenced by the `Logic` component, because the `Warning` class in `Logic` relies on `MainWindow` for the user input in the dialog box.
- is referenced by the `Logic` component, because the `Warning` class in `Logic` relies on `MainWindow` for the user input in the dialog box.

### Logic component

Expand Down Expand Up @@ -215,15 +215,15 @@ new `Policy` object would need to be created for each of them with the edited ne
The sequence diagram below illustrates how the `EditContactCommand` is executed.
![](images/EditContactCommandExecuteSequenceDiagram.png)

**Step 1**: `EditContactCommand#execute` is called which gets the `contactToEdit` from the `Model` using the `Index` provided,
**Step 1**: `EditContactCommand#execute` is called which gets the `contactToEdit` from the `Model` using the `Index` provided,
similar to the process in `AddPolicyCommand`.

**Step 2**: Using the `EditContactDescriptor` object and the `contactToEdit`, a new `editedContact` is created by calling
**Step 2**: Using the `EditContactDescriptor` object and the `contactToEdit`, a new `editedContact` is created by calling
`EditContactCommand#createEditedContact`.

**Step 3**: Policies belonging to the `contactToEdit` is obtained from the `Model`.

**Step 4**: For each of the policies, a new `Policy` object is created with identical fields but with `editedContact` as the owner and
**Step 4**: For each of the policies, a new `Policy` object is created with identical fields but with `editedContact` as the owner and
the `Model` is updated with these new policies.

**Step 5** The `contactToEdit` is replaced by the `editedContact` by calling `Model#setContact`.
Expand Down Expand Up @@ -376,7 +376,7 @@ Our target audience is a student who,
- prefers typing to mouse interactions
- is reasonably comfortable using CLI apps

**Value proposition**:
**Value proposition**:

Currently, there are no good contact applications on desktop that allow student financial advisors, that do not have time to use complex contact book applications, to easily keep track of their contacts and policies.

Expand Down Expand Up @@ -597,11 +597,11 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
1. Should work on any OS with `32-bit` or `64-bit` architectures.
1. User data should be in human editable file and stored locally.
1. Should not require internet for any of its features.

* Performance requirements:
1. Should be able to hold up to 1000 entries(contacts/policies) without a noticeable sluggishness in performance for typical usage.
1. The response to any commands should be less than 1 second.

* Quality requirements:
1. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.
1. The application should be easily picked up by a new user with no prior experience with a similar application.
Expand Down Expand Up @@ -648,9 +648,9 @@ testers are expected to do more *exploratory* testing.
Expected: A contact with the details provided will be added into the contact list. Details of the added contact shown in the status message. Timestamp in the status bar is updated.
1. Test case: `addcontact n/!nvalidN@me p/22224444 e/[email protected] a/123, Clementi Rd, 1234665 t/friend t/colleague` <br>
Expected: No contact is added. Error details shown in the status message. Status bar remains the same.

1. Adding a contact while not all contacts are being shown

1. Prerequisites: Filter the contact list using `findcontact KEYWORD` so that not all the contacts are shown.
1. Test case: `addcontact n/James Ho p/22224444 e/[email protected] a/123, Clementi Rd, 1234665 t/friend t/colleague`<br>
Expected: A contact with the details provided will be added into the contact list. The complete contact list will be shown. Details of the added contact shown in the status message. Timestamp in the status bar is updated.
Expand Down Expand Up @@ -684,7 +684,7 @@ testers are expected to do more *exploratory* testing.
### Adding a policy

1. Adding a policy while all policies are being shown

1. Prerequisites: List all contacts using the `allpolicy` command. Multiple policies and contacts in the list.
1. Test case: `addpolicy n/Life Policy p/1000 12 120 c/20 12 cl/1 e/2100-06-13 t/AIA`<br>
Expected: A policy with the details provided will be added into the policy list. Details of the added policy shown in the status message. Timestamp in the status bar is updated.
Expand All @@ -694,7 +694,7 @@ testers are expected to do more *exploratory* testing.
Expected: A warning will pop-up. Pressing `confirm` will create a policy. A policy with the details provided will be added into the policy list. Details of the added policy shown in the status message. Timestamp in the status bar is updated. Pressing `cancel` or closing will not create a policy. Error details shown in the status message. Status bar remains the same.

1. Adding a policy while not all policies are being shown

1. Prerequisites: Filter the policy list using `contactpolicy CONTACT_INDEX` so that not all the policies are shown. All contacts are still shown.
1. Test case: `addpolicy n/Life Policy p/1000 12 120 c/20 12 cl/1 e/2100-06-13 t/AIA`<br>
Expected: A policy with the details provided will be added into the policy list. The complete policy list will be shown. Details of the added policy shown in the status message. Timestamp in the status bar is updated.
Expand All @@ -720,7 +720,7 @@ testers are expected to do more *exploratory* testing.
### Deleting a policy

1. Deleting a policy while all policies are being shown

1. Prerequisites: List all contacts using the `allpolicy` command. Multiple policies in the list.
1. Test case: `deletepolicy 1`<br>
Expected: First policy is deleted from the list. Details of the deleted policy shown in the status message. Timestamp in the status bar is updated.
Expand Down
8 changes: 4 additions & 4 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ This section provides instructions to begin using Siasa.
1. Ensure you have Java `11` or above installed in your Computer. Siasa has been tested on Java `11` and running it on other versions might result in bugs.
2. Download the latest release [here](https://github.com/AY2122S1-CS2103-F10-4/tp/releases) and move it to the folder you wish to use as the home folder for Siasa.
3. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.

![First Startup UI Image](images/Ui.png)

4. Type the command in the command box and press Enter to execute it. e.g. typing `help` and pressing Enter will open the help window.
Expand All @@ -34,8 +34,8 @@ This section provides instructions to begin using Siasa.
* `deletecontact 2`: Deletes the 2nd contact shown in the current contact list.
* `clear`: Deletes all contacts and policies.
* `exit`: Exits the app.
5. Refer to the [Features](#features) below for details of each command.

5. Refer to the [Features](#features) below for details of each command.

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

Expand Down Expand Up @@ -137,7 +137,7 @@ Examples:
* `COMMISSION_%`: percentage of each payment that goes to commission
* `NUM_OF_COMM`: the number of payments that the agent will receive commission for
* E.g. `c/ 6 5` Receives 6% commission for the first 5 payments.

* **Contact that the policy belongs to** - `cl/CONTACT_INDEX`
* Current index of that contact in the contact list.
* The index **must be a positive integer** 1, 2, 3, …​
Expand Down
46 changes: 0 additions & 46 deletions docs/team/johndoe.md

This file was deleted.

49 changes: 49 additions & 0 deletions docs/team/zhuoyang125.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
layout: page
title: Zhuo Yang's Project Portfolio Page
---

### Project: SIASA

SIASA (Student Insurance Agent Sales Assistant) is a desktop app for students who are also part-time insurance agents to manage their clients and their policies. The user interacts with it using a CLI, and it has a GUI created with JavaFX.

Given below are my contributions to the project.

* **New Feature**: Add a Warning class.
* What it does: There are certain commands where it is good to warn the user if the input is suspected to be invalid. The Warning class allows commands to warn the user
before proceeding with execution of the command.
* Justification: This feature improves the product because it gives more freedom to the user, instead of blocking suspected invalid inputs. The warning will also help to
catch potential errors that users may make while performing operations.
* Highlights: Implementation of the warning window in the UI was challenging because the user interaction with the warning window had to be sent back to the UI component.
* Credits: *To check similarity of strings, we calculated the edit distance between the uppercase of the string inputs. The method was adapted from [here](https://www.geeksforgeeks.org/check-if-two-given-strings-are-at-edit-distance-one/)*

* **New Feature**: Add ability to download statistics as CSV.
* What it does: Allows the user to download the commission per contact and number of policies per contact (sorted in descending order) as CSV files.
* Highlights: This features involved updating of the `Model` component to keep track of the links between policies and contacts. Additional
methods are added to the method to allow retrieval of the data by the `Download` command.
* Justification: This feature will be useful for busy student financial advisors, as it provides a summary of their clients and their sales performance. The CSV
data is also convenient as it can be used in other applications like spreadsheets.

* **Code contributed**: [RepoSense link]https://nus-cs2103-ay2122s1.github.io/tp-dashboard/#breakdown=true&search=zhuoyang125)

* **Project management**:
* Managed releases `v1.2`, `v1.3` (2 releases) on GitHub
* Helped to maintain the GitHub issue tracker and set milestones
* Made general updates to the user guide and website
**Review/Helping Contributions**:
* Fixed bugs found in the application (PR [\#43](https://github.com/AY2122S1-CS2103-F10-4/tp/pull/43) [\#72](https://github.com/AY2122S1-CS2103-F10-4/tp/pull/72), [\#183](https://github.com/AY2122S1-CS2103-F10-4/tp/pull/183))
* Helped to update/enhance certain parts of the code (PR [\#44](https://github.com/AY2122S1-CS2103-F10-4/tp/pull/44), [\#76](https://github.com/AY2122S1-CS2103-F10-4/tp/pull/76))

* **Documentation**:
* User Guide:
* Added documentation for the `download` feature [\#70](https://github.com/AY2122S1-CS2103-F10-4/tp/pull/70/files)
* Developer Guide:
* Updated the `UI` component along with the explanation on how the component works
* Added implementation of the `Download` feature, along with the explanation of design considerations and diagrams
to explain how the feature works.
* Added implementation details of the `Warning` class, along with the explanation of design considerations and diagrams
to explain how the feature works.

* **Community**:
* PRs reviewed (with non-trivial review comments): PR [\#60](https://github.com/AY2122S1-CS2103-F10-4/tp/pull/60
* Reported bugs and suggestions for other teams in the class, which can be found [here](https://github.com/zhuoyang125/ped/issues)