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-F15-1] Player2113 #55

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

Conversation

songyuew
Copy link

@songyuew songyuew commented Mar 8, 2024

Player2113 is a CLI based software to help CS2113 student revise concepts encountered in the course.

JeffinsonDarmawan added a commit to JeffinsonDarmawan/tp that referenced this pull request Mar 22, 2024
yeozongyao pushed a commit to yeozongyao/tp that referenced this pull request Apr 1, 2024
Ui -> Parser : handleAnswerInputs(answer: String)
activate Parser

ref over Parser : get correct answer
Copy link

Choose a reason for hiding this comment

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

i think there's a missing sequence diagram here? maybe you can include the sequence diagram (esp for ref), such as the get correct answer?


box Results #EB9999
participant "topicResults:Results" as Results #FE2727
participant "allResults:ResultsList" as ResultsList #FE2727
Copy link

Choose a reason for hiding this comment

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

i think you need to hide the class at the bottom of the diagram?

deactivate ResultsList

Ui -->[

Copy link

Choose a reason for hiding this comment

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

you may need to deactivate Ui activation in the end after -->[ ?

Ui -->[

destroy Results
destroy Parser
Copy link

Choose a reason for hiding this comment

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

maybe you should also destroy allResults?

and proceeds to start a game with their chosen topic.

The following shows the class diagram for `topicList`:
![TopicList class diagram](./team/img/TopicList_Topic_class_diagram.png)
Copy link

Choose a reason for hiding this comment

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

class may need to add + and - to show public and private?

The solution feature is facilitated by `Parser#processSolutionCommand`, which is called by `Parser#parseCommand`

> **OVERVIEW:**
> ![Solution sequence diagram](./team/img/Solution.png)
Copy link

Choose a reason for hiding this comment

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

in alt, maybe need to add [else] sign?

The solution feature is facilitated by `Parser#processSolutionCommand`, which is called by `Parser#parseCommand`

> **OVERVIEW:**
> ![Solution sequence diagram](./team/img/Solution.png)
Copy link

Choose a reason for hiding this comment

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

after calling the methods, i think you may need to add return arrow, even if void?

The solution feature is facilitated by `Parser#processSolutionCommand`, which is called by `Parser#parseCommand`

> **OVERVIEW:**
> ![Solution sequence diagram](./team/img/Solution.png)
Copy link

Choose a reason for hiding this comment

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

some method invocation got no name, maybe need to add the method name on it, instead of putting it on the return arrow?


Similarly, the following sequence diagram shows how the
`AnswerTracker` stores all the user answer inputs:
![AnswerTracker sequence diagram](https://via.placeholder.com/100.png?text=Photo)
Copy link

Choose a reason for hiding this comment

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

maybe add the diagram here? its empty?


## Glossary

* *glossary item* - Definition
Copy link

Choose a reason for hiding this comment

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

maybe also update the template here?

and proceeds to start a game with their chosen topic.

The following shows the class diagram for `topicList`:
![TopicList class diagram](./team/img/TopicList_Topic_class_diagram.png)

Choose a reason for hiding this comment

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

image
Shouldn't there be no c?

and proceeds to start a game with their chosen topic.

The following shows the class diagram for `topicList`:
![TopicList class diagram](./team/img/TopicList_Topic_class_diagram.png)

Choose a reason for hiding this comment

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

image
Shouldn't there be a + or - to indicate whether the method is private, public or protected?

and proceeds to start a game with their chosen topic.

The following shows the class diagram for `topicList`:
![TopicList class diagram](./team/img/TopicList_Topic_class_diagram.png)

Choose a reason for hiding this comment

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

image
Shouldn't the colons be standardized?

The solution feature is facilitated by `Parser#processSolutionCommand`, which is called by `Parser#parseCommand`

> **OVERVIEW:**
> ![Solution sequence diagram](./team/img/Solution.png)

Choose a reason for hiding this comment

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

image
Perhaps you can include the else condition in the second box?

Comment on lines 23 to 30
![ResultsList sequence diagram](./team/img/Results.png)
> **Note:** The lifeline for Parser and Results should end
> at the destroy marker (X) but due to a limitation of PlantUML,
> the lifeline reaches the end of the diagram.

Similarly, the following sequence diagram shows how the
`AnswerTracker` stores all the user answer inputs:
![AnswerTracker sequence diagram](https://via.placeholder.com/100.png?text=Photo)

Choose a reason for hiding this comment

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

image
Shouldn't the photo appear?

## Acknowledgements

{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}

## Design & implementation

{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}

Choose a reason for hiding this comment

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

Shouldn't this line be deleted?

Step 1. The user launches the application for the first time,
and proceeds to start a game with their chosen topic.

The following sequence diagram shows how the `Results` for

Choose a reason for hiding this comment

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

Hi, the method calling solid line arrow for "new Results()" seems to not be pointing to the start of the activation bar.


Similarly, the following sequence diagram shows how the
`AnswerTracker` stores all the user answer inputs:
![AnswerTracker sequence diagram](https://via.placeholder.com/100.png?text=Photo)

Choose a reason for hiding this comment

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

I think the photo is not loaded correctly on the DG site


Step 3. The user now wants to view their results by executing
the `results` command.
![Results command sequence diagram](https://via.placeholder.com/100.png?text=Photo)

Choose a reason for hiding this comment

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

Photo not loaded for this as well

and proceeds to start a game with their chosen topic.

The following shows the class diagram for `topicList`:
![TopicList class diagram](./team/img/TopicList_Topic_class_diagram.png)

Choose a reason for hiding this comment

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

Class diagram for topicList should not have the C icon present, as I don't think it follows the standards stated.

and proceeds to start a game with their chosen topic.

The following shows the class diagram for `topicList`:
![TopicList class diagram](./team/img/TopicList_Topic_class_diagram.png)

Choose a reason for hiding this comment

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

Missing of indication of private and public methods/ variables with "+/-" etc

Copy link

@ZMinghuiZ ZMinghuiZ left a comment

Choose a reason for hiding this comment

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

Generally good job! The notations of the diagrams seems to be compliant with the convention covered in the course. Maybe could add more diagram to enhance the developer guide understanding?


The following sequence diagram shows how the `Results` for
one question set is added to the `ResultsList`:
![ResultsList sequence diagram](./team/img/Results.png)

Choose a reason for hiding this comment

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

image I like the use of ref block to make the sequence diagram more concise and readable. Good use of different color to differentiate Logic and Result👍

The following sequence diagram shows how the `Results` for
one question set is added to the `ResultsList`:
![ResultsList sequence diagram](./team/img/Results.png)
> **Note:** The lifeline for Parser and Results should end

Choose a reason for hiding this comment

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

image Perhaps add an object to indicate who invoked `printChosenTopic` method would make the diagram more clear.

The following sequence diagram shows how the `Results` for
one question set is added to the `ResultsList`:
![ResultsList sequence diagram](./team/img/Results.png)
> **Note:** The lifeline for Parser and Results should end

Choose a reason for hiding this comment

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

Perhaps add the explanation of the ref block would make it more comprehensible?

Step 1. The user launches the application for the first time,
and proceeds to start a game with their chosen topic.

The following shows the class diagram for `topicList`:

Choose a reason for hiding this comment

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

Perhaps add a line separator here to make the class diagram occupy a dedicated space would allow the format to be more readable.

The explain feature either prints the explanation to 1 question or all questions in 1 topic.

The explain feature is facilitated by `Parser#processExplanationCommand`, which is called by `Parser#parseCommand`

Choose a reason for hiding this comment

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

Perhaps add some diagram here would allow better understanding of developers?

The solution feature is facilitated by `Parser#processSolutionCommand`, which is called by `Parser#parseCommand`

> **OVERVIEW:**
> ![Solution sequence diagram](./team/img/Solution.png)

Choose a reason for hiding this comment

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

The sequence diagram has many parts and may be slightly hard to understand initially, it would be good if you could break it down into parts when explaining, means showing just small sections of the sequence diagram

Step 2a: `Parser#processExplainCommand` first checks the number of parameters in the user command
by calling `Parser#checkIfTwoParameters`.
The, further processing of parameters is done by calling `Parser#getTopicOrQuestionNum`.
This is facilitated by calling `QuestionsListByTopic#getQuestionSet` to get all questions in the specified topic.

Choose a reason for hiding this comment

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

maybe you could swap 2b and 2a since 2a is more related to step 3


### Libraries

1. Display formatted tables in the CLI - [ASCII TABLES](https://bethecoder.com/applications/products/asciiTable.action)

Choose a reason for hiding this comment

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

good that you included your references :)

|--------|----------|---------------|------------------|
|v1.0|new user|see usage instructions|refer to them when I forget how to use the application|
|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list|
| Version | As a ... | I want to ... | So that I can ... |

Choose a reason for hiding this comment

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

maybe you could categorise the user stories by priorities and include their priority into the userstories table


2. Topic selection menu and testing mode progress bar - [ProgressBar](https://github.com/ctongfei/progressbar)

### References

Choose a reason for hiding this comment

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

Maybe remove references if there is nothing to add here


2. Topic selection menu and testing mode progress bar - [ProgressBar](https://github.com/ctongfei/progressbar)

### References

## Instructions for manual testing

Choose a reason for hiding this comment

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

Remember to remove this default text

The solution feature is facilitated by `Parser#processSolutionCommand`, which is called by `Parser#parseCommand`

> **OVERVIEW:**
> ![Solution sequence diagram](./team/img/Solution.png)

Choose a reason for hiding this comment

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

image

Choose a reason for hiding this comment

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

Consider removing getters and setters as their functions are quite obvious

and proceeds to start a game with their chosen topic.

The following shows the class diagram for `topicList`:
![TopicList class diagram](./team/img/TopicList_Topic_class_diagram.png)

Choose a reason for hiding this comment

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

image
Consider reformatting such that the text is above the diagram for clarity

Copy link

@vibes-863 vibes-863 left a comment

Choose a reason for hiding this comment

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

Overall nice work!


Similarly, the following sequence diagram shows how the
`AnswerTracker` stores all the user answer inputs:
![AnswerTracker sequence diagram](./team/img/AnswerTracker.png)

Choose a reason for hiding this comment

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

image

I like that you have tried to differentiate between Logic and Answers using the different colors, but I think that it makes it harder to read the diagram as some content is between the colored boxes.

Maybe consider just coloring the class instance boxes and adding a legend on the side.


The following sequence diagram shows how the `Results` for
one question set is added to the `ResultsList`:
![ResultsList sequence diagram](./team/img/Results.png)

Choose a reason for hiding this comment

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

image

Good use of ref block to help improve readability!


The following sequence diagram shows how the `Results` for
one question set is added to the `ResultsList`:
![ResultsList sequence diagram](./team/img/Results.png)

Choose a reason for hiding this comment

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

image

Wouldn't it be better to use opt block instead of alt block as there is only one path?

The solution feature is facilitated by `Parser#processSolutionCommand`, which is called by `Parser#parseCommand`

> **OVERVIEW:**
> ![Solution sequence diagram](./team/img/Solution.png)

Choose a reason for hiding this comment

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

image

Have you maybe forgot to add [else] int the alt block?

Copy link

@nichyjt nichyjt left a comment

Choose a reason for hiding this comment

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

Hi team,

Overall good job at making the DG!

  1. Please take note of the syntax issues with the diagrams and
  2. There are some sections of the DG that are incomplete. Please finish them.
  3. Most of the diagrams are OK in complexity, but consider scaling down some of the sequence diagrams.
    Remember: guiding principle from the website...

Keep diagrams simple. The aim is to make diagrams comprehensible, not necessarily comprehensive.

Please do refer to AB3 DG for inspiration and tips on how to better structure and format your content.

Comment on lines +24 to +26
> **Note:** The lifeline for Parser and Results should end
> at the destroy marker (X) but due to a limitation of PlantUML,
> the lifeline reaches the end of the diagram.
Copy link

Choose a reason for hiding this comment

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

It should be possible to remove the bubbles at the bottom with some tinkering of PlantUML if I am not wrong. Alternatively, you may also crop the image.


The following sequence diagram shows how the `Results` for
one question set is added to the `ResultsList`:
![ResultsList sequence diagram](./team/img/Results.png)
Copy link

Choose a reason for hiding this comment

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

Activation bar might not have been terminated correctly. Missing the border line at the bottom!

image


Similarly, the following sequence diagram shows how the
`AnswerTracker` stores all the user answer inputs:
![AnswerTracker sequence diagram](./team/img/AnswerTracker.png)
Copy link

Choose a reason for hiding this comment

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

Similarly, the activation bar here was not terminated correctly

image


The following sequence diagram shows how the `Results` for
one question set is added to the `ResultsList`:
![ResultsList sequence diagram](./team/img/Results.png)
Copy link

Choose a reason for hiding this comment

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

See if you can get reference frames to be opaque.

  1. For readability
  2. To adhere to textbook

Recall the textbook's notation on reference frames. This is a repeated issue for all your sequence diagrams

image


Step 3. The user now wants to view their results by executing
the `results` command.
![Results command sequence diagram](./team/img/ViewResults.png)
Copy link

Choose a reason for hiding this comment

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

A few issues:

  1. Unterminated activation bar for Parser
  2. Ref blocks not opaque
  3. The complexity is on the slightly higher side for this sequence diagram. You might want to consider refactoring

and proceeds to start a game with their chosen topic.

The following shows the class diagram for `topicList`:
![TopicList class diagram](./team/img/TopicList_Topic_class_diagram.png)
Copy link

Choose a reason for hiding this comment

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

Most of your peers have identified the bigger issues of the diagram, like the class circle and the access modifiers.

Copy link

Choose a reason for hiding this comment

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

Consider adding in a table of contents, similar to the reference Address Book DG


2. Topic selection menu and testing mode progress bar - [ProgressBar](https://github.com/ctongfei/progressbar)

### References

## Instructions for manual testing
Copy link

Choose a reason for hiding this comment

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

Please include details about manual testing here

> **OVERVIEW:**
> ![Solution sequence diagram](./team/img/Solution.png)

> > **Note:** The lifeline for Parser and Results should end
Copy link

Choose a reason for hiding this comment

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

Might be intentional, but the double quote makes the rendering seem buggy (space between 'overview' and the note.

image

NGXZS and others added 30 commits April 15, 2024 22:56
Fix formatting for PPP
Fix formatting errors UG, DG
Remove unnecessary code
# Conflicts:
#	src/main/java/seedu/duke/Parser.java
Fix ^D bug in sayHi()
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.