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

[CS2113-W12-2] Moolah Manager #5

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

Conversation

wcwy
Copy link

@wcwy wcwy commented Sep 28, 2022

Financial bookkeeping via traditional mobile applications has always been a hassle due to the repetitive clicks needed to manage monetary transactions. With Moolah Manager, you will be encouraged to take ownership of managing your finances via a time-saving and efficient command-line (CLI) interface.

The main features of Moolah Manager include:

  • Managing records of monetary transactions
  • Gathering financial insights such as categorical savings and periodic expenditure
  • General budgeting and reminders about spending

redders7 referenced this pull request in AY2223S1-CS2113-T18-1b/tp Oct 18, 2022
Copy link

@xzynos xzynos left a comment

Choose a reason for hiding this comment

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

The developer guide is very well done. It is clear, concise, and the diagrams included helps the user to understand the program easily.

Comment on lines 38 to 44
## Preface

Moolah Manager is a desktop app for managing your finances, optimised for use via a Command Line Interface (CLI). Designed for people who are
fast typists, it can help to process day-to-day transactions, namely your incomes and expenses. These can help you to see all your transactions
and provide you with a valuable insight into your spending habits.

This document is meant to assist potential users and developers in understanding how our program works.
Copy link

Choose a reason for hiding this comment

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

The preface section gives a good introduction to your project!

Choose a reason for hiding this comment

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

Thanks a lot for your detailed feedback, Fang Jie! Our team appreciates it and will work towards the suggestions that you have provided to improve our developer guide.

Comment on lines 79 to 95
### Architecture
![Architecture Diagram](images/ArchitectureDiagram.png)
The Architecture Diagram shown above explains the high-level design of Moolah Manager.
The `Duke` class contain the main method which holds the responsibility for the following:
1. On application launch, it will initialise the `UI`, `Storage` and `Data` components.
2. During application execution, it will interact with `UI`, `Parser`, `Command` components
to execute the command entered by the users.
3. On any exception caught, it will handle the exception and interact with the `UI` to display the error message.

`Common` represents a collection of classes or enums used by multiple components.

The rest of the application consists of six components:
- `UI`: The user interface of Moolah Manager
- `Parser`: Parser for user's entered command.
- `Command`: The command executor.
- `Data`: Holds the data of the application in memory.
- `Storage`: File I/O to store the data onto the hard disk.
Copy link

Choose a reason for hiding this comment

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

The software architecture section provides a clear and easily understandable description of how the software is designed.


#### How the architecture components interact with each other
The sequence diagram below shows how the components interact on command `budget b/1000`.
![Architecture Interaction](images/ArchitectureSequenceDiagram.png)
Copy link

Choose a reason for hiding this comment

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

Good use of notes to describe the limitations of the UML tool with regards to the lifeline.

Comment on lines 250 to 259
1) `Add` - Adds an `Income` or `expense` type transaction into the list of transaction. [Add Command](#add-command)
2) `Budget` - Adds an `Budget` into Moolah Manager, which sets the basis for financial tracking. [Budget Command](#budget-command)
3) `Bye` - Exits Moolah Manager. [Bye Command](#bye-command)
4) `Delete` - Deletes an `Income` or `expense` type transaction from the list of transaction. [Delete Command](#delete-command)
5) `Edit` - Edits an `Income` or `expense` type transaction from the list of transaction. [Edit Command](#edit-command)
6) `Find` - Searches for an `Income` or `expense` type transaction from the list of transaction given keywords. [Find Command](#find-command)
7) `Help` - Outputs the usage of commands of Moolah Manager. [Help Command](#help-command)
8) `List` - List all transactions. [List Command](#list-command)
9) `Purge` - Deletes all transactions from the list of transaction. [Purge Command](#purge-command)
10) `Stats` - View statistics on transactions based on the list of transactions in Moolah Manager. [Stats Command](#stats-command)
Copy link

Choose a reason for hiding this comment

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

I believe the numbered list may not be rendered correctly on the site.

Choose a reason for hiding this comment

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

Indeed it is not rendered correctly, we will have to amend this. @brian-vb do note to update the numbering in markdown format (e.g. 1., 2., ...)


### Edit Command

{Describe the implementation for the Edit Command}
Copy link

Choose a reason for hiding this comment

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

Do add the description for Edit Command.


## Product scope
### Target user profile

{Describe the target user profile}
Copy link

Choose a reason for hiding this comment

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

Do add the description for your target user profile.


{Give non-functional requirements}

## Glossary
## Appendix D: Glossary

* *glossary item* - Definition
Copy link

Choose a reason for hiding this comment

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

Do add definitions to your glossary to help the user understand the terms you've used.

help messages to the users.

The structure of the application focusing on the help command is illustrated in the class diagram below:
![Data Component Class Diagram](images/HelpClassDiagram.png)
Copy link

Choose a reason for hiding this comment

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

I believe the HelpMessage class can be omitted and replaced with a note instead.

parsers are used to generate a command object with its accurate parameters according to the input from the UI.

The structure of the data component in Moolah Manager is illustrated in the class diagram below:
![Data Component Class Diagram](images/ParserClassDiagram.png)
Copy link

Choose a reason for hiding this comment

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

Do consider removing some functions in the ParameterParser class if they are not used to describe how the component works.

### Architecture
![Architecture Diagram](images/ArchitectureDiagram.png)
The Architecture Diagram shown above explains the high-level design of Moolah Manager.
The `Duke` class contain the main method which holds the responsibility for the following:
Copy link

Choose a reason for hiding this comment

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

May I check if the name of the application is still Duke?

Choose a reason for hiding this comment

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

Yup @xzynos , the main class name for Moolah Manager will be Duke.

chinhan99 and others added 27 commits October 26, 2022 19:47
Add command cheat sheet to User Guide
Added guides for command format, help command and budget command
MIN_AMOUNT_VALUE is now correctly representing the minimum amount that
a user can set for a transaction.
chinhan99 and others added 30 commits November 6, 2022 19:47
Edit Storage method header comments
Update size of my diagrams
Add missing tag for help message and rephrase unclear words used
DG changes for Edit and Delete
Fix minor sequence diagram issue pre-release
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.

9 participants