Skip to content

[CS2113-T12-3] BudgetBuddy#35

Open
Dheekshitha2 wants to merge 658 commits intonus-cs2113-AY2324S2:masterfrom
AY2324S2-CS2113-T12-3:master
Open

[CS2113-T12-3] BudgetBuddy#35
Dheekshitha2 wants to merge 658 commits intonus-cs2113-AY2324S2:masterfrom
AY2324S2-CS2113-T12-3:master

Conversation

@Dheekshitha2
Copy link
Copy Markdown

BudgetBuddy is for users who wish to handle and track their expenses on a singular platform. It provides a faster and more efficient way to track and calculate expenses, and the ability to deal with finances on a singular platform.

JeffinsonDarmawan pushed a commit to JeffinsonDarmawan/tp that referenced this pull request Mar 20, 2024
yeozongyao added a commit to yeozongyao/tp that referenced this pull request Mar 28, 2024
…yao-defensiveCoding

Bug fixes for unsupported commands - index for mark, unmark and remov…
Copy link
Copy Markdown

@ZhangWenyue3325 ZhangWenyue3325 left a comment

Choose a reason for hiding this comment

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

Generally great job done! The explanantions are very clear and detailed, various types of diagrams are provided. But there are some repetitive diagrams as well as unnecessary details provided.

Comment thread docs/DeveloperGuide.md Outdated

<img alt="ClassDiagram2.png" height="800" src="ClassDiagram2.png" width="700"/>

#### Activity diagram
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 job including various types of diagrams for illustration!

Comment thread docs/DeveloperGuide.md Outdated
#### Class diagram
The class diagram below outlines the relationships between the classes involved in the Budget Management feature:

<img alt="ClassDiagram2.png" height="800" src="ClassDiagram2.png" width="700"/>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

should the green dots in front of the methods be positive or negative signs instead?

Comment thread docs/DeveloperGuide.md
| listSavings() | void | Prints the savings, filtered by `filterCategory`, to the CLI |
| calculateRemainingSavings() | double | Calculates the remaining amount after deducting total expenses |

The Listing Savings feature follows these steps when a user inputs a command to list savings:
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 of explanations truly needed?

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 for all other parts that include these steps

Comment thread docs/DeveloperGuide.md
|---------------|-------------|-------------------------------------------------------------------------------------------|
| editExpense() | void | Edits the `category`, `amount` and `description` for the expense in the specified `index` |

The following UML Sequence diagram below shows how the Edit Expense Feature Command is executed when a user
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 sequence diagrams seem to be repetitive

Copy link
Copy Markdown

@pradeep-cod pradeep-cod left a comment

Choose a reason for hiding this comment

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

I have some comments for you! Overall, good job! Keep it up!

Comment thread docs/DeveloperGuide.md
an `ExpenseList` object, `category`, `index`, `amount` and `description`. The relevance of these Class Attributes in
`EditExpenseCommand` is as follows:

| Class Attribute | Variable Type | Relevance |
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 display of the class attributes and variable type in a table format

Comment thread docs/DeveloperGuide.md
After determining the type of `CommandCreator` object, the Parser initializes the `CommandCreator` object
with all its required parameters.

Here are some examples :
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Great work in giving examples of how your parser works!

Comment thread docs/DeveloperGuide.md
| exchangeRates | Map<Currency, Double> | Stores exchange rates with currencies as keys |

When `BudgetBuddy` calls `command.execute()`, `ChangeCurrencyCommand` employs the following methods from `CurrencyConverter` to convert the currency of all financial records:

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 Consistency with making the tables for the class attributes

Comment thread docs/DeveloperGuide.md Outdated
| setDefaultCurrency | void | Updates the default currency to a new value |


Here's the step-by-step process when the user uses the Currency Converter feature:
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 since you have the sequence diagrams, I feel it is not necessary to explain your commands again

Comment thread docs/DeveloperGuide.md Outdated
class. Below is a description of the key class attributes and methods involved in the budget setting and listing
process:

##### Class Attributes for `SetBudgetCommand`:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Formatting for these tables on the DG is hard to see.

Copy link
Copy Markdown

@Geinzit Geinzit left a comment

Choose a reason for hiding this comment

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

Overall, extremely detailed and informative. Awesome work!

Comment thread docs/DeveloperGuide.md Outdated
|-----------------------------|---------------|--------------------------------------------------------------------|
| setBudget(category, budget) | void | Sets or updates the budget for a given category in the ExpenseList |
| getBudgets() | List<Budget> | Retrieves the list of all budgets set |

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 three tables above are not properly rendered in the result html. Checking the formatting may help.

Comment thread docs/DeveloperGuide.md Outdated
### 3.1 Architecture
The following diagram provides a rough overview of how BudgetBuddy is built

![Diagram of overview of BudgetBuddy](diagrams/Introduction.jpg)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Very clear and understandable architecture. Good job!

Comment thread docs/DeveloperGuide.md Outdated
#### Class diagram
The class diagram below outlines the relationships between the classes involved in the Budget Management feature:

<img alt="ClassDiagram2.png" height="800" src="ClassDiagram2.png" width="700"/>
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 green dots and red square doesn't follow the standard + - notation for public/private members. Maybe using the standard or further explanations can help.

Comment thread docs/DeveloperGuide.md Outdated
where the command gets executed :
![UML Sequence Diagram of Command](diagrams/sequence_diagram_command.jpg)

