### **Overview** We are developing a **Restaurant Menu & Ordering System** as a **mini-project module** inside our main Laravel platform ****. Each project inside Afli.ae functions independently (with its own database tables and logic) but uses a **common login/auth system** from the main Afli.ae application. This module will allow restaurant or hotel guests to scan a **secure QR code**, view a **digital menu with dish photos, short descriptions, and videos**, **add to cart**, and **place orders** directly from their phone. The system must be built **fully in Laravel** and easily integratable as a submodule under `/modules/restaurant/`. --- ### **Core Requirements** #### **Customer Side** * Scan **unique QR code** on table or room (no visible number in URL). * Auto-detect location (table/room) from QR token. * Browse digital menu by category (Starters, Main Course, Drinks, Desserts, etc.). * Each dish shows: * Photo or short video * Name * Price * **Short Description (1–2 lines)** * Average rating * Add to Cart button * short intruction for each iteam * Add/remove items from cart and place order. * view order summary including total price with tax * Track order status (Preparing → Ready → Delivered). * See estimated or actual preparation time (based on admin setting). * Leave rating & review for dishes after delivery. --- #### **Kitchen Panel** * View live incoming orders with table number and items and instructions. * Update status (Preparing → Ready → Delivered). * Track time from order start to delivery. * Auto-refresh using Laravel Echo (WebSockets) or Ajax polling. --- #### **Admin Panel** * Built with **Laravel + Blade** (AdminLTE / Filament / Nova — any open source admin template). * Manage all core functions: * Menu categories (Add/Edit/Delete) * Dishes (with name, short description, price, tax, image/video, availability) * Orders (live view + filters) * QR codes (generate, print, regenerate, deactivate) * Reviews (approve, hide, delete) * Settings (hide/unhide delivery time, restaurant info, taxes, etc.) * Dashboard showing total orders, revenue, top dishes, and average delivery time. --- ### **Key Functionalities** #### **QR Code System (No Table No. in URL)** * Each table/room has a **unique random token** stored in DB (`tables` table). * QR link example: ``` https://example.ae/restaurant/qr/9fA83kT7Bz ``` * When scanned, system fetches mapped table/room internally and loads correct menu. * Admin can generate, print, and deactivate QR codes. #### **Order Time Tracking** * Auto record **time_started** when order is placed. * Auto record **time_delivered** when served. * Auto-calculate **duration** (total time). * Admin can **hide/unhide** this from customer view. --- ### **Technical Stack** * **Framework:** Laravel 11 (PHP 8.2+) * **Frontend:** Laravel Blade + Alpine.js / Vue.js * **Database:** MySQL * **Styling:** Tailwind CSS or Bootstrap 5 * **Auth:** Shared login from main Afli.ae system (Jetstream / Fortify / Custom Guard) * **QR Generation:** simple-qrcode package * **Live Updates:** Laravel Echo or Pusher (optional) --- ### **Integration Notes** * This will be built as a **separate module folder** (e.g., `/modules/restaurant/`). * Must **use the same user authentication** as Afli.ae (no separate login). * All restaurant-specific tables (`menus`, `orders`, `reviews`, etc.) remain isolated inside this module. * multiple restro , hotel registration --- --- ### **Deliverables** * Complete Laravel module with migrations & seeders. * Admin panel UI with CRUD for dishes, orders, and QR codes. * Customer & kitchen panels (responsive).. * Clean, commented code following Laravel standards (PSR-12). --- ### **Goal** Deliver a **modular, scalable, and clean Laravel solution** that integrates smoothly with **Afli.ae**, while remaining fully independent for feature expansion (e.g., restaurant, hotel, room service, food court use cases). --- Day 1 – Frontend Setup Day 2 – Database & Models Day 3 – QR Code Generation & Detection Day 4 – Admin Menu Management Day 5 – Dish Detail Page & Cart System Day 6 – Order Placement, Timer, & Status Day 7 – Reviews, Admin Dashboard, UI Polish & Securit