-
Notifications
You must be signed in to change notification settings - Fork 140
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-W12-3] WheresMyMoney #4
base: master
Are you sure you want to change the base?
[CS2113-W12-3] WheresMyMoney #4
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please pay attention to coding standards.
Many non-trivial methods don't have header comments
public Float getPrice() { | ||
return price; | ||
} | ||
public String getDescription() { | ||
return description; | ||
} | ||
public String getCategory() { | ||
return category; | ||
} | ||
public void setPrice(Float price) throws WheresMyMoneyException { | ||
if (price == null) { | ||
throw new WheresMyMoneyException("Expense's price shouldn't be null."); | ||
} | ||
this.price = price; | ||
assert this.price != null : "Expense's price shouldn't be null."; | ||
} | ||
public void setDescription(String description) throws WheresMyMoneyException { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
include some blank lines in between the methods for better readability
|
||
|
||
/** | ||
* Add an expense to the end of the list |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
doesn't follow our guidelines for header comments
addExpense(Float.parseFloat(line[2]), line[1], line[0]); | ||
} | ||
|
||
// closing writer connection |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a redundant comment and also looks incorrect.
Comment mentions writer; code references reader!
|
||
import java.util.HashMap; | ||
|
||
public abstract class Command { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this and its child classes can do better with some header comments
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Almost there
docs/DeveloperGuide.md
Outdated
<u>Implementation Details</u> | ||
|
||
The following diagram is an inheritance diagram for Command and its children classes. | ||
This has been heavily simplified and only shows the key commands. | ||
|
||
![CommandInheritance.png](diagrams%2Fimages%2FCommandInheritance.png) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given how simplified it is and how few details it contains, is this diagram really necessary? Feel like you could either add more details or remove this diagram.
docs/DeveloperGuide.md
Outdated
|
||
The following diagram is a sequence diagram for execution of Command. | ||
|
||
![CommandExecutionSequence.png](diagrams%2Fimages%2FCommandExecutionSequence.png) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the execute method missing a return arrow and value?
|
||
The following diagram is a UML class diagram for `Expense` and `ExpenseList`: | ||
|
||
![ExpenseAndExpenseList.png](diagrams%2Fimages%2FExpenseAndExpenseList.png "UML Class Diagram for Expense and ExpenseList") | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should multiplicity be 0..1 and not 0.1 ?
|
||
Below is the UML class diagram for `RecurringExpense` and `RecurringExpenseList`: | ||
|
||
![RecurringExpenseAndRecurringExpenseList.png](diagrams%2Fimages%2FRecurringExpenseAndRecurringExpenseList.png "UML Class Diagram for RecurringExpense and RecurringExpenseList class") | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should multiplicity be 0..1 and not 0.1 ?
|
||
![CommandExecutionSequence.png](diagrams%2Fimages%2FCommandExecutionSequence.png) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The return arrow from isExit() method is labelled as "boolean", which is a variable type. Should it instead be "exit :boolean" or "exit" or something similar, instead of just "boolean"
|
||
![RecurringExpenseLoadFromCsvSequence.png](diagrams%2Fimages%2FRecurringExpenseLoadFromCsvSequence.png "UML Sequence Diagram for calling load command") | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When instantiating new objects for File, FileReader and CSVReader, should the arrow point to the side of the object box, with an activation box coming right out of the object box to represent the constructor? And maybe you could perhaps not include the "new" keyword in the arrow? Can refer to https://nus-cs2113-ay2425s1.github.io/website/schedule/week10/topics.html#W10-1 for the proper formatting for object creation in sequence diagrams.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
overall, a commendable effort that needs a little more work and you'll be there! good luck team x
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could you use colours for class diagrams to increase readability? perhaps the line spacing can be increased too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
overall, a commendable effort that needs a little more work and you'll be there! good luck team x
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! I noted some possible changes that you guys might want to apply. Keep the good work! 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think constructors should return any value, as constructors don't really return anything 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same issue here, constructors having return value. Shouldn't this be the case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
docs/DeveloperGuide.md
Outdated
2. `Expense`, `ExpenseList`, `ExpenseFilter` classes: Model expenses that commands can interact with. | ||
3. `Storage` class: Stores information between sessions. | ||
4. Logger and other utility classes: Provide extra functionalities for the software. | ||
### UI and Parser |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the indentation is off. The formatting could be better
|
||
The following diagram is a sequence diagram for execution of Command. | ||
|
||
![CommandExecutionSequence.png](diagrams%2Fimages%2FCommandExecutionSequence.png) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
![ExpenseAndExpenseList.png](diagrams%2Fimages%2FExpenseAndExpenseList.png "UML Class Diagram for Expense and ExpenseList") | ||
|
||
### Expense Filter |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would it be better to have a sequence diagram to showcase each of the commands and how they work
|
||
Commands interact with `UI` and `Parser` classes via `Main`, as illustrated in the following class diagram: | ||
|
||
![UiToCommand.png](diagrams%2Fimages%2FUiToCommand.png) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has alot of details. Do you think we can make it more concise
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall, your groups UG makes me worried for my team UG. Amazing work!
docs/UserGuide.md
Outdated
## Table of Contents | ||
- [Introduction](#introduction) | ||
- [Quick Start](#quick-start) | ||
- [Features](#features-) | ||
- [FAQ](#faq) | ||
- [Others](#others) | ||
- [Command Summary](#command-summary) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great that you added Table of Content (TOC) to improve readability of the Developer Guide.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Starting the Developer Guide with high-level overview diagram is good for me quickly understand architecture. The amazing part that is looks way better than plantuml.
docs/diagrams/images/UiToCommand.png
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a minor issue, but it is difficult to see 1
at the head of the arrows.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good effort on the sequence diagrams. Two minor issues: firstly will be the conditions overlapping with activation bar makes it hard to read. Secondly, should the function called be closer to the head of the arrow?
Update UG and Help Command with Set feature
Update Design Guide
Update UserGuide, HelpCommand and PPP
Update edit command
MVP of Visualization command
- Remove unused imports & wildcard imports - Visualizer can now work for time ranges up to three years
Add information about CategoryStorage
Correct link to category class UML diagram
Final round of bug fixes
Add calculations section to DG
Update PPP details
Update documentation
Fix typo in DG
into updatePPPandUGandDG # Conflicts: # docs/diagrams/images/UiToCommand.png # docs/diagrams/plantuml/UiToCommand.puml
Update PPP and fix wrong file name
WheresMyMoney helps frugal and tech-savvy university students track how much they are spending and what they are spending it on. The application can provide summaries and statistical insights on their spending habits, optimised for people who prefer a CLI