Skip to content

[CS2113T-T12-3] Stonks XD#33

Open
KZQ1999 wants to merge 897 commits into
nus-cs2113-AY2122S1:masterfrom
AY2122S1-CS2113T-T12-3:master
Open

[CS2113T-T12-3] Stonks XD#33
KZQ1999 wants to merge 897 commits into
nus-cs2113-AY2122S1:masterfrom
AY2122S1-CS2113T-T12-3:master

Conversation

@KZQ1999

@KZQ1999 KZQ1999 commented Sep 30, 2021

Copy link
Copy Markdown

Stonks XD is an expense tracker that help computing students manage their finances and provide reminders and advice regarding their spending. It is optimized for CLI users so that frequent tasks can be done faster by typing in commands.

@datn02 datn02 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.

Pretty nice project. But you could also focus more on the overall aesthetic of the DG.

Comment thread docs/DeveloperGuide.md Outdated
Comment on lines +105 to +109
The image below illustrates the sequence diagram in the context of listing methods
which includes listExpense, listIncome and listFind.


![Untitled Diagram drawio (2)](https://user-images.githubusercontent.com/69465661/138629733-63b2a115-5405-4af5-8a74-4d18f51c8f96.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.

Isn't the return arrows in the alt block be more like a square instead of a triangle?
image

Comment thread docs/DeveloperGuide.md
Comment on lines +16 to +19
![](Architecture.drawio.png)

The __Architecture Diagram__ above explains the high-level design of the StonksXD app.
Given below is a quick overview of the main components of the application and how they interact with each other:

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 could look like a class diagram with the arrows and the box contains multiple sections. Maybe you should change it to another representation method to avoid confusion

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

Comment thread docs/DeveloperGuide.md Outdated
Comment on lines +119 to +121
The image below shows the sequence diagram of how the `AddExpenseCommand` class is used and the other classes involved with it as well.

![img_2.png](AddExpenseCommandSD.drawio.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 this part to be added? It doesn't show up on the github page
image

Comment thread docs/DeveloperGuide.md Outdated
Comment on lines +273 to +275
- ####_Adding Income/ Expense entries_
1. Test Case: `add_ex d/DESCRIPTION a/AMOUNT c/CATEGORY`. </p>
Expected : Adds an expense item to the list. Displays confirmation message with timestamp.

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 part shows the hashtags (#) on the Github page. Is this intentional?
image

Comment thread docs/DeveloperGuide.md Outdated
Comment on lines +32 to +45
`StonksXD` is the main class of the app. It has 2 main functions:
1. Upon opening the app, it loads saved data by calling `DataManager`. Before closing the app, it calls `DataManager` again to save data.
2. Runs a loop receiving new user input from `Ui` and passing it to `Parser`.

`StonksXD` &rarr; `DataManager`

`Ui` &rarr; `StonksXD` &rarr; `Parser`

<br>

`Parser` is the class responsible for interpreting the user input.
It ensures the appropriate input format, and passes the input data to the appropriate command.

`StonksXD` &rarr; `Parser` &rarr; `Command`

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 could provide a class diagram to show how those components interact with each other
Similar comments for other components description

@arraysius arraysius 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.

The developer guide has been well written and clear for the most part. Some sections require more explanation or updated diagrams to reduce reader confusion.

Comment thread docs/DeveloperGuide.md
{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}
### Architecture

![](Architecture.drawio.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

While looking at the architecture diagram, it is not entirely clear what the arrows and their directions mean between components. Maybe a note can be placed to explain the what the arrows and the direction mean.

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 3-way arrow between Command, Financial Tracker and Budget Manager gave me the first impression that all 3 can interaction with one another. But the explanation below says
ParserCommandFinancialTracker
ParserCommandBudgetManager
Maybe two separate arrows can be used to display that Financial Tracker and BudgetManager are does not interact with one another directly.

Comment thread docs/DeveloperGuide.md
<br>

Below is a sequence diagram of the Budget component when `handleBudget` is executed:
![](BudgetComponent.drawio.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 getLimit() method sounds like it should return a value back to BudgetManager. It might be a drawing bug where the return was left out. If not, maybe a better method name can be used.

Comment thread docs/DeveloperGuide.md Outdated

The image below illustrates the sequence diagram in the context of saving data into `StonksXD_Entries.csv`.

![img_4.png](SavingFeatureSD.drawio.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

I assume that write(data:String) is void method. I think that if there is no return value, the return line can be drawn but the return word is not required.

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 lifeline should not exceed past the destruction symbol. Maybe the image can be edited to erase the extended lifeline or have a note to explain the limitation of the drawing and that it should not exceed.

Comment thread docs/DeveloperGuide.md Outdated
which includes listExpense, listIncome and listFind.


![Untitled Diagram drawio (2)](https://user-images.githubusercontent.com/69465661/138629733-63b2a115-5405-4af5-8a74-4d18f51c8f96.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 the return arrow here be square to adhere to the convention in class?

Comment thread docs/DeveloperGuide.md

<br>

Below is a sequence diagram of the Budget component when `handleBudget` is executed:

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
Apart from the return missing, perhaps the diagram is a bit complex and should be split into ref?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

In the budget component diagram, no return signs for all methods. It is better to add them to show that the method is done and it is returned to the previous layer?

Comment thread docs/DeveloperGuide.md

<br>

Below is a sequence diagram of the Budget component when `handleBudget` is executed:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

In the budget component diagram, no return signs for all methods. It is better to add them to show that the method is done and it is returned to the previous layer?

Comment thread docs/DeveloperGuide.md

<br>

Below is a sequence diagram of the Budget component when `handleBudget` is executed:

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 Xbudget class lifeline should not extend the opt frame? Since it is created only in opt and should be executed after it

@ThaddeusLim99 ThaddeusLim99 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 a very good effort so far. Needs some standardisation and correcting for sequence diagrams. Use of sequence and class diagrams are quite relevant. Explainations are generally not too long and thus not very difficult to understand.

Comment thread docs/DeveloperGuide.md Outdated
Snippets of code from Baeldung’s guide to unit testing of system.out.println() with junit were used.

{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}
Source: https://www.baeldung.com/java-testing-system-out-println

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 links could be hyperlinks instead for users to access them more easily?

Comment thread docs/DeveloperGuide.md Outdated
which includes listExpense, listIncome and listFind.


![Untitled Diagram drawio (2)](https://user-images.githubusercontent.com/69465661/138629733-63b2a115-5405-4af5-8a74-4d18f51c8f96.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 comment on isExpense() could be clearer. maybe resize it box to become bigger?

Comment thread docs/DeveloperGuide.md

Below is a sequence diagram of the Budget component when `handleBudget` is executed:
![](BudgetComponent.drawio.png)

@ThaddeusLim99 ThaddeusLim99 Oct 29, 2021

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 final return arrow of the BudgetManager object correct? Should the arrow not be at the end of the activation bar instead of the middle of the activation bar?
returnError

Comment thread docs/DeveloperGuide.md
<br>

Below is a sequence diagram of the Budget component when `handleBudget` is executed:
![](BudgetComponent.drawio.png)

@ThaddeusLim99 ThaddeusLim99 Oct 29, 2021

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 XBudget object box could be placed at the top along with the other object boxes for better standardization. Currently it looks a little messy.
boxes

Comment thread docs/DeveloperGuide.md

<br>

Below is a sequence diagram of the Budget component when `handleBudget` is executed:

@ThaddeusLim99 ThaddeusLim99 Oct 29, 2021

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 it would be better to standardise whether the conditional boxes (such as alt and opt) will be behind or infront of the activation bar that it crosses over with.
activationBar

Comment thread docs/DeveloperGuide.md Outdated

The image below illustrates the class diagram in the context of data saving and loading.

![img_3.png](DataManagerCD.drawio.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 it would be better to add in the most used variables in the Class Diagram rather than leaving it empty? So that the user has a better idea on what kind of variables are in the class.

@ThaddeusLim99 ThaddeusLim99 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.

Added some pictures for reference

AnShengLee and others added 30 commits November 8, 2021 21:43
…into branch-CurrencyTest

* 'master' of https://github.com/AY2122S1-CS2113T-T12-3/tp:
  Update
  Update user guide
  Update guides
  Update user guide
  User guide update
  Final commit
  Update code
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