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

[CS2113T-T12-4] RestaurantBuddy #35

Open
wants to merge 216 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 123 commits
Commits
Show all changes
216 commits
Select commit Hold shift + click to select a range
9fcc12f
Added details to the docs/AboutUs.md page
jerrelllzw Sep 30, 2021
3856130
Add details to AboutUs.md
kairoskoh Sep 30, 2021
508fd89
Add name
leecheokfeng Sep 30, 2021
2ecf37f
changed name
Cesare4869 Sep 30, 2021
ffaeb2e
Merge pull request #3 from leecheokfeng/leeCheokFeng-AboutUs
Cesare4869 Sep 30, 2021
9a54eeb
Resolve conflicts on AboutUs.md
kairoskoh Sep 30, 2021
b3a78bb
Merge pull request #1 from jerrelllzw/jerrellLow-AboutUs
jerrelllzw Sep 30, 2021
0ab60ef
resolve conflicts
Cesare4869 Sep 30, 2021
85d386c
Merge pull request #2 from kairoskoh/kairosKoh-AboutUs
jerrelllzw Sep 30, 2021
058e823
merged conflict zehang
Cesare4869 Sep 30, 2021
4236bc6
Merge pull request #4 from Cesare4869/Zehang-AboutUs
Cesare4869 Sep 30, 2021
d89d208
new change in aboutus
Cesare4869 Oct 6, 2021
d2490b6
Merge pull request #15 from Cesare4869/Zehang-AboutUs
Cesare4869 Oct 6, 2021
f2b36eb
copy some ip code to tp
Cesare4869 Oct 6, 2021
7e87353
include parser and disable storage, now can only do exit and false co…
Cesare4869 Oct 7, 2021
8501843
Merge pull request #16 from Cesare4869/Zehang-AboutUs
Cesare4869 Oct 7, 2021
c4c5f20
Add Employee.java
kairoskoh Oct 7, 2021
36e1c16
Add basic feature for Employee.java
kairoskoh Oct 7, 2021
f4f2494
Add basic feature for EmployeeList.java
kairoskoh Oct 7, 2021
32aaa7a
Add basic feature for EmployeeParser.java
kairoskoh Oct 7, 2021
a31cdb1
Add EmployeeParserTest.java
kairoskoh Oct 7, 2021
0bf8634
Merge pull request #17 from kairoskoh/branch-week8-kairos
kairoskoh Oct 7, 2021
3b84a32
Add new packages for ingredients and menu
kairoskoh Oct 10, 2021
53a3e83
Merge pull request #18 from kairoskoh/branch-week8-meeting
kairoskoh Oct 10, 2021
9650ce7
Add remove and list functions for employee
kairoskoh Oct 10, 2021
5b8616a
Added MenuItem class and its related functions (add, remove, list)
jerrelllzw Oct 10, 2021
ea74dc4
add storage in main method
Cesare4869 Oct 10, 2021
b799a4a
add storage for all classed in main
Cesare4869 Oct 10, 2021
1f0f59e
Create ingredient class and functions to list/remove/add
leecheokfeng Oct 10, 2021
07f92ba
Merge pull request #19 from kairoskoh/branch-week8-kairos-employee
kairoskoh Oct 11, 2021
cef820d
Merge pull request #23 from leecheokfeng/branch-week8-ingredient
kairoskoh Oct 11, 2021
f18c310
Merge pull request #22 from Cesare4869/master
kairoskoh Oct 11, 2021
05dfb7f
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-T12-4/tp…
jerrelllzw Oct 11, 2021
6d5e3ab
Merge pull request #20 from jerrelllzw/Menu
kairoskoh Oct 11, 2021
2774d62
Refactor code to reduce number of lines of code in main method
kairoskoh Oct 11, 2021
cf46b0d
Merge pull request #25 from kairoskoh/branch-week9-meeting
kairoskoh Oct 11, 2021
de2ccad
Refactor ingredientParser to use printLine
leecheokfeng Oct 11, 2021
68951f0
Merge pull request #26 from leecheokfeng/branch-week8-ingredient
leecheokfeng Oct 11, 2021
7c11b7e
Add ascii art for welcome message
kairoskoh Oct 11, 2021
2c2181f
Remove additional print lines to reduce clutter on command line
kairoskoh Oct 11, 2021
0e7d8e3
Add fixes for whitespaces inputs
kairoskoh Oct 11, 2021
ac453c6
fix storage problem
Cesare4869 Oct 11, 2021
3126520
Merge branch 'Menu'
jerrelllzw Oct 11, 2021
b1b11e2
- added jUnit test for MenuParser class
jerrelllzw Oct 11, 2021
846196e
added assertions into deleteMenu method in MenuParser class
jerrelllzw Oct 11, 2021
94d9df2
added comments to the assertions
jerrelllzw Oct 11, 2021
b5bf716
-added MenuUi class for menu related messages to be printed
jerrelllzw Oct 11, 2021
81b85e2
-added error handling for command inputs with invalid parameters
jerrelllzw Oct 11, 2021
5a9a955
reformatted code
jerrelllzw Oct 11, 2021
dc87281
-reformatted code
jerrelllzw Oct 11, 2021
d55ed03
Add logging for employeeparser class
kairoskoh Oct 12, 2021
6323af5
add assertion in storage
Cesare4869 Oct 13, 2021
1f36bf5
Add logging and assert for employeeparser class
kairoskoh Oct 13, 2021
b194cf8
Add exception handling to ingredientParser
leecheokfeng Oct 13, 2021
afd0bf8
Extract UI into ingredientUI class
leecheokfeng Oct 13, 2021
e3cc03c
Merge pull request #37 from leecheokfeng/branch-week9-ingredient-exce…
jerrelllzw Oct 13, 2021
49ea04f
Merge pull request #34 from kairoskoh/branch-week9-kairos
jerrelllzw Oct 13, 2021
741901b
Update MainParser.java
jerrelllzw Oct 13, 2021
9793240
Merge pull request #33 from Cesare4869/master
jerrelllzw Oct 13, 2021
61853a8
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-T12-4/tp…
jerrelllzw Oct 13, 2021
f08adcb
Merge pull request #32 from jerrelllzw/Errors
jerrelllzw Oct 13, 2021
79e73de
-corrected checkstyle errors
jerrelllzw Oct 13, 2021
f2fc79b
Merge pull request #38 from jerrelllzw/Errors
jerrelllzw Oct 13, 2021
71b7a2a
fixed a bug in removeMenu method where index is always invalid
jerrelllzw Oct 13, 2021
ab68137
Merge pull request #43 from jerrelllzw/Errors
jerrelllzw Oct 14, 2021
7907516
-fixed menu related bugs
jerrelllzw Oct 14, 2021
d9365a0
-add edit menu price function
jerrelllzw Oct 14, 2021
b8269ff
changed price attribute from string type to double type
jerrelllzw Oct 14, 2021
95f81dc
-started on user guide
jerrelllzw Oct 15, 2021
06182e2
-renamed menu class in test
jerrelllzw Oct 15, 2021
fe4016c
fixed previous commit error
jerrelllzw Oct 15, 2021
a8d3108
fixed checkstyle error
jerrelllzw Oct 15, 2021
ac4e118
added promotion function
jerrelllzw Oct 16, 2021
fa1c227
added more test methods for dish parser
jerrelllzw Oct 16, 2021
0524188
added author comments
jerrelllzw Oct 16, 2021
7b7d7d6
added draft version of user guide
jerrelllzw Oct 16, 2021
147836e
Merge pull request #44 from jerrelllzw/Promotion
jerrelllzw Oct 20, 2021
3474206
changed seperator
jerrelllzw Oct 20, 2021
24b7a76
Merge pull request #45 from jerrelllzw/Promotion
jerrelllzw Oct 20, 2021
2fa765e
finance and DG
Cesare4869 Oct 20, 2021
81e8cdc
docs ug, dg, finance, dish merged
Cesare4869 Oct 20, 2021
12d9edb
Merge pull request #46 from Cesare4869/master
Cesare4869 Oct 20, 2021
e7153fc
Add changes to developguide.md on employee package
kairoskoh Oct 20, 2021
b508dd2
Merge pull request #47 from kairoskoh/master
kairoskoh Oct 20, 2021
3729d19
Merge branch 'Promotion'
jerrelllzw Oct 21, 2021
a6af985
edited developer guide
jerrelllzw Oct 21, 2021
01d0cd0
Merge pull request #48 from jerrelllzw/master
jerrelllzw Oct 21, 2021
4ce8dc2
Add introduction and table of contents
kairoskoh Oct 21, 2021
7bcc3a4
Merge pull request #50 from kairoskoh/master
kairoskoh Oct 21, 2021
1f39f55
Add employee UI
kairoskoh Oct 21, 2021
2c8ef3f
Merge pull request #52 from kairoskoh/branch-week10-kairos
kairoskoh Oct 21, 2021
5de4bb9
-added hyper links to content page for user guide
jerrelllzw Oct 23, 2021
9af6d65
updated user guide
jerrelllzw Oct 23, 2021
83b9943
Merge pull request #53 from jerrelllzw/Docs
jerrelllzw Oct 23, 2021
2e16c92
Update UserGuide.md
jerrelllzw Oct 23, 2021
79ae5d9
added indexing
jerrelllzw Oct 25, 2021
9fee4ba
added more sections and changed formatting
jerrelllzw Oct 26, 2021
7969215
Merge branch 'master' into Docs
jerrelllzw Oct 26, 2021
d6bcd9a
Merge pull request #58 from jerrelllzw/Docs
jerrelllzw Oct 26, 2021
226a331
Add price attribute and check expiry function to ingredient
leecheokfeng Oct 26, 2021
7e2be75
Add feature implementation for finding expiry
leecheokfeng Oct 26, 2021
6c8ca99
Merge pull request #62 from leecheokfeng/branch-week10-ingredient
leecheokfeng Oct 26, 2021
e962376
Update UG to include ingredient price and expiry feature
leecheokfeng Oct 26, 2021
dc9af70
Merge pull request #63 from leecheokfeng/branch-week11-ingredient
leecheokfeng Oct 26, 2021
68a7e82
change dg
Cesare4869 Oct 26, 2021
a436880
Merge pull request #64 from Cesare4869/master
Cesare4869 Oct 26, 2021
99e740c
edited dg (user stories, target)
jerrelllzw Oct 27, 2021
98dab8a
Merge pull request #65 from jerrelllzw/master
jerrelllzw Oct 27, 2021
6ce85de
Add purpose and how to use section under user guide
kairoskoh Oct 27, 2021
8fc12c4
Add employee status and salary
kairoskoh Oct 27, 2021
bdc5b33
edited dg (added non funtioncal requirements and glossary)
jerrelllzw Oct 27, 2021
b49e7fc
Merge pull request #67 from jerrelllzw/Docs
jerrelllzw Oct 27, 2021
d58ce40
- removed error message on startup
jerrelllzw Oct 27, 2021
6cc21e3
Merge pull request #68 from jerrelllzw/Docs
jerrelllzw Oct 27, 2021
8badfbe
fixed dish storage bug
jerrelllzw Oct 27, 2021
d56f963
Merge pull request #69 from jerrelllzw/Docs
jerrelllzw Oct 27, 2021
190d7fd
Remove contents of Duke.txt for storage
kairoskoh Oct 27, 2021
9b814e5
Update UI class
kairoskoh Oct 27, 2021
641a44c
Add exceptions when handling invalid input
kairoskoh Oct 27, 2021
b63f117
fixed bug
jerrelllzw Oct 27, 2021
25c86e2
Merge pull request #70 from jerrelllzw/Docs
jerrelllzw Oct 27, 2021
8f794e9
Add more logs
kairoskoh Oct 27, 2021
0f41693
Merge pull request #71 from kairoskoh/branch-week11-kairos
kairoskoh Oct 27, 2021
9c1916f
31/10
Cesare4869 Oct 31, 2021
ccbadbc
Merge https://github.com/AY2122S1-CS2113T-T12-4/tp
Cesare4869 Oct 31, 2021
467ad00
add finance part in DG and edit the storage part
Cesare4869 Oct 31, 2021
fd6fa51
Merge pull request #118 from Cesare4869/master
Cesare4869 Oct 31, 2021
12ceacc
add diagrams folder
Cesare4869 Nov 4, 2021
d3eb87e
Merge pull request #119 from Cesare4869/master
Cesare4869 Nov 4, 2021
a7e2ce1
edit ug-addfinance and change the finance date type to LocalDate also…
Cesare4869 Nov 4, 2021
ddfd838
Merge pull request #120 from Cesare4869/master
Cesare4869 Nov 4, 2021
0983c25
renamed list-menu to list-dish
jerrelllzw Nov 5, 2021
7758c55
fixed bugs according to ped comments
jerrelllzw Nov 5, 2021
58b9f12
Merge pull request #121 from jerrelllzw/Bugs
jerrelllzw Nov 5, 2021
0b9af21
-added decimal formatting for dish prices
jerrelllzw Nov 5, 2021
ae9c74f
Merge pull request #122 from jerrelllzw/Bugs
jerrelllzw Nov 5, 2021
8597568
added javadoc comments for dish related classes
jerrelllzw Nov 5, 2021
97fec27
Merge pull request #123 from jerrelllzw/Bugs
jerrelllzw Nov 5, 2021
1884419
-added team picture folder
jerrelllzw Nov 5, 2021
d352837
Merge pull request #124 from jerrelllzw/Bugs
jerrelllzw Nov 5, 2021
6776f42
-added info into team docs
jerrelllzw Nov 5, 2021
ec88fbd
Merge pull request #125 from jerrelllzw/Bugs
jerrelllzw Nov 5, 2021
5a05dad
Removed data from Duke.txt
kairoskoh Nov 6, 2021
a28d481
Add authorship comments
kairoskoh Nov 6, 2021
b1e80eb
added dish diagrams
jerrelllzw Nov 6, 2021
4799f86
Added PPP
kairoskoh Nov 6, 2021
bb439b1
Merge pull request #127 from kairoskoh/master
kairoskoh Nov 6, 2021
eab2ca1
Add javadoc
kairoskoh Nov 6, 2021
d67ab16
Merge pull request #128 from kairoskoh/master
kairoskoh Nov 6, 2021
6e56f23
Fixes #78
kairoskoh Nov 6, 2021
fae434a
Merge pull request #129 from kairoskoh/master
kairoskoh Nov 6, 2021
557ea04
Fixes #79
kairoskoh Nov 6, 2021
62382c8
Merge pull request #130 from kairoskoh/master
kairoskoh Nov 6, 2021
fdd4aae
Fixes #82
kairoskoh Nov 6, 2021
4a40cde
Merge pull request #131 from kairoskoh/master
kairoskoh Nov 6, 2021
4089e9e
Add minor changes to user guide
kairoskoh Nov 6, 2021
ec2c326
Merge pull request #132 from kairoskoh/master
kairoskoh Nov 6, 2021
cd417e9
Added JUnit Tests
leecheokfeng Nov 6, 2021
4f0220e
Update UG description based on PE-D
leecheokfeng Nov 6, 2021
dfc6f28
Add UI to describe proper command syntax to users
leecheokfeng Nov 6, 2021
192584b
add PPP and change code in finance and DG
Cesare4869 Nov 6, 2021
4c4f253
Merge pull request #133 from Cesare4869/master
Cesare4869 Nov 6, 2021
45bb661
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-T12-4/tp…
jerrelllzw Nov 6, 2021
646502c
-PPP for jerrell
jerrelllzw Nov 6, 2021
a8a3ae6
Merge pull request #134 from jerrelllzw/Bugs
jerrelllzw Nov 6, 2021
bdf4f73
Update UserGuide.md
jerrelllzw Nov 6, 2021
e0909f6
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-T12-4/tp…
leecheokfeng Nov 6, 2021
e73c6a7
Add PPP for Cheok Feng and edit AboutUs
leecheokfeng Nov 6, 2021
1c3ed95
Handle ingredient errors for negative or non integer values
leecheokfeng Nov 6, 2021
ee7fb33
change portfilo and add test and javadoc for finance
Cesare4869 Nov 6, 2021
dca69c9
Merge branch 'master' into master
Cesare4869 Nov 6, 2021
e344e4f
Merge pull request #135 from Cesare4869/master
Cesare4869 Nov 6, 2021
3303a82
Make parser remove whitespaces from input data
leecheokfeng Nov 6, 2021
40976f3
Handle case when user enters blank ingredient name
leecheokfeng Nov 6, 2021
b76d8fa
Update UG examples for ingredient
leecheokfeng Nov 6, 2021
aaa0524
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-T12-4/tp…
leecheokfeng Nov 6, 2021
2dd5677
Merge pull request #136 from leecheokfeng/branch-week12-ingredient
leecheokfeng Nov 6, 2021
58b548a
Add changes to quick start in user guide
kairoskoh Nov 7, 2021
548952f
Add details in about us
kairoskoh Nov 7, 2021
985658c
Add changes to user guide
kairoskoh Nov 7, 2021
9e1c9a3
Add help command
kairoskoh Nov 7, 2021
0f7ac20
Add help to user guide
kairoskoh Nov 7, 2021
d1764a4
edited documentation
jerrelllzw Nov 7, 2021
081a8ee
Merge pull request #137 from jerrelllzw/final
jerrelllzw Nov 7, 2021
a61eddf
Add minor changes to checkstyle
kairoskoh Nov 7, 2021
91de64c
Merge pull request #138 from kairoskoh/branch-week12-kairos
kairoskoh Nov 7, 2021
caadb93
Add changes to i/o tests
kairoskoh Nov 7, 2021
5ee1e1a
Add input/output for help command
kairoskoh Nov 7, 2021
8837d0a
Add i/o tests to gitignore
kairoskoh Nov 7, 2021
d8bd525
Remove text-ui-test
kairoskoh Nov 7, 2021
12dd2fa
Revert "Remove text-ui-test"
kairoskoh Nov 7, 2021
7509c6b
Remove contents of text-ui-test
kairoskoh Nov 7, 2021
53d5ec1
Merge pull request #143 from kairoskoh/branch-week12-kairos
kairoskoh Nov 7, 2021
aec77c3
Add Javadoc for ingredient
leecheokfeng Nov 7, 2021
7f7525f
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-T12-4/tp…
leecheokfeng Nov 7, 2021
dde8e5c
Merge pull request #144 from leecheokfeng/branch-week12-ingredient
leecheokfeng Nov 7, 2021
f8e38e6
Add employee class diagram
kairoskoh Nov 7, 2021
a894e02
Add diagrams to DG for ingredient
leecheokfeng Nov 7, 2021
eeef729
Merge pull request #145 from leecheokfeng/branch-week12-ingredient
leecheokfeng Nov 7, 2021
1744901
Merge pull request #146 from kairoskoh/branch-week12-dg
kairoskoh Nov 7, 2021
c39908d
Add changes to README.md
kairoskoh Nov 7, 2021
617b147
Update jerrelllzw.md
jerrelllzw Nov 7, 2021
5086ccf
Merge pull request #147 from kairoskoh/branch-week12-dg
kairoskoh Nov 7, 2021
e5a993c
Update ingredient commands in command summary and help
leecheokfeng Nov 7, 2021
6d1a664
Merge pull request #148 from leecheokfeng/branch-week12-ingredient
leecheokfeng Nov 7, 2021
83ae2b7
fixed lifeline for dish sequence diagram
jerrelllzw Nov 7, 2021
f596438
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-T12-4/tp…
jerrelllzw Nov 7, 2021
c045b85
Merge pull request #149 from jerrelllzw/final
jerrelllzw Nov 7, 2021
c3e7839
Change the diagrams for finance
Cesare4869 Nov 7, 2021
efa896f
Merge pull request #150 from Cesare4869/master
Cesare4869 Nov 7, 2021
e80c7ee
correct small issue in show-finance
Cesare4869 Nov 7, 2021
e683d74
Merge pull request #151 from Cesare4869/master
Cesare4869 Nov 7, 2021
b7982cc
Add sequence diagram to developer guide
kairoskoh Nov 7, 2021
40c367d
Merge pull request #152 from kairoskoh/branch-week12-dg
kairoskoh Nov 7, 2021
7460668
Fix checkstyle errors
kairoskoh Nov 7, 2021
3020e5e
Merge pull request #153 from kairoskoh/branch-week12-dg
kairoskoh Nov 7, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added Duke.txt
Empty file.
4 changes: 4 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,7 @@ checkstyle {
run{
standardInput = System.in
}

run {
enableAssertions = true
}
10 changes: 5 additions & 5 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

Display | Name | Github Profile | Portfolio
--------|:----:|:--------------:|:---------:
![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Jerrell Low | [Github](https://github.com/jerrelllzw) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Hello | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Zehang | [Github](https://github.com/Cesare4869) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Kairos Koh | [Github](https://github.com/kairoskoh) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Lee Cheok Feng | [Github](https://github.com/leecheokfeng) | [Portfolio](docs/team/johndoe.md)
215 changes: 194 additions & 21 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,211 @@
# Developer Guide
# Developer Guide Draft

## Acknowledgements
## Introduction
Restaurant Buddy is a command-line-interface (CLI) application for **restaurant managers** to
help **keep track of restaurant data** such as its employees, dishes and ingredients in storage.

{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}
## Purpose
?
## How to use
?

## Design & implementation
## Contents
* [Design](#design)
* [Architecture](#architecture)
* [Employee Component](#employee-component)
* [Ingredient Component](#ingredient-component)
* [Dish Component](#dish-component)
* [Storage Component](#storage-component)
* [Implementation](#implementation)

Choose a reason for hiding this comment

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

There are subcomponents inside the implementation parts. Maybe its better to add this in like how you did for the Design Components.
image
image

* [Appendix](#appendix)
* [Product Scope](#product-scope)
* [User Stories](#user-stories)
* [Non Functional Requirements](#non-functional-requirements)
* [Glossary](#glossary)
* [Instructions for Manual Testing](#instructions-for-manual-testing)

{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}
## Design

Choose a reason for hiding this comment

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

Perhaps you can add an architecture diagram to give a higher level overview of how each component interacts with each other.


### Architecture

Choose a reason for hiding this comment

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

I think adding a high level design diagram for the Architecture component will make your DG look nicer and more intuitive. Can do something like this:
image


## Product scope
### Target user profile
The Main component has 2 classes, `MainParser` and `MainUI`. It is responsible for parsing user commands and
displaying messages to interact with the user.

{Describe the target user profile}
The rest of the app consists of 4 components:

### Value proposition
1. Employee: Modify data related to employee classes

{Describe the value proposition: what problem does it solve?}
2. Ingredient: Modify data related to ingredient classes

## User Stories
3. Dish: Modify data related to dish classes

|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|
4. Storage: Reads and writes data to and from the hard disk

## Non-Functional Requirements
### Employee Component
The employee component consists of the following four classes: `Employee`, `EmployeeList`, `EmployeeParser`
and `EmployeeUI`.

{Give non-functional requirements}
* `Employee` stores the name and phone number of an individual employee working at the restaurant, as well as methods
to retrieve employee information.

## Glossary
* `EmployeeList` is an array list of Employees.

* *glossary item* - Definition
* `EmployeeParser` contains operations that decode user inputs into meaningful commands, and modifies the list of
employees accordingly.

## Instructions for manual testing
* `EmployeeUI` contains methods that display messages that interacts with the user.

### Ingredient Component
The ingredient component consists of the `Ingredient`, `IngredientList`, `IngredientParser`, and `IngredientUI` classes.

* `Ingredient` stores the name and quantity of a particular ingredient used by the restaurant, as well as methods to
retrieve ingredient data.

* `IngredientList` is an array list of Ingredient.

Choose a reason for hiding this comment

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

I think its abit confusing on what IngredientList should be. Maybe you can paraphrase to be like "IngredientList is a class that contains an array list of ingredients?" Not sure if you mean it that way, just giving you a suggestion:)
image


* `IngredientParser` contains operations that decode user inputs into meaningful commands, and modifies the list of
ingredients accordingly.

* `IngredientUI` contains methods that display messages to interact with the user.

### Dish Component
The dish component consists of the `Dish`, `Menu`, `DishParser`, and `DishUI` classes.

* `Dish` stores the name, price and discount of a certain dish sold by the restaurant and the methods used to retrieve
them.

* `Menu` is an arrayList of Dish.

Choose a reason for hiding this comment

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

Same as the IngredientList, I think you can explain it better :)


* `DishParser` contains methods that decode user inputs into meaningful parameters and modify the menu accordingly.

* `DishUI` contains methods that display messages to interact with the user.

### Storage Component
The storage component has a `Storage` class which can load data from the file and save data into the file with the
methods to encode and decode data.

## Implementation

Choose a reason for hiding this comment

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

For the implementation part, I feel that a step by step guide should be done. Common features like the Remove Dish Feature and Remove Ingredient Feature can be explained as 1 entity.

Choose a reason for hiding this comment

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

But other than that, I like how all the features are summarized:)

Choose a reason for hiding this comment

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

You can also include some sequence diagram/class diagram to further help you explain the feature:)
Example:
image


### Add Employee Feature
The mechanism of adding an employee into the list of employees is facilitated by `EmployeeParser`. It first creates a
new instance of `Employee`, and adds it to the existing instance of `EmployeeList`. A confirmation message is then
displayed to the user.

### List Employees Feature
The mechanism for listing all current employees in the list of employees is facilitated by `EmployeeParser`. It checks
if the current instance of `EmployeeList` is empty, and if it is, displays a message to inform the user that the
employee list is empty. Otherwise, it displays all employees and their information in the list to the user.

### Remove Employee Feature
The mechanism of removing an employee from the employee list is facilitated by `EmployeeParser`. It identifies the
index of the employee to be removed from the current instance of `EmployeeList`, and removes that instance of
`Employee` from the list. It then displays a message to the user to inform them of the successful deletion.

### Add Ingredient Feature
The mechanism of adding an ingredient into the ingredient list is facilitated by `IngredientParser`. It creates a new
instance of `Ingredient`, and adds it to the existing instance of `IngredientList`. It then calls a method from
`IngredientUI` to display a confirmation message to the user.

### List Ingredients Feature

Choose a reason for hiding this comment

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

Perhaps you can add class and sequence diagrams to each features

The mechanism for listing all existing ingredients in the ingredient list is facilitated by `IngredientParser`. It
checks if the existing instance of `IngredientList` is empty or not, and calls a method from `IngredientUI` to
display the entire list of ingredients and their quantities to the user.

### Remove Ingredient Feature
The mechanism of removing an ingredient from the ingredient list is facilitated by `IngredientParser`. It identifies
the index of the ingredient to be removed from the existing instance of `IngredientList` and removes that instance of
`Ingredient` from the list. It then calls a method from `IngredientUI` which displays to the user that the deletion was
successful.

### Find Expired Ingredients Feature
The mechanism of finding expired ingredients is facilitated by `IngredientParser` as well as the Java `LocalDate`
class. `IngredientParser` converts the input String into a `LocalDate` object and calls a method from `IngredientUI`.
This method loops through the current `IngredientList` and finds all instances of `Ingredient` with an expiry date
before the input `LocalDate` object. It then displays to the user the list of ingredients that are expired, or informs
Comment on lines +207 to +209

Choose a reason for hiding this comment

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

Should the UI be responsible for finding the expired ingredients?

the user that no ingredients are expired.

### Add Dish Feature
The mechanism of adding a dish into the menu is facilitated by `DishParser`. It creates a new instance of
`Dish`, and adds it to the existing instance of `Menu`. It then calls a method from `DishUI` to display a confirmation
message to the user.

### List Menu Feature
The mechanism for listing all existing dishes in the menu is facilitated by `DishParser`. It checks if the
existing instance of `Menu` is empty or not, and calls a method from `DishUI` to display the entire menu,
together with the corresponding prices of each dish, to the user.

### Remove Dish Feature
The mechanism of removing a dish from the menu is facilitated by `DishParser`. It identifies the index of the
dish to be removed from the existing instance of `Menu` and removes that instance of the dish from the menu.
It then calls a method from `DishUI` which displays to the user that the deletion was successful.

### Save Storage Feature
The mechanism of saving all the data is facilitated by `Storage`. After executing the bye command, the
program goes into saving data stage automatically. It opens the storage file with a file writer, and for every list the
program has, it gets the item from them. Then, it encodes the string representation of the item, and writes it into the
file.

The three lists are stored in sequence as shown below,

Choose a reason for hiding this comment

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

Just a note here, it's not completed here. Don't forget about this part:)


### Load Storage Feature
The mechanism of loading all the data from the storage file is facilitated by `Storage`. It opens the file with a file
reader and if there are no files to open, it will automatically create a new file of default address. Every line read
from the file would be decoded with methods to create a new `Employee`/`Dish`/`Ingredient` item, and add it into the
list which is generated.

The three types of new item are identified before decoding it, and the decoding methods are worked on at the
same time.

Choose a reason for hiding this comment

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

Perhaps the part "the decoding methods are worked on at the same time" can be further elaborated with a diagram.


## Appendix

### Product Scope

**Target user profile:**
* needs to manage a significant amount of different types of restaurant data
* prefers using a desktop application
* is able to type quickly
* prefers typing as compared to mouse interactions
* is reasonably comfortable using CLI apps

**Value proposition:** manage restaurant data faster than a typical mouse/_graphical user interface (GUI)_ driven
application

### User Stories

Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*`

| **Priority** | **As a ...** | **I want to ...** | **So that I can ...** |
| ------------ | ------------- | ------------- | ------------- |
| `* * *` | restaurant manager | view all my current employees | keep track of them |
| `* * *` | restaurant manager | add new employees | keep track of newly hired employees |
| `* * *` | restaurant manager | delete employees | remove entries I no longer need |
| `* * *` | restaurant manager | keep track of the ingredients I have left | know when to order more |
| `* * *` | restaurant manager | add new ingredients | adjust to changes in my menu |
| `* * *` | restaurant manager | delete ingredients | remove entries I no longer need |
| `* * *` | restaurant manager | view my menu | keep track of it |
| `* * *` | restaurant manager | add new dishes into my menu | increase the variety of my menu |
| `* * *` | restaurant manager | remove dishes from my menu | focus more on my other dishes |
| `* *` | restaurant manager | view all my employees' salaries | better manage my finances |
| `* *` | restaurant manager | increase my employees' salaries | give them a raise when they are performing well |
| `* *` | restaurant manager | decrease my employees' salaries | reduce my expenses when the cash flow is tight |
| `* *` | restaurant manager | keep track of my employees' offs | plan my manpower effectively |
| `* *` | restaurant manager | change the price of a dish | adjust it according to other external factors |
| `* *` | restaurant manager | add a discount to a dish | organise promotions to attract more customers |
| `* *` | restaurant manager | add daily earnings and expenditure | keep track of my finances |
| `*` | restaurant manager | check for loss of utensils | account for them and order more accordingly |
| `*` | restaurant manager | check the prices for advertisements | evaluate the benefits they bring |
| `*` | restaurant manager | view customer complaints | improve my restaurant based on their feedback |
| `*` | restaurant manager | keep track of popular dishes | plan the menu in the way that maximises my revenue |

### Non Functional Requirements
1. You need to have a _mainstream operating system (OS)_ with Java `11` or above installed.
2. For normal usage without noticeable lag, total data entries stored should be less than 1000.
3. To be faster than a typical mouse/GUI driven application, you need to have an above average typing speed for regular
English text (i.e. not code, not system admin commands).

### Glossary
* **Mainstream OS:** Windows, Linux, Unix, macOS
* **GUI:** A type of user interface that allows users to interact with applications through graphical icons.

### 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}
Loading