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

[CS2113-T15-3] Module Manager #27

Open
wants to merge 488 commits into
base: master
Choose a base branch
from

Conversation

RenzoTsai
Copy link

@bennychanya @chengTzeNing @DeetoMok

@RenzoTsai RenzoTsai changed the title [CS2113T-T15-3] Module Manager [CS2113-T15-3] Module Manager Mar 3, 2020
@RenzoTsai RenzoTsai closed this Mar 10, 2020
@RenzoTsai RenzoTsai reopened this Mar 10, 2020
damithc pushed a commit to damithc/tp-draft that referenced this pull request Mar 14, 2020
Copy link

@cheongisabella cheongisabella left a comment

Choose a reason for hiding this comment

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

Here are some comments and suggestions on the developer guide. Good job on the overall format of the developer guide, which seems good and neat. The explanations are also concise.

docs/DeveloperGuide.md Outdated Show resolved Hide resolved
docs/DeveloperGuide.md Outdated Show resolved Hide resolved
docs/DeveloperGuide.md Outdated Show resolved Hide resolved
2) Added using `add id/ID s/SEMESTER mc/MODULE_CREDIT` command

Step 2:
User executes `CAP` command to view his own CAP. The `CAP` commands is parsed through `Parser`, which would then return

Choose a reason for hiding this comment

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

Screenshot 2020-03-30 at 5 16 42 PM
Some remarks to the Calculate CAP operation sequence diagram.

docs/DeveloperGuide.md Outdated Show resolved Hide resolved
Copy link

@g-lilian g-lilian left a comment

Choose a reason for hiding this comment

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

Overall, the DG looks well-organised and informative. Some areas can be clearer and the sequence diagrams may need a bit of tweaking.

Comment on lines 65 to 66
The user launches the application for the first time. The `SemesterList` will be initialized with the none
`SemModulesList` in it.

Choose a reason for hiding this comment

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

Do you mean to say "empty SemModulesList"?

Comment on lines 75 to 82
`AddToSemCommand#execute()` then calls self method `AddToSemCommand#addModule()`.`AddToSemCommand#addModule()`
then calls `AddToSemCommand#checkModuleExist(semesterList)` to check whether the selected
module is already in the selected module list (i.e:`semesterList`, which is a `PriorityQueue<SemModulesList>`).
If the module is not in the list, `AddToSemCommand#addModule()` will check whether there is a semester list
(i.e:`semesterModulesList`, which is a `ArrayList<SelectedModule>`) whose name is the module's semester name.
If the semester list exist, the module will be added to the list.
If not, `AddToSemCommand#addModule()` will create a new semester list and then add this module to the new list. and the
the new semester list will be added to `semesterList` as well.

Choose a reason for hiding this comment

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

I found this section quite confusing to read as there are a few variables and classes with similar names (semesterList, SemModulesList, semesterModulesList, SemesterList), and the multiple 'if' condition checks. Perhaps it would help to briefly explain the connection between semesterList and semesterModulesList, at the very beginning, before delving into the logic? I.e. "semesterList represents XXX and stores instances of SemModuleList. semesterModulesList represents XXX and stores XXX"

user

The following sequence diagram shows how the `Add to Semester` operation works:
![Sequence Diagram of Add to Semester](https://github.com/RenzoTsai/tp/blob/Update_DG/docs/UML%20img%20folder/Sequence%20Diagram%20of%20Add%20to%20Semester.png)

Choose a reason for hiding this comment

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

Some comments on the sequence diagram
Screenshot_4

Choose a reason for hiding this comment

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

On a side note, the diagram doesn't show up properly when I load the website, and stays like this when I refresh. I had to right click the icon and open in a new tab to view it. Could there be a problem with the file linking?
Screenshot_1

with a pattern of `#.00`. `Ui.showcap(cap)` is called to display the user's cap using the formatted `String`.

The following diagram shows how the Calculate CAP operation works:
![Calculate CAP feature](https://github.com/bennychanya/tp/blob/master/CalculateCap.png?raw=true)

Choose a reason for hiding this comment

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

I agree with what Isabella said about the construction of CalculateCapCommand. Otherwise it looks good to me. Perhaps you may want to specify the return value (grade) of the getGrade() method to be consistent, as you did so for totalCap?

user

The following sequence diagram shows how the `Add to Semester` operation works:
![Sequence Diagram of Add to Semester](https://raw.githubusercontent.com/RenzoTsai/tp/master/docs/UML%20img%20folder/Sequence%20Diagram%20of%20Add%20to%20Semester.png)

Choose a reason for hiding this comment

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

Can it be the case that steps also refer tot the Sequence Diagram while explaining the Add To Semester feature?


Step 2:
User executes `CAP` command to view his own CAP. The `CAP` commands is parsed through `Parser`, which would then return
`CalculateCapCommand()`. `CalculateCapCommand.execute()` is then called.

Choose a reason for hiding this comment

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

Screen Shot 2020-03-31 at 14 50 32

I am wondering if it is fully clear weather object representing CalculateCapCommand class or a Person Object Calculates the total cap. More specifically, the setTotalCap() method and getTotalCap() methods are pointed in the same direction, so I wasn't a 100% sure from the diagram where the CAP calculation was happening.

The `Model` component
* Stores a `Person` object that represents the user's details. (e.g. `totalCap`, `totalModuleCreditCompleted`)
* Stores the `ModuleList` and `SemesterList` Data
* Does not depend on any of the other three components

Choose a reason for hiding this comment

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

I was wondering if Model component is not related to other three components, then how would a Person object, which is stored in Model Component, have their CAP calculated? Maybe "does not depend" is not the correct phrase here?


### Implementation

#### `Add to Semester` feature

Choose a reason for hiding this comment

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

The diagram looks very neat and helps the developer understand the basic logic of add to semester future. So perhaps, is the explanation repetitive here?

RenzoTsai and others added 22 commits April 3, 2020 15:44
Allow to show prerequisites which are not in the available modules list and fix a bug when add same modules to AML
Updated Developer Guide and Architecture.png
DeetoMok and others added 30 commits April 11, 2020 22:24
Updated DG with design consideration for Mark As Done
Added Viewing in DG and design considerations
Update add‘s design consideration in DG
Added table for Design consideration
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.

7 participants