Online Restaurant Ordering System - Structure
1. Website Structure
Modules and Functionalities
A. Admin Module
- Log In
- Product Add, Delete, Edit, Update
- Order Details
- User Details
B. User Module
- Log In/Sign Up
- View Details
- Cart
- Purchase
- Order
- Checkout
- Payment
Suggested MySQL Tables:
1. Users: Stores customer and admin information.
- user_id (PK)
- username
- password
- email
- phone_number
- role (customer/admin)
2. Menu_Items: Stores details of all menu items.
- item_id (PK)
- name
- description
- price
- category
- availability
3. Orders: Manages customer orders.
- order_id (PK)
- user_id (FK referencing Users)
- order_date
- status (e.g., pending, preparing, completed, canceled)
- total_amount
4. Order_Items: Stores details of each item in an order.
- order_item_id (PK)
- order_id (FK referencing Orders)
- item_id (FK referencing Menu_Items)
- quantity
- price_at_purchase
5. Payment: Stores payment details for each order.
- payment_id (PK)
- order_id (FK referencing Orders)
- amount
- payment_method (e.g., credit card, cash, UPI)
- payment_status (e.g., paid, pending, failed)
2. Mobile App Structure (Minimal Version)
Modules and Functionalities (Excluding Admin)
Suggested Pages (or Activities):
1. HomeActivity - Displays restaurant information and featured menu items.
2. MenuActivity - Lists available menu items with descriptions and prices.
3. CartActivity - Displays the items currently added to the cart.
4. OrderActivity - Allows users to review the current order, adjust quantities, and place the order.
5. OrderHistoryActivity - Displays the history of past orders made by the user.
6. CheckoutActivity - Collects delivery details and confirms the order.
Suggested MySQL Tables:
1. Users: Stores customer information.
- user_id (PK)
- username
- password
- email
- phone_number
- role (customer)
2. Menu_Items: Stores details of all menu items.
- item_id (PK)
- name
- description
- price
- category
- availability
3. Orders: Manages customer orders.
- order_id (PK)
- user_id (FK referencing Users)
- order_date
- status (e.g., pending, preparing, completed, canceled)
- total_amount
4. Order_Items: Stores details of each item in an order.
- order_item_id (PK)
- order_id (FK referencing Orders)
- item_id (FK referencing Menu_Items)
- quantity
- price_at_purchase
5. Cart: Temporary table to manage items added to the cart before placing an order.
- cart_id (PK)
- user_id (FK referencing Users)
- item_id (FK referencing Menu_Items)
- quantity
6. Payment: Stores payment details for each order.
- payment_id (PK)
- order_id (FK referencing Orders)
- amount
- payment_method (e.g., credit card, cash, UPI)
- payment_status (e.g., paid, pending, failed)