From e1d033ca36d3a29c731c550cda8d90abac5d91f6 Mon Sep 17 00:00:00 2001 From: vanessa-kang Date: Mon, 9 Nov 2020 17:51:21 +0800 Subject: [PATCH 1/2] PPP update, upload draw.io file for ModuleDetailsCommand --- docs/base/moduleDetailsCommand.xml | 1 + docs/team/vanessa-kang.md | 124 +++++++++++++++++++++++++++-- 2 files changed, 120 insertions(+), 5 deletions(-) create mode 100644 docs/base/moduleDetailsCommand.xml diff --git a/docs/base/moduleDetailsCommand.xml b/docs/base/moduleDetailsCommand.xml new file mode 100644 index 0000000000..c4300a340a --- /dev/null +++ b/docs/base/moduleDetailsCommand.xml @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/team/vanessa-kang.md b/docs/team/vanessa-kang.md index 5bf71f976a..c255f05890 100644 --- a/docs/team/vanessa-kang.md +++ b/docs/team/vanessa-kang.md @@ -35,24 +35,138 @@ Given below are my contributions to the project. - **Documentation:** - User Guide: - Added documentation for `details` and `search` ([#132](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/132)) - - Formatting and proofreading of User Guide ([#132](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/132), [#241](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/241), [#242](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/242)) + - Formatting and proofreading of User Guide ([#132](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/132), [#241](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/241), [#242](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/242), [#305](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/305), [#312](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/312)) - Developer Guide: - Added documentation for `ModuleDetailsCommand` ([#173](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/173)) - Added use cases for _Academic Planner_ features ([#236](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/236)) - Added instructions for manual testing ([#245](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/245), [#289](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/289)) - - Formatting and proofreading of Developer Guide ([#242](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/242)) + - Formatting and proofreading of Developer Guide ([#242](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/242), [#312](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/312)) - **Team-based tasks:** + - General bug fixes ([#238](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/238)) - - Alerted teammates to bugs that needed fixing (e.g. [#103](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/103), [#288](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/288)) + - Alerted teammates to bugs that needed fixing (e.g. [#103](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/103), [#288](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/288), [#307](https://github.com/AY2021S1-CS2113T-F12-1/tp/issues/307)) - **Review contributions:** - PRs reviewed (with non-trivial review comments): - iP: [#15](https://github.com/nus-cs2113-AY2021S1/ip/pull/15), [#154](https://github.com/nus-cs2113-AY2021S1/ip/pull/154) - tP: [#26](https://github.com/nus-cs2113-AY2021S1/tp/pull/26), [#68](https://github.com/nus-cs2113-AY2021S1/tp/pull/68), [PE dry run](https://github.com/vanessa-kang/ped/issues) +
+ +- **Contributions to the User Guide (Extracts):** + +#### 6.1.4. Viewing the details of a module: `details` + + + +This command is for you to view the detailed information of a particular module. + +Input format: `details ` + +Example of usage: + +* `details CS2101` +* `DETAILS cs2113t` + +
+ +
+ +As shown in the image, you can input the module that they wish to view further details about. + +__Caution:__ + +* No information will be printed if the module is not offered by NUS. + +
+ +#### 6.1.5. Searching for module codes containing a keyword: `search` + +This command is for when you are unsure of the full module code. + +Input format: `search ` + +Example of usage: + +* `search CS21` +* `SEARCH cg4002` + +
+ +
+ +
+ +
+ +As shown above, you can enter a search key that contains either part of, or the whole module code. + +__Caution:__ + +* This feature currently only supports searching by module code. +* Only up to the first 10 results are displayed. + +
+ +- **Contributions to the Developer Guide (Extracts):** + +### 4.4. Academic Calendar Planner: View Module Details Feature + + + +#### 4.4.1. Current implementation + +View module details command is executed by `AcademicPlannerParser`. It allows the user to view the full details of any module offered by NUS, by accessing the specified `FullModule` object that corresponds to the module code entered by the user, and printing its attributes. + +Additionally, the view module details command extends the `Command` class and overrides its `execute()` command. An external class, `ModuleValidator` is called upon to validate the module code that the user has entered, as only the details of valid NUS modules can be displayed. + +Given below is an example usage scenario and how view module command behaves at each step. + +
+ Initial state diagram for Module Details Command +
+ + +__Step 1:__ The user calls the view module details command from the `AcademicPlannerParser`, which will initialise a `ModuleDetailsCommand`. `ModuleDetailsCommand`'s constructor takes in parameters of `ModuleLoader` and `String`. Below is a table of what each parameter corresponds to in the state diagram of the program. + +| Parameter
(Class Name) | Corresponds to
(Function of Class) | Referred to as
(Variable Name) | +| :-------------------------: | :----------------------------------------------------: | :---------------------------------: | +| `ModuleLoader` | Class representing all modules offered by NUS | `allModules` | +| `String` | Class representing the module code to print details of | `moduleCode` | + +__Step 2:__ `execute()` is called from the instance of `ModuleDetailsCommand`. It can throw `AcademicException`. + +__Step 3:__ `validateModuleCode()` is called to validate the user input, `moduleCode`, against `allModules`. + +__Step 4:__ `PrintUtils` is called to print the details of the module. + +
+ Final state diagram for Module Details Command +
+ + + + +__Step 5:__ `ModuleDetailsCommand`, `ModuleLoader` and `PrintUtils` are terminated. + + + +The following sequence diagram shows how `ModuleDetailsCommand` works. + +
+ +
+ + + +The following diagram summarizes what happens when the user executes a `ModuleDetailsCommand`: + +
+ Activity diagram for View Module Details Command +
+ + -- **[Optional] Contributions to the User Guide (Extracts):** -- **[Optional] Contributions to the Developer Guide (Extracts):** From 36da98de7a555475bafca6385b80065c2ca2496a Mon Sep 17 00:00:00 2001 From: vanessa-kang Date: Mon, 9 Nov 2020 17:55:03 +0800 Subject: [PATCH 2/2] PPP formatting --- docs/team/vanessa-kang.md | 87 ++++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/docs/team/vanessa-kang.md b/docs/team/vanessa-kang.md index c255f05890..8d842d0c96 100644 --- a/docs/team/vanessa-kang.md +++ b/docs/team/vanessa-kang.md @@ -10,7 +10,7 @@ The _CAP Calculator_ then makes use of this existing data to calculate students' Given below are my contributions to the project. -
+
- **Code contributed:** [RepoSense Link](https://nus-cs2113-ay2021s1.github.io/tp-dashboard/#breakdown=true&search=vanessa&sort=groupTitle&sortWithin=title&since=2020-09-27&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other&tabOpen=true&tabType=authorship&zFR=false&tabAuthor=vanessa-kang&tabRepo=AY2021S1-CS2113T-F12-1%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other) - **New Feature:** Added the ability to view all modules in the user's academic calendar. @@ -46,87 +46,88 @@ Given below are my contributions to the project. - General bug fixes ([#238](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/238)) - Alerted teammates to bugs that needed fixing (e.g. [#103](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/103), [#288](https://github.com/AY2021S1-CS2113T-F12-1/tp/pull/288), [#307](https://github.com/AY2021S1-CS2113T-F12-1/tp/issues/307)) - **Review contributions:** + - PRs reviewed (with non-trivial review comments): - iP: [#15](https://github.com/nus-cs2113-AY2021S1/ip/pull/15), [#154](https://github.com/nus-cs2113-AY2021S1/ip/pull/154) - tP: [#26](https://github.com/nus-cs2113-AY2021S1/tp/pull/26), [#68](https://github.com/nus-cs2113-AY2021S1/tp/pull/68), [PE dry run](https://github.com/vanessa-kang/ped/issues) -
+
- **Contributions to the User Guide (Extracts):** -#### 6.1.4. Viewing the details of a module: `details` + #### 6.1.4. Viewing the details of a module: `details` - + -This command is for you to view the detailed information of a particular module. + This command is for you to view the detailed information of a particular module. -Input format: `details ` + Input format: `details ` -Example of usage: + Example of usage: -* `details CS2101` -* `DETAILS cs2113t` + - `details CS2101` + - `DETAILS cs2113t` -
- -
+
+ +
-As shown in the image, you can input the module that they wish to view further details about. + As shown in the image, you can input the module that they wish to view further details about. -__Caution:__ + __Caution:__ -* No information will be printed if the module is not offered by NUS. + - No information will be printed if the module is not offered by NUS. -
+
-#### 6.1.5. Searching for module codes containing a keyword: `search` + #### 6.1.5. Searching for module codes containing a keyword: `search` -This command is for when you are unsure of the full module code. + This command is for when you are unsure of the full module code. -Input format: `search ` + Input format: `search ` -Example of usage: + Example of usage: -* `search CS21` -* `SEARCH cg4002` + - `search CS21` + - `SEARCH cg4002` -
- -
+
+ +
-
- -
+
+ +
-As shown above, you can enter a search key that contains either part of, or the whole module code. + As shown above, you can enter a search key that contains either part of, or the whole module code. -__Caution:__ + __Caution:__ -* This feature currently only supports searching by module code. -* Only up to the first 10 results are displayed. + - This feature currently only supports searching by module code. + - Only up to the first 10 results are displayed. -
+
- **Contributions to the Developer Guide (Extracts):** -### 4.4. Academic Calendar Planner: View Module Details Feature + ### 4.4. Academic Calendar Planner: View Module Details Feature - + -#### 4.4.1. Current implementation + #### 4.4.1. Current implementation -View module details command is executed by `AcademicPlannerParser`. It allows the user to view the full details of any module offered by NUS, by accessing the specified `FullModule` object that corresponds to the module code entered by the user, and printing its attributes. + View module details command is executed by `AcademicPlannerParser`. It allows the user to view the full details of any module offered by NUS, by accessing the specified `FullModule` object that corresponds to the module code entered by the user, and printing its attributes. -Additionally, the view module details command extends the `Command` class and overrides its `execute()` command. An external class, `ModuleValidator` is called upon to validate the module code that the user has entered, as only the details of valid NUS modules can be displayed. + Additionally, the view module details command extends the `Command` class and overrides its `execute()` command. An external class, `ModuleValidator` is called upon to validate the module code that the user has entered, as only the details of valid NUS modules can be displayed. -Given below is an example usage scenario and how view module command behaves at each step. + Given below is an example usage scenario and how view module command behaves at each step. -
- Initial state diagram for Module Details Command -
+
+ Initial state diagram for Module Details Command +
-__Step 1:__ The user calls the view module details command from the `AcademicPlannerParser`, which will initialise a `ModuleDetailsCommand`. `ModuleDetailsCommand`'s constructor takes in parameters of `ModuleLoader` and `String`. Below is a table of what each parameter corresponds to in the state diagram of the program. + __Step 1:__ The user calls the view module details command from the `AcademicPlannerParser`, which will initialise a `ModuleDetailsCommand`. `ModuleDetailsCommand`'s constructor takes in parameters of `ModuleLoader` and `String`. Below is a table of what each parameter corresponds to in the state diagram of the program. | Parameter
(Class Name) | Corresponds to
(Function of Class) | Referred to as
(Variable Name) | | :-------------------------: | :----------------------------------------------------: | :---------------------------------: |