diff --git a/docs/AboutUs.md b/docs/AboutUs.md index cde97a03925..eda5181163f 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -29,7 +29,7 @@ We are a team based in the [School of Computing, National University of Singapor -[[github](http://github.com/zhuoyang125)] +[[github](http://github.com/zhuoyang125)]] [[portfolio](team/zhuoyang125.md)] * Role: Developer * Responsibilities: UI IC diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8dcc1900519..aee3009a3fb 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -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 @@ -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`. @@ -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. @@ -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. @@ -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/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague`
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/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague`
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. @@ -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`
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. @@ -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`
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. @@ -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`
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. diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e106cb976bc..a23f488fe1f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -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. @@ -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. -------------------------------------------------------------------------------------------------------------------- @@ -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, …​ diff --git a/docs/team/johndoe.md b/docs/team/johndoe.md deleted file mode 100644 index 773a07794e2..00000000000 --- a/docs/team/johndoe.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: page -title: John Doe'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. - -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 a history command that allows the user to navigate to previous commands using up/down keys. - -* **Code contributed**: [RepoSense link]() - -* **Project management**: - * Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub - -* **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]()) - -* **Documentation**: - * User Guide: - * Added documentation for the features `delete` and `find` [\#72]() - * Did cosmetic tweaks to existing documentation of features `clear`, `exit`: [\#74]() - * Developer Guide: - * Added implementation details of the `delete` 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}_ diff --git a/docs/team/zhuoyang125.md b/docs/team/zhuoyang125.md new file mode 100644 index 00000000000..0ca4ee4197e --- /dev/null +++ b/docs/team/zhuoyang125.md @@ -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)