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-T14-1] TheGreatDetective #41

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

Conversation

serenakemono
Copy link

TheGreatDetective gives curious and adventurous players a chance to solve murder mysteries.

Copy link

@APZH APZH left a comment

Choose a reason for hiding this comment

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

Week 11 Tutorial

=======
The class diagram below shows how the parser interacts with the other classes

![Parser class diagram design](./ParserClassDiagram.png)
Copy link

Choose a reason for hiding this comment

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

Should the an abstract class be defined with "<>" or "{}"?
image

Here’s a (partial) class diagram of the `Command` component:


![(partial class) diagram of Command component](./Command_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.

Do the inclusion of icons for the 'Duke', 'Command', 'XYZCommand' class follow the class diagram UML standard as discussed in class?

image


## Design & implementation
## Design
Copy link

Choose a reason for hiding this comment

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

May want to increase the font size of your sequence diagrams as it is abit difficult to read.

- Print messages to terminal depending on the scene.
- Print corresponding output to terminal according to input command.

[UML diagram for Ui](./UiUML.png)
Copy link

Choose a reason for hiding this comment

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

The link to the UML diagram is broken.

Choose a reason for hiding this comment

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

image
Is there supposed to be an image here? As the image link is broken and would it be better if you just include the image in the DG itself instead of having a link for it?

The Sequence Diagram [below](./next_command_sequence_diagram.png) illustrates within the `Command` component for the `execute(ui,investigation,sceneList)` method call of the `NextCommand` class.


![Sequence diagram for execute(ui,investigation,sceneList) method call of NextCommand](./next_command_sequence_diagram.png)

Choose a reason for hiding this comment

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

image
The diagram has many components that are difficult to make out as the font is too small and some of the text is blurry.

Copy link

Choose a reason for hiding this comment

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

I agree with @titustortoiseturtle1999, but nice job on colouring the different sections to allow us to differentiate the different sections.

The Sequence Diagram [below](./next_command_sequence_diagram.png) illustrates within the `Command` component for the `execute(ui,investigation,sceneList)` method call of the `NextCommand` class.


![Sequence diagram for execute(ui,investigation,sceneList) method call of NextCommand](./next_command_sequence_diagram.png)

Choose a reason for hiding this comment

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

image
For sequence diagrams, I think there should be a block for each method. eg. When execute(ui, investigation, sceneList) is called should be the start of a block.

Copy link

Choose a reason for hiding this comment

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

I think activations bars are optional, but as some of your other diagrams included it, you may want to standardize it.


{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.

I feel that there could be a section here to cover the target user and the value proposition of the product, as well as maybe a brief overview of what it does.

Then read the file and store the information into array list using ```ArrayList<String> content = file.readFile()```.
Eventually, edit the content and rewrite to data file using ```file.rewriteFile(content)```

###Taking Notes For Specified Scene

Choose a reason for hiding this comment

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

This paragraph feels a little wordy, and the length makes it disinteresting to the reader. You could consider reformatting it into something more digestible.


### Architecture
![High Level Architectural design](./main_architecture.png)
Copy link

Choose a reason for hiding this comment

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

image

You may want to change the return arrows to dotted arrows by using <..

Copy link

Choose a reason for hiding this comment

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

Perhaps you can also add a : to all your class names, like :Duke or :Ui.

Choose a reason for hiding this comment

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

image
I think the returning arrows should be dotted instead of a solid line

Choose a reason for hiding this comment

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

Perhaps add a : to the name of the classes too.

Choose a reason for hiding this comment

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

Is this diagram needed here? As it is repeated again below at line 53.


{Describe the value proposition: what problem does it solve?}
###Main components of the architecture
Copy link

Choose a reason for hiding this comment

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

You may want to add a space after your ### to allow GitHub pages to render properly

Choose a reason for hiding this comment

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

image
Adding a space after ### would allow GitHub to render the header correctly.

The Sequence Diagram [below](./next_command_sequence_diagram.png) illustrates within the `Command` component for the `execute(ui,investigation,sceneList)` method call of the `NextCommand` class.


![Sequence diagram for execute(ui,investigation,sceneList) method call of NextCommand](./next_command_sequence_diagram.png)
Copy link

Choose a reason for hiding this comment

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

I think activations bars are optional, but as some of your other diagrams included it, you may want to standardize it.

The Sequence Diagram [below](./next_command_sequence_diagram.png) illustrates within the `Command` component for the `execute(ui,investigation,sceneList)` method call of the `NextCommand` class.


![Sequence diagram for execute(ui,investigation,sceneList) method call of NextCommand](./next_command_sequence_diagram.png)
Copy link

Choose a reason for hiding this comment

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

I agree with @titustortoiseturtle1999, but nice job on colouring the different sections to allow us to differentiate the different sections.

Copy link

@RemusTeo RemusTeo left a comment

Choose a reason for hiding this comment

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

Noticed some errors with the headers, as well as some potential mistakes in the sequence diagrams.


{Describe the value proposition: what problem does it solve?}
###Main components of the architecture

Choose a reason for hiding this comment

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

image

Need to add a space between ### and Main, or else markdown will not generate header


The Sequence Diagram below shows how the components interact with each other for the scenario where the user issues the command `/next`.

![High Level Sequence Diagram for main architecture](./main_architecture.png)

Choose a reason for hiding this comment

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

Is this image supposed to be here or in line 23? Because I notice that it is the same exact image main_architecture.png.


**How the architecture components interact with each other**

The Sequence Diagram below shows how the components interact with each other for the scenario where the user issues the command `/next`.

Choose a reason for hiding this comment

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

image

If the image is a sequence diagram shouldn't there be activation bars?
Also note the returning arrows, I think it should be dotted lines as well.

Then read the file and store the information into array list using ```ArrayList<String> content = file.readFile()```.
Eventually, edit the content and rewrite to data file using ```file.rewriteFile(content)```

###Taking Notes For Specified Scene

Choose a reason for hiding this comment

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

image

Need to add space between ### and Taking, or else markdown will not generate header.

* The first investigation scene has a `SuspectList` containing one name, "Father",
and four clues within its corresponding `Suspect` class.

![](Suspect.png)

Choose a reason for hiding this comment

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

image

Since there is a method call for new Suspect(), does this mean that it should be using a constructor box?

Choose a reason for hiding this comment

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

I agree with @RemusTeo. A constructor box should be added here as well.

Copy link

@markuslyq markuslyq left a comment

Choose a reason for hiding this comment

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

Few rendering errors and a few errors with some of the sequence diagrams as well.

Comment on lines 7 to 18
## Content Page
* [Architecture](#Architecture)
* [Main Components of the Architecture](#Main-components-of-the-architecture)
* [Parser Component](#Parser-component)
* [Note Component](#Note-component)
* [UI Component](#UI-component)
* [Command Component](#Command-component)
* [Investigation Component](#Investigation-component)
* [Scene Component](#Scene-component)
* [Storage Component](#Storage-component)
* [Suspect Component](#Suspect-component)
* [Implementation](#Implementation)

Choose a reason for hiding this comment

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

Perhaps add the appropriate links to correct the navigation as currently, it does not navigate to the correct sub-header.


### Architecture
![High Level Architectural design](./main_architecture.png)

Choose a reason for hiding this comment

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

image
I think the returning arrows should be dotted instead of a solid line


### Architecture
![High Level Architectural design](./main_architecture.png)

Choose a reason for hiding this comment

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

Perhaps add a : to the name of the classes too.


### Architecture
![High Level Architectural design](./main_architecture.png)

Choose a reason for hiding this comment

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

Is this diagram needed here? As it is repeated again below at line 53.


{Describe the value proposition: what problem does it solve?}
###Main components of the architecture

Choose a reason for hiding this comment

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

image
Adding a space after ### would allow GitHub to render the header correctly.

`Parser` component for the `getCommandFromUser("/next")` API call.

![Parser design](./ParserUML.png)
The class diagram below shows how the parser interacts with the other classes

Choose a reason for hiding this comment

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

image
I think a line indentation would make it neater.

Choose a reason for hiding this comment

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

If Parser is calling new NextCommand() shouldn't the arrow go to the :NextCommand box, with a constructor below?

- Print messages to terminal depending on the scene.
- Print corresponding output to terminal according to input command.

[UML diagram for Ui](./UiUML.png)

Choose a reason for hiding this comment

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

image
Is there supposed to be an image here? As the image link is broken and would it be better if you just include the image in the DG itself instead of having a link for it?

* The first investigation scene has a `SuspectList` containing one name, "Father",
and four clues within its corresponding `Suspect` class.

![](Suspect.png)

Choose a reason for hiding this comment

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

I agree with @RemusTeo. A constructor box should be added here as well.

See below for example.
- The introduction scene shows the introductory message to the user.
- The investigation scene asks the user either investigate a suspect or look into a clue.
![](Scene.png)

Choose a reason for hiding this comment

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

image
The image here is rather blurry and it makes the words unreadable.

Comment on lines 209 to 212
At first ```Storage file = new Storage("name.txt")```, initialise the ```Storage``` class type with the name of the file.
Then ```file.checkPath()``` will check for existing data file and creates a new data file if the path ```./Data/name.txt```is invalid.
Then read the file and store the information into array list using ```ArrayList<String> content = file.readFile()```.
Eventually, edit the content and rewrite to data file using ```file.rewriteFile(content)```

Choose a reason for hiding this comment

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

Perhaps a diagram can be included here to allow visualisation of how the storage component works.

Copy link

@LS-Young LS-Young left a comment

Choose a reason for hiding this comment

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

Screenshot 2021-10-29 113233
Maybe this diagram is a bit messy?

Copy link

@LS-Young LS-Young left a comment

Choose a reason for hiding this comment

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

Screenshot 2021-10-29 113233
Is this diagram a bit messy?

Copy link

@LS-Young LS-Young left a comment

Choose a reason for hiding this comment

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

Screenshot 2021-10-29 113659
Is coloring helpful for the division of the sections?

Copy link

@LS-Young LS-Young left a comment

Choose a reason for hiding this comment

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

Screenshot 2021-10-29 113948
Is suspectName, suspect, name, image, description and clueToAdd necessary here?

Copy link

@LS-Young LS-Young left a comment

Choose a reason for hiding this comment

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

Screenshot 2021-10-29 114211
Should this diagram be divided into two, so that it can be easier to read?

MaifengNg and others added 30 commits November 7, 2021 22:16
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.