A PHP-based restaurant digital menu system where customers scan a QR code at their table, browse the menu, and place orders directly from their phone. The admin panel lets staff manage the menu, track orders, and view analytics.
- QR Table System — Each table gets a unique QR code. Scanning it loads the menu pre-loaded with the table identity.
- Customer Menu — Browse items by category, search, view item details, add to cart.
- Cart & Checkout — Persistent cart (localStorage), checkout with name entry and table ID lookup.
- Payment Flow — Pay Now (bank transfer with 30-min countdown) or Pay on Receipt (cash).
- Order Tracking — Customers track their order status via a tracking ID (
ORD-XXXXXXXX). - Admin Panel — Manage menu items, categories, tables, orders, settings, and analytics.
- Dark Mode — Toggle on desktop.
- PHP 8.0+
- MySQL / MariaDB 10.4+
- Apache with
mod_rewriteenabled (XAMPP works out of the box)
Place the project folder inside your XAMPP htdocs directory:
C:/xampp/htdocs/php-menu/ (Windows)
/opt/lampp/htdocs/php-menu/ (Linux)
- Open phpMyAdmin →
http://localhost/phpmyadmin - Click Import
- Choose the file:
database/database.sql - Click Go
This creates all tables and seeds the default settings.
Open config/db.php and set your credentials:
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', ''); // empty by default on XAMPP
define('DB_NAME', 'restaurant_menu');- Start Apache and MySQL in the XAMPP Control Panel
- Visit:
http://localhost
Go to: http://localhost/php-menu/admin/login.php
| Username | Password |
|---|---|
| admin | password |
Change your password after first login via Settings.
php-menu/
├── admin/ # Admin panel (dashboard, orders, menu, QR, analytics)
├── config/
│ └── db.php # Database connection & helpers
├── css/
│ └── style.css # Custom styles (cart bubble, dark mode, etc.)
├── database/
│ └── restaurant_menu_update.sql # DB schema + seed data
├── images/ # Menu item and category images
├── js/
│ └── app.js # Cart, table session, category filter, dark mode
├── pages/ # Customer-facing pages
│ ├── checkout.php
│ ├── item.php
│ ├── order.php # JSON API for order creation
│ ├── payment.php
│ └── track.php
└── index.php # Main menu page
- Upload all files via FTP or File Manager.
- Import
database/database.sqlthrough phpMyAdmin. - Update
config/db.phpwith your hosting database credentials.config/db.txt - Ensure your
.htaccessdoes not redirect.phprequests toindex.html.
Private project — Gourmet Bites Restaurant.











