[CS2113-F13-2] BrokeMan#51
Conversation
Resolve merge conflict in nus-cs2113-AY2223S2#51
updated MESSAGE_USAGE in command classes
Added Save component for Budget and Read Component
|
|
||
|  | ||
|
|
||
| The ***architecture diagram*** given above is explains the high level design of the program. |
There was a problem hiding this comment.
There seems to be a typo in this sentence
|
|
||
| --- | ||
|
|
||
| |Version| As a ... | I want to ... | So that I can ... | |
There was a problem hiding this comment.
User stories are repeated in the DG, there are 2 tables
|
|
||
| --- | ||
|
|
||
| ## implementation |
| @@ -1,38 +1,253 @@ | |||
| # Developer Guide | |||
There was a problem hiding this comment.
Perhaps can add more diagrams of different types
|
|
||
| ## Design | ||
|
|
||
| ### Architecture |
There was a problem hiding this comment.
Architecture diagram is clear and well explained
denzelcjy
left a comment
There was a problem hiding this comment.
Nice work on trying to segment the information for better readability, can consider using more bullets, whitespaces and different font sizes in order to keep it more consistent. Can consider adding sequence diagrams, and maybe a class diagram to show how different classes interact with each other. Overall good job! 👍
| - [UI component](#ui-component) | ||
| - [Parser component](#parser-component) | ||
| - [Storage component](#storage-component) | ||
| - [Common classes](#common-classes) |
There was a problem hiding this comment.
The link here for the common classes does not seem to be working, perhaps edit the content in the link bracket to be #common-class for it to work?
| 4. [Appendix: Requirements](#appendix--requirements) | ||
| 5. [Appendix: Instructions for manual testing](#appendix--instructions-for-manual-testing) |
There was a problem hiding this comment.
These 2 links also do not seem to work when I clicked it, perhaps consider changing the '--' to '-' after 'appendix'?
| x | ||
| {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} | ||
|
|
||
| ## Design & implementation | ||
| {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the | ||
| original source as well} |
There was a problem hiding this comment.
there seems to be duplicate sentences here, can consider updating and filling it up whenever possible!
|  | ||
|
|
||
| The ***architecture diagram*** given above is explains the high level design of the program. | ||
|
|
||
| Given below is a quick overview of the main components and how they interact with each other. | ||
|
|
||
| **Main components of architecture** | ||
|
|
||
| `BrokeMan` has one class [`Main`](https://github.com/AY2223S2-CS2113-F13-2/tp/blob/master/src/main/java/seedu/brokeMan/BrokeMan.java), which is responsible for: | ||
| - At program launch: Initialises the components in the correct sequence, and connect them up with each other | ||
| - At program termination: Shuts down the components and invokes cleanup methods where necessary. | ||
|
|
||
| [`Common`](#common-class) represents a collection of messages used by multiple other components. |
There was a problem hiding this comment.
|
|
||
| --- | ||
|
|
||
| ## implementation |
There was a problem hiding this comment.
Can consider to change it to "Implementation" instead
| ### Entry | ||
|
|
||
| Entry class is the underlying superclass for Expense and Income classes. It establishes the common attributes and | ||
| methods that are necessary to represent Expenses and Incomes. Abstract class is used to represent their common features | ||
| to maximize code reusability and increase maintainability. | ||
|
|
||
| Private attributes | ||
|
|
||
| Info: String that stores the description of the entry | ||
|
|
||
| Amount: Double that stores the monetary value of entry | ||
|
|
||
| Time: LocalDateTime that stores the date and time of entry | ||
|
|
||
| Category: Category that stores the type tag of entry | ||
|
|
||
| **Methods** | ||
|
|
||
| Getters can be used to provide the private attributes to other classes | ||
|
|
||
| editDescription(), editAmount(), editTime(), editCategory() | ||
|
|
||
| * Takes in corresponding parameters to edit the private attributes. | ||
| * Used by EntryList to make edits | ||
|
|
||
| isSameMonth() |
There was a problem hiding this comment.
Nice work having a short summary as a description, can consider bolding "Private attributes" to make it aligned in formatting with the "Methods" that you already bolded below.
Can also consider adding bullets to indent the subpoints "Info, Amount, Time, Category" to increase readability!
Alternatively, maybe you could use a table as another way to display these details :)
| | Priority | Version | As a ... | I want to ... | So that I can ... | | ||
| |----------|---------|----------|-------------------------------------------|--------------------------------------------------| | ||
| | `* * *` | v1.0 | user | add, delete, edit, and list my income | manage my income | | ||
| | `* * *` | v1.0 | user | add, delete, edit, and list my expenses | manage my expenses | | ||
| | `* * *` | v1.0 | user | set and view my budget | set expectation of how much money I should use | | ||
| | `* * *` | v1.0 | user | view how much of the budget I spend | manage and change my spending habit as necessary | | ||
| | `* * *` | v1.0 | user | view all command that I can enter | get help on the features if necessary | | ||
| | `* * *` | v2.0 | user | list monthly expenses, income, and budget | refer to financial status in previous months | | ||
| | `* * *` | v2.0 | user | save all my income and expenses entered | so that I can refer to it next time I return | |
There was a problem hiding this comment.
This is a second User Stories table that is almost similar to the first one above, is this supposed to be combined or meant to be an additional table? Can consider providing just 1 table to reduce confusion 👍
| ### SaveExpense, SaveIncome | ||
|
|
||
| The SaveExpense and SaveIncome class deal with saving in the user inputted data locally so that it can be later accessed. | ||
| **Methods** |
| SortEntryByAmount() | ||
|
|
||
| * Returns a sorted list of entry by amount of entry. | ||
|
|
||
| SortEntryByDate() |
There was a problem hiding this comment.
are these 2 methods meant to be written as sortEntryByAmount and sortEntryByDate() instead? To follow the camelCase convention for method naming
Merge an updated upstream
UG update
Mnsd05
left a comment
There was a problem hiding this comment.
Overall, your developer guide is easy to understand, well done!
|
|
||
|  | ||
|
|
||
| The ***architecture diagram*** given above is explains the high level design of the program. |
There was a problem hiding this comment.
You may add the Main class to the diagram
| ### Ui component | ||
|
|
||
| ### Parser component | ||
|
|
||
| ### Command component | ||
|
|
||
| ### Storage component | ||
|
|
||
| ### EntryList component | ||
|
|
||
| ### Common class |
There was a problem hiding this comment.
This part is empty, you might want to delete or add the sequence diagrams for each component
|
|
||
| ## Instructions for manual testing | ||
| ## Appendix: Instructions for manual testing | ||
|
|
||
| {Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} |
There was a problem hiding this comment.
You can try to include how you give some input to the program and how the program should respond. For example:
Input: abc
Expected: Oops, I don't know what that means
| | Priority | Version | As a ... | I want to ... | So that I can ... | | ||
| |----------|---------|----------|-------------------------------------------|--------------------------------------------------| | ||
| | `* * *` | v1.0 | user | add, delete, edit, and list my income | manage my income | | ||
| | `* * *` | v1.0 | user | add, delete, edit, and list my expenses | manage my expenses | | ||
| | `* * *` | v1.0 | user | set and view my budget | set expectation of how much money I should use | | ||
| | `* * *` | v1.0 | user | view how much of the budget I spend | manage and change my spending habit as necessary | | ||
| | `* * *` | v1.0 | user | view all command that I can enter | get help on the features if necessary | | ||
| | `* * *` | v2.0 | user | list monthly expenses, income, and budget | refer to financial status in previous months | | ||
| | `* * *` | v2.0 | user | save all my income and expenses entered | so that I can refer to it next time I return | |
There was a problem hiding this comment.
Well done! I find that priority is a good feature of your user stories as it gives an idea of the most important features in your product
edited user guide
Developer Guide for Save Methods and Classes.
Added multiple J Unit test classes to test EntryList, ExpenseList, and IncomeList.
Add Entry Test
fixed bugs in set budget command
Added details for class implementation.
added samuel's image and updated aboutus.md
Add logging and reduce repetitive testing
fixed UG flaw
Copied readme also to the project root.
updated UG


BrokeMan helps students running on low budget by organizing their budget usage and expenditures. It provides various features to help students minimize their spending and raise awareness on their spendings. It is optimized for CLI users so that budget and expenditure recording can be done quicker through entering commands.