This app is an ordering/pick-up app which allows vendors to manage their orders, menus/menu items and food items which will be made availabe to order in the customer views.
The app should be started on localhost:8080/aux
The .env file we used has the following contents for the DB connection
DB_HOST=localhost DB_USER=labber DB_PASS=labber DB_NAME=midterm DB_SSL=true if heroku DB_PORT=5432
The app is thus split into 2 views - The vendor management view and the customer order view.
The Vendor side of the app has essentially 3 views:
Food Items are what can be ordered by the customer. Food Items can be created, modified and deleted. All menu items are built off of these food items. Without food items, there is no restaurant.
Food Items need to be organized and presented in some manner. This app does so through menu and menu items. Menus are a collection of menu items and menu items create the link between a menu and one or more food items. Only foods which are linked to a menu can be seen/ordered by the customer. Like food items, menu and menu items can be created, deleted or modified.
The Vendor Order view provides a list of all orders that have been made at the restaurant. Details of orders and the relevant customer information can be retrieved and are displayed on the same page. Orders cannot be deleted
The customer, or ordering view, allow a customer to order from a list of menus, verify their order and view/modify their profile
The customer select the menu of their choice and can choose to order menu items
The order view displays the current order
The customer view displays profile information including address, phone, email etc.
- Express 4.16.2
- Ejs 2.4.1
- DotEnv 2.0.0
- Node 5.10.x or above
- Cookie Session 2.0.0
- KNEX 0.11.7
- KNEX logger 0.1.0
- Method-override 2.3.10
- PG 6.0.2
- Bcrypt 1.0.3
- Body-Parser 1.18.2
- NodeMon 1.9.2
- Node-Sass-Middleware 0.11.0
- Chance 1.0.11
List of user Stories
Nouns are in italics Verbs are in bold
Some of these stories might be contradictory or too complicated.
-
As a CUSTOMER I want to VIEW a MENU
-
As a CUSTOMER I want to SELECT a MENU by CATEGORY
-
As a CUSTOMER I want to SELECT FOOD from a MENU
-
As a CUSTOMER I want to ORDER FOOD from a MENU
-
As a CUSTOMER I want to MODIFY my ORDER
- As a CUSTOMER I want to ADD an ORDER LINE
- As a CUSTOMER I want to MODIFY my ORDER LINE QUANTITY
- As a CUSTOMER I want to MODIFY my ORDER LINE FOOD
- As a CUSTOMER I want to MODIFY my ORDER by adding COUPON
- As a CUSTOMER I want to CANCEL my ORDER LINE
- As a CUSTOMER I want to PAY my ORDER
-
As a CUSTOMER I want to TRACK my ORDER
- As a CUSTOMER I want to REMOVE my ORDER LINE
- As a CUSTOMER I want to PLACE an ORDER
- As a CUSTOMER I want to MODIFY an ORDER CUSTOMER REQUEST to "PLACE"
- As a CUSTOMER I want to CANCEL an ORDER
- As a CUSTOMER I want to MODIFY an ORDER CUSTOMER REQUEST to "CANCEL"
- As a CUSTOMER I want to PAY an ORDER
-
As a CUSTOMER I want to TRACK/VIEW an ORDER
-
As a CUSTOMER I want to SEARCH FOOD by PRICE, FOOD NAME and/or FOOD TYPE
-
As a CUSTOMER I want to SORT a MENU and MENU ITEMS by PRICE
-
As a CUSTOMER I want to SORT a MENU and MENU ITEMS by PRICE
-
As a CUSTOMER I want to SORT a MENU and MENU ITEMS by CATEGORY
-
As a VENDOR I want to CREATE a MENU
-
As a VENDOR I want to REMOVE a MENU
-
As a VENDOR I want to MODIFY a MENU
- As a VENDOR I want to ADD a CATEGORY on a MENU
- As a VENDOR I want to REMOVE a CATEGORY on a MENU
-
As a VENDOR I want to ADD a MENU ITEM LIST on a MENU
-
As a VENDOR I want to SORT/SELECT a MENU ITEM LIST on a MENU by FOOD "QTYORDERED"
- As a VENDOR I want to ADD a MENU ITEM on a MENU
- As a VENDOR I want to REMOVE a MENU ITEM on a MENU
- As a VENDOR I want to MODIFY a MENU ITEM on a MENU
-
As a VENDOR I want to CREATE a MENU ITEM on a MENU from FOOD
- As a VENDOR I want to MODIFY a MENU ITEM PRICE
- As a VENDOR I want to MODIFY a MENU ITEM QUANTITY
- As a VENDOR I want to ADD a MENU ITEM FOOD CATEGORY
-
As a VENDOR I want to CREATE a FOOD
-
As a VENDOR I want to REMOVE a FOOD
-
As a VENDOR I want to MODIFY a FOOD
- As a VENDOR I want to MODIFY a FOOD PRICE
- As a VENDOR I want to MODIFY a FOOD NAME
- As a VENDOR I want to MODIFY a FOOD QUANTITY
- As a VENDOR I want to MODIFY a FOOD PREP TIME
- As a VENDOR I want to MODIFY a FOOD CATEGORY
-
As a VENDOR I want to CREATE an ORDER
- As a VENDOR I want to MODIFY an ORDER CLIENT
- As a VENDOR I want to MODIFY an ORDER PRICE
- As a VENDOR I want to MODIFY an ORDER OVERALL STATUS
- As a VENDOR I want to CANCEL an ORDER
- As a VENDOR I want to MODIFY an ORDER
- As a VENDOR I want to MODIFY an ORDER PREP STATUS
- As a VENDOR I want to MODIFY an ORDER PREP TIME
- As a VENDOR I want to MODIFY an ORDER DELIVERY STATUS
- As a VENDOR I want to MODIFY an ORDER DELIVERY TIME
- As a VENDOR I want to MODIFY an ORDER PAY STATUS
- As a VENDOR I want to MODIFY an ORDER PRIORITY
-
As a VENDOR I want to VIEW an ORDER
-
As a VENDOR I want to VIEW _ORDER ITEMS of an ORDER
-
As a VENDOR I want to SEARCH for an ORDER by CUSTOMER
-
As a VENDOR I want to SEARCH for an ORDER by FOOD
DATABASE schema definitions are here: https://docs.google.com/spreadsheets/d/1tdfC2ywA8dXkJvKh55d5tS1ZJUAGKIOQ6y8Etg3Tjmw/edit#gid=2007291170