Skip to content

[CS2113-T17-4] parKING#11

Open
malcolmang wants to merge 569 commits into
nus-cs2113-AY2223S1:masterfrom
AY2223S1-CS2113-T17-4:master
Open

[CS2113-T17-4] parKING#11
malcolmang wants to merge 569 commits into
nus-cs2113-AY2223S1:masterfrom
AY2223S1-CS2113-T17-4:master

Conversation

@malcolmang

Copy link
Copy Markdown

A parking CLI that helps drivers choose the best place to park.

Comment thread docs/DeveloperGuide.md

## Design & implementation
#### Model Component
![Model Class Diagram](images/ModelClassDiagram.png)

@yfg-dev yfg-dev Oct 26, 2022

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I think the format for method's parameter-list in class diagram is name: type for carparkList

Comment thread docs/DeveloperGuide.md
@@ -1,12 +1,186 @@
# Developer Guide

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Maybe could included an intro about ur project

Comment thread docs/DeveloperGuide.md Outdated

#### Common Files

## Implementation

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Implementation not done yet, do add it when you can!

Comment thread docs/DeveloperGuide.md Outdated
- Authenticate user API key. If no user key inputted, default key will be loaded.
- Get API authentication status.

#### Storage Component

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Do add the other components too!!

Comment thread docs/DeveloperGuide.md Outdated

## Design

### Architecture Level

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Do add the architecture level section!

