Restaurant Management System using ASP.NET Core MVC
1. Menu Management
Unavailable items cannot be added to orders.
Prices must be positive (enforced by model validation).
Categories with no active items are hidden in Menu view.
Daily availability: Items with >50 orders in a day become unavailable until midnight.
2. Order Processing
Total: Sum of OrderItem.Subtotal + 8.5% tax - discounts.
Delivery orders require DeliveryAddress.
Estimated delivery time: Max preparation time of items + 30 minutes.
Cannot cancel Ready or Delivered orders.
3. Inventory Simulation
Track daily order count per menu item in DataRepository.
Reset availability at midnight (simulate with a static flag or timestamp check).
4. Pricing and Discounts
Happy hour: 20% off from 3-5 PM.
Bulk discount: 10% off orders over $100.
5. Order Status Management
Automatic progression: Pending → Preparing (after 5 min), Preparing → Ready (after preparation time).
Kitchen updates status manually via UpdateStatus.
Customer notifications (simulated via ViewBag messages).
Table Reservation System: Add Table model and controller for scheduling and availability.
Staff Management: Add Staff model with roles and order assignment.
Advanced Analytics Dashboard: Add charts for sales trends and peak hours in Analytics.cshtml.