diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 64e1f0ed2b..3c818a645d 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -4,26 +4,88 @@ {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} -## Design & implementation +## 1. Introduction +Welcome to the Developer Guide for BudgetBuddy! This guide has been created to help you current and future +developers of Budget understand how BudgetBuddy works and aid developors in easily adding new features, +fix bugs. In this guide, it will go over the main parts of the app, how they work together, +and why we made them that way. -{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} +## 2. Setup Guide +This section describes how to set up the coding environment, along with the tools needed to work on BudgetBuddy +### 2.1. Prerequisites +1. JDK 11 +2. IntelliJ IDEA -## Product scope -### Target user profile +## 3.Design -{Describe the target user profile} +### 3.1 Architecture +The following diagram provides a rough overview of how BudgetBuddy is built -### Value proposition +![Diagram of overview of BudgetBuddy](diagrams/Introduction.jpg) + +`BudgetBuddy` is the main class of the application and directly interacts with the user, passing along the input +into the Parser. The `Parser` creates a `Command` object depending on the user's input, which will be executed in +`BudgetBuddy`. The `Command` object utilizes methods and the class present in the `Application Classes`, which will +be explained in more detail in the following sections. + +#### 3.2 Parser Class +Make Class Diagram + Explanation + +#### 3.3 Ui Class +Make Class Diagram + Explanation + +#### 3.4 Command Class +Make Class Diagram + Explanation + +#### 3.5 Storage Class +Make Class Diagram + Explanation + +### 3.6 Application Classes +The classes present in this group of `Application Classes` refers to certain elements which serves a purpose more +towards the `user` instead of application itself. They represent data of the user's financial transactions, +including expenses and savings, along with mechanisms for organizing and managing this data in meaningful ways. -{Describe the value proposition: what problem does it solve?} +##### 3.6.1 Transaction +Explain what it does -## User Stories +##### 3.6.2 Expense +Explain what it does -|Version| As a ... | I want to ... | So that I can ...| -|--------|----------|---------------|------------------| -|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| -|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| +##### 3.6.3 ExpenseList +Explain what it does + +##### 3.6.4 Saving +Explain what it does + +##### 3.6.5 SavingList + +### 4. Implementation + +## 5. Product scope + +### Target user profile +This product is for users who can type fast, and wishes to handle and track their current and future +expenses on a singular platform. + +### Value proposition +BudgetBuddy is faster and more efficient way to track and calculate current and future expenses if a user is able to +type fast. It also provides the ability to deal with finances on a singular platform. + +## 6. User Stories + +| Rank | As a | I can | So that I can | +|------|-------------------------------|-------------------------------------------|-----------------------------------------------| +| 1 | user | add expenses | track my spending | +| 2 | user | Categorise my expenses | manage my finances more efficiently | +| 3 | user | Plan my budget | Avoid overspending | +| 4 | user | Edit or delete expenses | remove any incorrectly added items | +| 5 | User | Identify my largest spending category | cut down on my spending | +| 6 | user | allocate saved funds | know how much I will have left after expenses | +| 7 | user | Have a section for children's allowances | easily monitor their spending and teach them | +| 8 | user interested in financial literacy | access educational content | Learn more about financial literacy | +| 9 | frequent traveler | log expenses in multiple currencies | accurately track my expenses across countries | +| 10 | User | See what commands i can use | I know how to use the application | ## Non-Functional Requirements diff --git a/docs/diagrams/Introduction.jpg b/docs/diagrams/Introduction.jpg new file mode 100644 index 0000000000..98ab999098 Binary files /dev/null and b/docs/diagrams/Introduction.jpg differ