#### 3.5 Storage Class
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 Storage class can use some further information for developers. Information such as how the save/load function is implemented, how the data is formatted in the output files when writing and how the data is interpreted when reading.

Copy link
Copy Markdown

@FeathersRe FeathersRe left a comment

Choose a reason for hiding this comment

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

All in all the team has done a marvellous job in documenting DG! It is a comprehensive and detailed breakdown of their system architecture with interactions between classes well explained. Further improvement suggestions could be to have a consistent standard with the UML diagrams (background colour, activation bar etc), such that the presentation is more coherent.

Comment thread docs/DeveloperGuide.md Outdated
process:

##### Class Attributes for `SetBudgetCommand`:
| Class Attribute | Variable Type | Relevance |
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Rendering errors for the command table in HTML view. Recommend checking the formatting for the tables again.

Comment thread docs/DeveloperGuide.md Outdated
The following UML Sequence diagram shows how `SetBudgetCommand` works when a user sets a budget for a category in the
following format: `set budget c/<Category> b/<Amount>`

<img alt="SetBSD.png" height="400" src="SetBSD.png" width="700"/>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

A clear and concise drawing of the UML diagram! However, would further recommend to standardise all return commands to use dotted arrows.

Comment thread docs/DeveloperGuide.md Outdated
by what amount, making it easy for users to identify areas of concern.


#### Sequence diagrams
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

A minor issue with the consistency of the sequence diagrams: The diagram here is a concise drawing of UML while the later ones utilise the full annotation. Would it be possible for such standards to be consistent (e.g. Available drawing of activation bar for all of them)?

Comment thread docs/DeveloperGuide.md Outdated
The following UML Sequence Diagram shows the processes of the MenuCommand upon the call of its execute() command:
![Sequence Diagram for Menu Command](diagrams/sequenceDiagram_MenuCommand.jpg)

Given below is an example usage scenario and how the full Menu feature 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.

A good and detailed breakdown of how the feature functions!

Comment thread docs/DeveloperGuide.md Outdated
| addSaving() | void | Add savings to the existing list of `savings` |

The following UML Sequence diagram shows how the Parser works to obtain the relevant inputs for the Add Expense Feature :
![Sequence Diagram for Parser for Add Expense Feature](docs\diagram\sequenceDiagram_AddSavings.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.

A minor issue: this UML diagram not rendering correctly.

Copy link
Copy Markdown

@Kishen271828 Kishen271828 left a comment

Choose a reason for hiding this comment

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

Overall, the DG is detailed and well-explained. A few minor issues such as format and notations used can be improved. Great job!

Comment thread docs/DeveloperGuide.md Outdated
Comment on lines +20 to +41
##### Class Attributes for `SetBudgetCommand`:
| Class Attribute | Variable Type | Relevance |
|-----------------|---------------|---------------------------------------------------------------------|
| expenseList | ExpenseList | Object containing the list of expenses to check against set budgets |
| category | String | The category for which the budget is being set |
| budget | double | The budget amount to be set for the category |

##### Class Attributes for `ListBudgetCommand`:
| Class Attribute | Variable Type | Relevance |
|-----------------|---------------|---------------------------------------------------------------------|
| expenseList | ExpenseList | Object containing the list of expenses to check against set budgets |


Upon the call of the `execute()` method in `BudgetBuddy` using `command.execute()`, `SetBudgetCommand` will update the
budget in `ExpenseList` using `setBudget`. Similarly, `ListBudgetCommand` will fetch and display all categories with
their budgets using `getBudgets`, and highlight those that are above the set budget.

##### Key Methods used from `ExpenseList`
| Method | Return Type | Relevance |
|-----------------------------|---------------|--------------------------------------------------------------------|
| setBudget(category, budget) | void | Sets or updates the budget for a given category in the ExpenseList |
| getBudgets() | List<Budget> | Retrieves the list of all budgets set |
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

It is difficult to understand the tables under the class attributes for SetBudgetCommand, ListBudgetCommand and ExpenseList. The formatting here can definitely be improved.

Comment thread docs/DeveloperGuide.md Outdated
#### Class diagram
The class diagram below outlines the relationships between the classes involved in the Budget Management feature:

<img alt="ClassDiagram2.png" height="800" src="ClassDiagram2.png" width="700"/>
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 class diagram here doesn't follow the standard used in the course website. The access modifiers are supposed to be denoted using + for public and - for private members.

Comment thread docs/DeveloperGuide.md Outdated

The following UML Sequence Diagram depicts the process of the process through which an input is gone through the application, up till the point
where the command gets executed :
![UML Sequence Diagram of Command](diagrams/sequence_diagram_command.jpg)
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 job on explaining how the command is processed and executed! The sequence diagram illustrated is very clear

Comment thread docs/DeveloperGuide.md Outdated
Comment on lines +74 to +76
The activity diagram provides an overview of the Budget Management feature's workflow:

<img alt="ActivityDiagram.png" height="600" src="ActivityDiagram.png" width="700"/>
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 workflow of Budget Management feature has been well explained here using the activity diagram, kudos!

itsmejr257 and others added 30 commits April 14, 2024 19:04
Remove repetitive explanation of features in PPP
Add changes to reduce savings UI
Update the addsaving function
Add Final Changes to DG, UG and Add minor bug-fixes
Minor Changes to DG, UG, Storage and RecurringExpenseCommandCreator
Add disclaimer to the running of JAR 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.