Skip to content

Conversation

@dargohzy
Copy link

Team PR for CS2103T.
@nathanaelseen
@teriaiw
@waynewee
@yjskrs

Copy link

@zsoh97 zsoh97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall well kept developer guide :)

* can save `UserPref` objects in json format and read it back.
* can save the Address Book data in json format and read it back.
* can save the Course Book data in json format and read it back.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing structure of services component

image::UndoRedoState0.png[]

Step 2. The user executes `delete 5` command to delete the 5th person in the address book. The `delete` command calls `Model#commitAddressBook()`, causing the modified state of the address book after the `delete 5` command executes to be saved in the `addressBookStateList`, and the `currentStatePointer` is shifted to the newly inserted address book state.
<<<<<<< HEAD Step 2. The user executes `delete 5` command to delete the 5th module in the course book.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did not merge correctly.


Step 2. The user executes `delete 5` command to delete the 5th person in the address book. The `delete` command calls `Model#commitAddressBook()`, causing the modified state of the address book after the `delete 5` command executes to be saved in the `addressBookStateList`, and the `currentStatePointer` is shifted to the newly inserted address book state.
<<<<<<< HEAD Step 2. The user executes `delete 5` command to delete the 5th module in the course book.
The `delete` command calls `Model#commitCourseBook()`, causing the modified state of the course book after the `delete 5` command executes to be saved in the `addressBookStateList`, and the `currentStatePointer` is shifted to the newly inserted course book state.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3.3 to 3.3.2: information was updated to be relevant to product but diagrams for this section was not updated to reflect the product.

This would allow `Course Book` to only require one `Tag` object per unique `Tag`, instead of each `Module` needing their own `Tag` object.
An example of how such a model may look like is given below. +
+
image:BetterModelClassDiagram.png[]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

compared to above model diagram, there are additional components of person, name, email, address, unique tag list and unique person list. which model diagram should the reader follow? should be reflected in earlier diagram.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that they simply haven't updated their diagram yet, since Person does not exist in the context of iGrad


The sequence diagram below provide further insight into its execution:

image::AutoAddSequenceDiagram.png[]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if parseCommand parameter is string it should be in "". However, the param is stated as auto add with a space.

In such situations, the user would be prompted to manually fill in the necessary details for a module. The compulsory
and optional fields are shown in the class diagram below:

image::ModuleClassDiagram.png[]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

figure is not labelled.

. 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.
. Should work on any <<mainstream-os,mainstream OS>> as long as it has Java `11` or above installed.
. Should be able to hold up to 100 modules without a noticeable sluggishness in performance (i.e. should take less than 1 second to load)
. A user with above 70 wpm 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.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wpm not defined.

Copy link

@NNpanpan NNpanpan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Diagrams can have a bit larger fonts so that readers don't have to zoom in.
Other things look good overall.

In such situations, the user would be prompted to manually fill in the necessary details for a module. The compulsory
and optional fields are shown in the class diagram below:

image::ModuleClassDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notations on Diagram are not the standard notations.

Here is how the requirement class updates when a requirement is added:

.Sequence Diagram when adding a requirement.
image::RequirementAddSequenceDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't need new keyword when calling constructors.


The sequence diagram below provide further insight into its execution:

image::AutoAddSequenceDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Diagram lacks a label.

Comment on lines 34 to 36
[TIP]
The `.puml` files used to create diagrams in this document can be found in the link:{repoURL}/docs/diagrams/[diagrams] folder.
Refer to the <<UsingPlantUml#, Using PlantUML guide>> to learn how to create and edit diagrams.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parts like this should be left out.

Copy link

@dinhnhobao dinhnhobao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me overall!

=== Model component

.Structure of the Model Component
image::ModelClassDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the class diagram avoid long and curly arrows, such as
ModelManager to Module and Requirement?

This would allow `Course Book` to only require one `Tag` object per unique `Tag`, instead of each `Module` needing their own `Tag` object.
An example of how such a model may look like is given below. +
+
image:BetterModelClassDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that they simply haven't updated their diagram yet, since Person does not exist in the context of iGrad


The following activity diagram illustrates this:

image::AutoAddActivityDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the activity diagram complete?
What if "the previous academic year" request still does not return a valid response? Do we make another API call for previous previous academic year?

Here is how the requirement class updates when a requirement is added:

.Sequence Diagram when adding a requirement.
image::RequirementAddSequenceDiagram.png[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment as @zsoh97 for AutoAddSequenceDiagram.png

Comment on lines 240 to 243

Step 1: The RequirementAddCommandParser is called to parse the RequirementAddCommand with the `n/` and the `u/` prefixes into a new requirement.

Step 2: The RequirementAddCommand is executed to add the new requirement to the model. In this step, the following check is performed:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the class names be under Markdown syntax ?

Nathanael Seen and others added 27 commits April 9, 2020 22:03
added moduleaddautocommand
added modulefiltercommand
added undocommand
added exportcommand
help
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants