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

[CS2113T-T10-4] MindMyMoney #10

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

Conversation

GlendonNotGlen
Copy link

MindMyMoney is a Command-Line application that allows users to track their spending

Copy link

@Musfirahe0556596 Musfirahe0556596 left a comment

Choose a reason for hiding this comment

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

Great diagrams drawn! Some issues to consider!

#### Current Implementation
The sequence diagram below shows the interactions of different subcomponents of the system when adding an expenditure
to the list.
![add_command_sequence_diagram](images/Add_Command_Sequence_Diagram.png)

Choose a reason for hiding this comment

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

Perhaps there should be an activation bar on the call to the AddCommandInputTest#test(...) method as shown in the screenshot?:
image

Choose a reason for hiding this comment

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

the return values should include the data type e.g. category: String

Choose a reason for hiding this comment

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

This applies to all the return value

Choose a reason for hiding this comment

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

Would it be possible to enter the objectName:Datatype format for the return types?

Comment on lines 114 to 116
4. During the execution, `Addcommand.execute` will parse through user input to obtain the `EXPENDITURE`, `CATEGORY`,
`DESCRIPTION`, `AMOUNT` and `TIME` fields.
5. The `Addcommand` object instantiates a new `Expenditure` object with the aforementioned 5 fields and adds them

Choose a reason for hiding this comment

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

Perhaps there should be another line to describe what the AddCommandInputTest#test(...) method does?

To enable users to view their finances in a more meaningfully, MindMyMoney does calculations to present financial data
that is actionable for the users.

![calculate_command_sequence_diagram](images/gif_loading.gif)

Choose a reason for hiding this comment

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

Unsure if the gif is supposed to be an indication of 'to be updated' as here it states that the picture is supposed to be a sequence diagram, but no sequence diagram is shown xD.

### Command component
The source can be found in [command](https://github.com/AY2122S2-CS2113T-T10-4/tp/blob/master/src/main/java/seedu/mindmymoney/command)

![command_diagram](images/command_diagram.png)
Copy link

@Musfirahe0556596 Musfirahe0556596 Mar 31, 2022

Choose a reason for hiding this comment

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

This diagram is understandable as it shows the different commands available but perhaps an improvement that could be done is to add in the abstract method execute() also to show that all command types have this method in their own classes?

The Sequence Diagram below shows an example of how the components interact with each other for the scenario
where the user issues the command`add shoes 100`.

![sequence_diagram](images/sequence_diagram.png)

Choose a reason for hiding this comment

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

Excellent diagram that shows a high-level overview of how the application works. Colouring to differentiate the different components are also good!

Choose a reason for hiding this comment

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

For the sequence diagram, shouldn't the user go to :MMM with thecommand add shoes before the :Ui?
The sequence feels a bit off here

Choose a reason for hiding this comment

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

I think they are trying to illustrate that the user enters the command through :UI, which is then sent to :MMM to handle, which will then parse and do the rest of the sequence.

<br/>

### UI component
The source code can be found in [Ui.java](https://github.com/AY2122S2-CS2113T-T10-4/tp/blob/master/src/main/java/seedu/mindmymoney/Ui.java)

Choose a reason for hiding this comment

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

I like how you guys include the link for source code in the DG


{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}
### Architecture
![architecture diagram](images/architecture_diagram.png)

Choose a reason for hiding this comment

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

The architecture diagram does not have to connection between Parser and Commands, while the command diagram indicates otherwise.
image
image

### Command component
The source can be found in [command](https://github.com/AY2122S2-CS2113T-T10-4/tp/blob/master/src/main/java/seedu/mindmymoney/command)

![command_diagram](images/command_diagram.png)

Choose a reason for hiding this comment

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

The activation bar in the sequence diagram for the Command:AddCommand is too long
image

To enable users to view their finances in a more meaningfully, MindMyMoney does calculations to present financial data
that is actionable for the users.

![calculate_command_sequence_diagram](images/gif_loading.gif)

Choose a reason for hiding this comment

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

I do not know why you guys put loading gif here but I think it should be a sequence diagram
image

Choose a reason for hiding this comment

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

I thought it was intended but just curious why haha

Choose a reason for hiding this comment

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

Also curious about the loading gif! Is it a picture that was not rendered?

* Pros: Easily implemented with lesser lines of code as the code is minimalist
* Cons: JUnit testing would require I/O redirection prior to checking the output matches expectations

![list_command_sequence_diagram](images/List_Command_Sequence_Diagram.png)

## Product scope
### Target user profile

Choose a reason for hiding this comment

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

There is no information in the product scope, non-functional requirement, glossary and instruction for manual testing sections.
image
image

Copy link

@wraineflores wraineflores left a comment

Choose a reason for hiding this comment

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

DG peer review

@@ -4,10 +4,150 @@

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

Choose a reason for hiding this comment

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

There is no overview summary of what the software is all about

<br/>

### UI component
The source code can be found in [Ui.java](https://github.com/AY2122S2-CS2113T-T10-4/tp/blob/master/src/main/java/seedu/mindmymoney/Ui.java)

Choose a reason for hiding this comment

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

It's good that there's a source code hyperlink to the Github website

Comment on lines 55 to 58
![parser_diagram](images/parser_diagram.png)
<br/> Fig 4 - Parser Diagram

The Parser component consists of a`Parser`, `Functions`, `ExpenditureList` and `Expenditure`class

Choose a reason for hiding this comment

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

The labeling of figures may be better if placed above the diagram itself.
Why is the Function class separate from the Parser Class?

* Pros: Easily implemented with lesser lines of code as the code is minimalist
* Cons: JUnit testing would require I/O redirection prior to checking the output matches expectations

![list_command_sequence_diagram](images/List_Command_Sequence_Diagram.png)

## Product scope
### Target user profile

Choose a reason for hiding this comment

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

Target User is unknown so it is unclear who this software is for

To enable users to view their finances in a more meaningfully, MindMyMoney does calculations to present financial data
that is actionable for the users.

![calculate_command_sequence_diagram](images/gif_loading.gif)

Choose a reason for hiding this comment

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

Calculate command sequence diagram is not loading maybe because it is a .gif instead of a .png image
Tutorial Week 11 Screenshot 5b

Comment on lines 29 to 32
![sequence_diagram](images/sequence_diagram.png)
<br/> Fig 2 - Sequence Diagram

The sections below give more details for each component.

Choose a reason for hiding this comment

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

There is no termination, loop, opt, etc. in the sequence diagram
Tutorial Week 11 Screenshot 6b

Copy link

@ibrahimisramos ibrahimisramos left a comment

Choose a reason for hiding this comment

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

Good job team!

The Sequence Diagram below shows an example of how the components interact with each other for the scenario
where the user issues the command`add shoes 100`.

![sequence_diagram](images/sequence_diagram.png)

Choose a reason for hiding this comment

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

For the sequence diagram, shouldn't the user go to :MMM with thecommand add shoes before the :Ui?
The sequence feels a bit off here

The source can be found in [`command`](https://github.com/AY2122S2-CS2113T-T10-4/tp/blob/master/src/main/java/seedu/mindmymoney/command)

![command_diagram](images/command_diagram.png)
Fig 5 - Command Class Diagram

Choose a reason for hiding this comment

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

Might want to centralise the "figure 5". I took a while to find it

#### Current Implementation
The sequence diagram below shows the interactions of different subcomponents of the system when adding an expenditure
to the list.
![add_command_sequence_diagram](images/Add_Command_Sequence_Diagram.png)

Choose a reason for hiding this comment

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

the return values should include the data type e.g. category: String

#### Current Implementation
The sequence diagram below shows the interactions of different subcomponents of the system when adding an expenditure
to the list.
![add_command_sequence_diagram](images/Add_Command_Sequence_Diagram.png)

Choose a reason for hiding this comment

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

This applies to all the return value

To enable users to view their finances in a more meaningfully, MindMyMoney does calculations to present financial data
that is actionable for the users.

![calculate_command_sequence_diagram](images/gif_loading.gif)

Choose a reason for hiding this comment

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

I thought it was intended but just curious why haha

The sequence diagram below shows the interactions of different subcomponents of the system when adding an expenditure
to the list.

![add_expenditure_command_sequence_diagram](images/Add_Expenditure_Command_Sequence_Diagram.png)

Choose a reason for hiding this comment

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

for the print added expenditure, should it be calling the print()/equivilent print method?

**Value proposition**
Manage finances containing multiple payment methods faster than a typical mouse/GUI driven app.

### User Stories

|Version| As a ... | I want to ... | So that I can ...|
|--------|----------|---------------|------------------|
|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|

Choose a reason for hiding this comment

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

Might want to add more of the user stories, feels like the app has very limited features

Copy link

@FTang21 FTang21 left a comment

Choose a reason for hiding this comment

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

Overall really good DeveloperGuide! Good job


The sequence diagram below shows the interactions of when an `AddCommand` is parsed.

![add_command_sequence_diagram](images/Add_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.

Screen Shot 2022-04-01 at 10 22 27 AM

Shouldn't the return arrow be outside of the alt frame?

### Command component
The source can be found in [`command`](https://github.com/AY2122S2-CS2113T-T10-4/tp/blob/master/src/main/java/seedu/mindmymoney/command)

![command_diagram](images/command_diagram.png)
Copy link

Choose a reason for hiding this comment

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

Screen Shot 2022-04-01 at 10 25 57 AM

Should this the lines from Parse to the Commands be dashed? I'm not sure if this a dependency as Parser is creating Commands

The sequence diagram below shows the interactions of different subcomponents of the system when adding an expenditure
to the list.

![add_expenditure_command_sequence_diagram](images/Add_Expenditure_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.

Screen Shot 2022-04-01 at 10 32 39 AM

I believe your `print added expenditure` self call is missing the activation bar. Similarly, in your addCreditCard() sequence diagram you seem to be missing the `print added credit card` activation bar.

**Value proposition**
Manage finances containing multiple payment methods faster than a typical mouse/GUI driven app.

### User Stories

|Version| As a ... | I want to ... | So that I can ...|
|--------|----------|---------------|------------------|
|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|
Copy link

Choose a reason for hiding this comment

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

Like ibrahimisramos stated, adding more user stories would be good. It would also tell others what features you focus based on the user stories you looked at or plan to look at.

The Sequence Diagram below shows an example of how the components interact with each other for the scenario
where the user issues the command`add shoes 100`.

![sequence_diagram](images/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.

No critique here, just a really nice diagram sequence that details the architecture of your program!

Copy link

@mathanmahe mathanmahe 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. It's a very informative developer guide with a few areas for improvement,

The Sequence Diagram below shows an example of how the components interact with each other for the scenario
where the user issues the command`add shoes 100`.

![sequence_diagram](images/sequence_diagram.png)

Choose a reason for hiding this comment

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

I think they are trying to illustrate that the user enters the command through :UI, which is then sent to :MMM to handle, which will then parse and do the rest of the sequence.

The Sequence Diagram below shows an example of how the components interact with each other for the scenario
where the user issues the command`add shoes 100`.

![sequence_diagram](images/sequence_diagram.png)

Choose a reason for hiding this comment

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

Good use of color schemes to make the sequence and architecture diagrams more visually appealing and easy to follow through!

### Parser component
The source code can be found in [`Parser.java`](https://github.com/AY2122S2-CS2113T-T10-4/tp/blob/master/src/main/java/seedu/mindmymoney/Parser.java)

![parser_diagram](images/parser_diagram.png)

Choose a reason for hiding this comment

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

Would it be possible to clarify this diagram? It is a bit confusing because a package named Parser is used. But the code architecture does not have a package named parser. Would it be possible to rename it to a more suitable name like ExpenditureTracker? Because it houses not only parser, but also the other aspects like the ExpenditureList, Functions as well as Parser

#### Current Implementation
The sequence diagram below shows the interactions of different subcomponents of the system when adding an expenditure
to the list.
![add_command_sequence_diagram](images/Add_Command_Sequence_Diagram.png)

Choose a reason for hiding this comment

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

Would it be possible to enter the objectName:Datatype format for the return types?

**Value proposition**
Manage finances containing multiple payment methods faster than a typical mouse/GUI driven app.

### User Stories

Choose a reason for hiding this comment

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

Would it be possible to add more user stories that could cover what kind of users the features are intended for?

To enable users to view their finances in a more meaningfully, MindMyMoney does calculations to present financial data
that is actionable for the users.

![calculate_command_sequence_diagram](images/gif_loading.gif)

Choose a reason for hiding this comment

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

Also curious about the loading gif! Is it a picture that was not rendered?


* *glossary item* - Definition
* Mainstream OS: Windows, Linux, Unix, OS-X

## Instructions for manual testing

Choose a reason for hiding this comment

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

Kindly do add instructions for manual testing of the features so a new developer can understand how to test these features. You can include positive and negative test cases, expected outcomes.

limjierui and others added 30 commits April 11, 2022 22:12
# Conflicts:
#	docs/images/AddCreditCardSequenceDiagram.png
#	docs/images/AddExpenditureSequenceDiagram.png
Standardise sequence and class diag format
Add validators for reading save file
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.