Please enable JavaScript.
Coggle requires JavaScript to display documents.
BigPlates Data (Noun (Menu
DB Schema id
name
restaurant_id
…
BigPlates Data
Noun
Users:
DB Schema:
- id
- email_address
- password
- first_name
- last_name
- phone_number
- account_type
- company_name
- address_ref
- payment
- previous orders
- dietary preference
- favourite menu_item
Single_User:
-
-
Order
DB schema
-
id
pk
-
user_id
=> users uint
-
event_type_id
=> event_types uint
-
meal_type_id
=> meal_types uint
-
coupon_id
=> coupons uint
-
name
s
-
company_name
s
-
status
(enum: pending, in_progress, completed)
-
transmit_status
(enum: pending, in_progress, completed, failed)
-
transmit_finished_at
dt
-
guest_count
uint
-
gratutity_percentage
uint default 0
-
price_extras
dec
-
price_delivery
dec
-
price_subtotal
dec
-
price_discounted_amount
(dollar amount from coupon, if any) dec
-
price_tax
dec
-
price_total
dec
-
address_id
=> addresses uint
-
phone_number
s
-
date_ordered
dt
-
delivery_date
date
-
delivery_time
timestamp
-
delivery_time_window_minutes
Payment
DB Schema:
Functions:
- Get all payments
- Refund customer
Order_Menu_Item
DB schema
-
id
pk
-
order_id
=> orders uint
-
restaurant_id
-
menu_item_id
=> menu_items uint
-
serving_size_id
=> serving_sizes uint
-
quantity
uint
-
transmit_status
(enum: pending, in_progress, completed, failed)
-
transmit_retries
ui
-
transmitted_at
dt
Order_Equipment_Item
DB schema
-
id
pk
-
order_id
=> orders uint
-
equipment_id
=> equipment_items uint
-
quantity
uint
Order_Utensils_item
DB schema
-
id
pk
-
order_id
=> orders uint
-
utensils_item_id
=> menu_items uint
-
quantity
uint
-
restaurant_id
-
-
Company:
DB Schema
- company size: small, medium, large, ++
Address
DB Schema
-
id
-
user_id
-
address_1
-
address_2
-
city
-
province
-
postal_code
-
access_instruction
-
parking_instruction
-
special_instructions
-
additional_delivery_price
-
Cart
Elixir Struct:
-
user_session
-
cart_items
cart_item
-
qty
-
date
-
-
-
-
-
Menu
DB Schema
-
id
-
name
-
restaurant_id
-
cuisine_type
- [dynamic]
-
meal_category
- only one allowed - [breakfast, lunch, dinner]
-
minimum_serving_size
Menu Item
DB Schema
-
id
-
menu_id
-
name
-
price
-
sale_price
-
portion_size_ids
-
img
-
description
-
variant_ids
-
Portion Sizes
DB Schema:
-
id
-
serving_size
: string
-
description
: string
Variants
DB Schema:
-
id
-
menu_item_ids
-
name
-
option_type
: [radio, checkbox]
-
required
Variants Items
DB Schema:
Utensils
DB Schema
-
id
-
name
-
price
-
img
-
type
: [set, servings]
-
-
Combo_Items:
DB Schema:
- id
- description
- price
- sale_price
- utensils [true or false]
- img
- menu_item_ids
-
Equipment
DB Schema - id
pk
-
name
-
price
-
quantity_in_stock
(total available)
-
quantity_order_limit
(max per order, if any)
-
Report
DB Schema
-
content
-
type
: [customer_data, restaurant_payout]
-
What does the application do?
Accept order from customer:
- A user can login to store.
- A user can manage their profile
- Add any menu items from various menus provided by the respective restaurant to their cart.
- Choose condiments and utensils they need per menu item to cart.
- Rent equipments if required and add it to cart.
- Choose delivery date and time. Confirm address.
- Checkout order
Process orders:
- Check if order meets BigPlates guideline
- Order's over $500 needs to be ordered 24hours in advanced
- must include time interval
- Process user credit card payment
- Send order notification to customer.
- Update equipment inventory
- Send order notification to admin
Equipment management
- Allow admin to CRUDP equipment
- Allow admin to update equipment inventory manually
Restaurant management:
- Allow admin to CRUDP restaurants and assign to restaurant user
Menu management:
- Allow admin to CRUDP menu within a restaurant
- Allow admin to CRUDP cuisine_type and link to menu
Menu item management:
- Allow admin to CRUDP menu item within a menu
- Allow admin to CRUDP menu_item category
Order fulfillment:
Order quality:
- Once an order has been completed, the user reviews the food and delivery.
Process payout to restaurant
- Compose payout report
- include menu_item sales
- include condiment and utensil sales
Restaurants
DB Schema:
- id
- name
- address_ref
- previous orders
- menus
-
-
-
-