Comment thread docs/DeveloperGuide.md
See [`FileLoader`](#FileLoader) for more information.

#### API Component
![API Class Diagram](images/ApiClassDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Perhaps the uml visibility symbols such as + or - should be used instead

Comment thread docs/DeveloperGuide.md

The following sequence diagrams shows how a favourite / unfavourite command works:

![Favourite Sequence Diagram](images/FavouriteSequenceDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

inconsistent in labelling of return value. There is no label for return findcarpark() call.

Comment thread docs/DeveloperGuide.md

### Favourite / Unfavourite feature

![Favourite Class Diagram](images/FavouriteClassDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

perhaps can add in the multiplicity of Favourite

Comment thread docs/DeveloperGuide.md Outdated
Note: The `Carpark` class contain many getters, setters and annotations to be used with the `jackson` module.
See [`FileLoader`](#FileLoader) for more information.

#### API Component

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Would be good to add labels for the arrows in the uml to make it clear

Comment thread docs/DeveloperGuide.md Outdated

![Favourite Class Diagram](images/FavouriteClassDiagram.png)

#### Implementation

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The write up of the implementation is pretty clear, with good bullet points and segmentation. Good job!

@nshian nshian left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Overall, an informative guide with some suggestions for your consideration

Comment thread docs/DeveloperGuide.md Outdated
### Architecture Level

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Parameter-list for methods should be of the form [name of variable] : [type of variable] e.g. setNumber(n: Integer)

Comment thread docs/DeveloperGuide.md

### Favourite / Unfavourite feature

![Favourite Class Diagram](images/FavouriteClassDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Maybe you want to consider including the multiplicity of the Favourite class as well? Since the other associations you have included have multiplicities on both ends

Comment thread docs/DeveloperGuide.md

The following sequence diagrams shows how a favourite / unfavourite command works:

![Favourite Sequence Diagram](images/FavouriteSequenceDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Perhaps you might want to write the [condition] in the alt block in normal prose? e.g. user favourites list, user favourites a specific carpark by ID

Comment thread docs/DeveloperGuide.md

The following sequence diagrams shows how a favourite / unfavourite command works:

![Favourite Sequence Diagram](images/FavouriteSequenceDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Consider adding a label for the return value for the findCarpark() method?

Comment thread docs/DeveloperGuide.md Outdated
1. Land Transport Authority DataMall API Service ([link](https://datamall.lta.gov.sg/content/datamall/en.html)).
2. Jackson JSON Parser ([link](https://fasterxml.github.io/jackson-core/javadoc/2.8/com/fasterxml/jackson/core/JsonParser.html))

## Design

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

More sequence diagrams for some other commands would be nice

Comment thread docs/DeveloperGuide.md Outdated
## Implementation


## Product scope

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

referring to line 229, ## User Stories

please consider adding more user stories

Comment thread docs/DeveloperGuide.md Outdated



#### Design considerations

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

can consider resizing the image of the sequence diagram used for increased clarity

Comment thread docs/DeveloperGuide.md
{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}
#### API Component
![API Class Diagram](images/ApiClassDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

the chunk of text is hard to grasp/understand. perhaps, you can reduce the number of words/simplify the explanation

Comment thread docs/DeveloperGuide.md Outdated
- changeScanner() - Changes the scanner for the Ui object. To be used for JUnit testing.
- getSeparatorString() - Returns a separator string.

#### Logic Component

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

image

unclear what is XYZCommand in the diagram, not described in your description as well.

@kohnh kohnh left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

LGTM

Comment thread docs/DeveloperGuide.md Outdated
#### Storage Component

#### Implementation
![Sequence Diagram](images/LoadFileSequenceDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

image
consider adding a "X" at the end of the lifeline of an object to show its deletion

Comment thread docs/DeveloperGuide.md
### Component Level

#### Model Component
![Model Class Diagram](images/ModelClassDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

image
Should use the symbols taught in class like + or -

Comment thread docs/DeveloperGuide.md

The following sequence diagrams shows how a favourite / unfavourite command works:

![Favourite Sequence Diagram](images/FavouriteSequenceDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

image

Both alts seems similar except for the command call, maybe can combine the 2

Comment thread docs/DeveloperGuide.md

The following sequence diagrams shows how a favourite / unfavourite command works:

![Favourite Sequence Diagram](images/FavouriteSequenceDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Maybe you can make the diagram bigger for easier reading. The diagram is also not sharp.

Comment thread docs/DeveloperGuide.md Outdated

### Favourite / Unfavourite feature

![Favourite Class Diagram](images/FavouriteClassDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

image

Maybe you can remove the circle for class as it is not taught in class.

Comment thread docs/DeveloperGuide.md Outdated
- Get API authentication status.

The following sequence diagram shows how the API key is loaded.
![Api Loading Sequnce Diagram](images/LoadApiSequenceDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

image
The origin of this arrow is unclear. Maybe you should include what the storage class calls in order to return the API_KEY

@exetr exetr left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Good use of the three types of diagrams to augment elaboration of your application. Most of the diagrams are fine, although do be careful of the small details such as the format of header for class diagrams and the visibilty specifer for objects to follow the format stated by the module specifications.

Comment thread docs/DeveloperGuide.md
### Component Level

#### Model Component
![Model Class Diagram](images/ModelClassDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Double check your attribute and operations visibility identifiers, they should align with the module's specifications

Comment thread docs/DeveloperGuide.md Outdated

## Design & implementation
Note: The `Carpark` class contain many getters, setters and annotations to be used with the `jackson` module.
See [`FileLoader`](#FileLoader) for more information.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Minor issue, but currently the fileloader link is broken, do double check it.

Comment thread docs/DeveloperGuide.md Outdated
* Only reads from the secret.txt file once and stores the API as a variable (will only read from the file
if requested again).

How the API component of data fetching works

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

For specificity, you may want to consider what type of data you are pulling from the API.

Comment thread docs/DeveloperGuide.md Outdated
#### Storage Component

#### Implementation
![Sequence Diagram](images/LoadFileSequenceDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This sequence diagram seems overly complicated, do try to re-visit whether it is necessary to depict every aspect of the sequence diagram. If it is requried, you can potentially consider splitting it up into multiple diagrams, or using ref frames.

Comment thread docs/DeveloperGuide.md
* All `ABCCommand` classes will have an override `execute` method, which will override the `execute` method in `Command`
and return the respective `CommandResult` result of the Command.

![Logic Class Diagram](images/LogicClassDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Is the XYZCommand class redundant? If so, do consider removing it

Comment thread docs/DeveloperGuide.md
* All `ABCCommand` classes will have an override `execute` method, which will override the `execute` method in `Command`
and return the respective `CommandResult` result of the Command.

![Logic Class Diagram](images/LogicClassDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Same case here, do double check that you use the correct visibilty indicators as specified by the module.

Comment thread docs/DeveloperGuide.md

The following sequence diagrams shows how a favourite / unfavourite command works:

![Favourite Sequence Diagram](images/FavouriteSequenceDiagram.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Consider enlarging the size of this sequence diagram for greater clarity.

malcolmang and others added 30 commits November 7, 2022 18:31
Change favourite list to throw the correct exception
Add disclaimer about tampering with file permissions
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.

10 participants