Skip to content

alberic60/RTRMS

Repository files navigation

Restaurant Table Reservation Management System (RTRMS)

A comprehensive web-based restaurant table reservation system built with PHP, MySQL, HTML, and CSS.

πŸ“‹ System Overview

RTRMS is a complete solution for managing restaurant reservations and operations. It serves two main user types:

  • Customers: Can browse menus, view tables, make reservations, and manage their bookings
  • Staff: Manage all restaurant operations including reservations, tables, menus, and customers

🎯 Features

Customer Features

  • πŸ“… Book tables at preferred dates and times
  • 🍽️ Browse restaurant menu items
  • πŸ‘€ View available tables with capacity information
  • πŸ“‹ Manage and track reservations
  • ❌ Cancel reservations if needed
  • πŸ‘€ Secure user authentication

Staff Features

  • πŸ“Š Dashboard with key statistics
  • βœ“ Approve/confirm reservations
  • 🍽️ Manage restaurant tables
  • 🍴 Add/edit/delete menu items
  • πŸ‘₯ View and manage customers
  • πŸ“ˆ Monitor daily reservations

πŸ› οΈ Technology Stack

  • Backend: PHP 7.4+
  • Database: MySQL 5.7+
  • Frontend: HTML5, CSS3
  • Security: Password hashing, prepared statements, session management

πŸ“¦ Project Structure

RTRMS_2/
β”‚
β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ database.php              # Database connection
β”‚   └── database_schema.sql       # Database setup script
β”‚
β”œβ”€β”€ auth/
β”‚   β”œβ”€β”€ login.php                 # User login
β”‚   β”œβ”€β”€ register_customer.php     # Customer registration
β”‚   β”œβ”€β”€ register_staff.php        # Staff registration (admin only)
β”‚   └── logout.php                # Logout handler
β”‚
β”œβ”€β”€ customer/
β”‚   β”œβ”€β”€ dashboard.php             # Customer home
β”‚   β”œβ”€β”€ make_reservation.php      # Create reservation
β”‚   β”œβ”€β”€ view_reservations.php     # View/manage reservations
β”‚   β”œβ”€β”€ menu.php                  # Browse menu
β”‚   └── tables.php                # View available tables
β”‚
β”œβ”€β”€ staff/
β”‚   β”œβ”€β”€ dashboard.php             # Admin home
β”‚   β”œβ”€β”€ manage_reservations.php   # Manage all reservations
β”‚   β”œβ”€β”€ manage_tables.php         # Add/edit/delete tables
β”‚   β”œβ”€β”€ manage_menu.php           # Add/edit/delete menu items
β”‚   └── manage_customers.php      # View customers
β”‚
β”œβ”€β”€ includes/
β”‚   β”œβ”€β”€ navbar.php                # Navigation bar
β”‚   β”œβ”€β”€ footer.php                # Footer
β”‚   └── session_check.php         # Session validation
β”‚
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ css/
β”‚   β”‚   └── style.css             # Main stylesheet
β”‚   └── images/
β”‚       └── (restaurant images)
β”‚
└── index.php                     # Landing page

πŸš€ Installation & Setup

Prerequisites

  • XAMPP or similar PHP/MySQL server
  • PHP 7.4 or higher
  • MySQL 5.7 or higher

Step 1: Extract Files

Extract the RTRMS_2 folder to your htdocs directory:

C:\xampp\htdocs\RTRMS_2\

Step 2: Create Database

  1. Open phpMyAdmin (http://localhost/phpmyadmin)
  2. Click "New" to create a new database
  3. Name it: rtrms_db
  4. Click "Create"
  5. Select the database and go to "Import"
  6. Upload and execute the config/database_schema.sql file

Step 3: Configure Database Connection

The database configuration is already set in config/database.php:

define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'rtrms_db');

Update these values if your MySQL credentials are different.

Step 4: Access the System

Open your browser and navigate to:

http://localhost/RTRMS_2/

πŸ‘₯ Default Test Accounts

Customer Login

Note: Create a customer account using the registration page

Staff Login

Alternative:

πŸ” Security Features

βœ“ Password Hashing: Using PHP's password_hash() and password_verify() βœ“ Prepared Statements: SQL injection protection βœ“ Session Management: 30-minute session timeout βœ“ Access Control: Role-based access for customers and staff βœ“ Input Validation: Sanitized inputs throughout βœ“ CSRF Protection: Form validation

πŸ“ Database Schema

Main Tables

staff

  • staff_id (Primary Key)
  • full_name
  • email (Unique)
  • password (hashed)
  • role (admin, manager, staff)
  • created_at, updated_at

customers

  • customer_id (Primary Key)
  • full_name
  • email (Unique)
  • phone
  • password (hashed)
  • created_at, updated_at

tables

  • table_id (Primary Key)
  • table_number (Unique)
  • capacity
  • location
  • description
  • status (available, occupied, maintenance)

reservations

  • reservation_id (Primary Key)
  • customer_id (Foreign Key)
  • table_id (Foreign Key)
  • reservation_date
  • reservation_time
  • number_of_guests
  • reservation_status (pending, confirmed, cancelled, completed)
  • notes
  • created_at, updated_at

menu_items

  • item_id (Primary Key)
  • item_name
  • category (Appetizer, Main Course, Dessert, Beverage)
  • description
  • price
  • availability (available, unavailable)
  • created_at, updated_at

orders (Optional - Advanced Feature)

  • order_id (Primary Key)
  • customer_id (Foreign Key)
  • reservation_id (Foreign Key)
  • order_date
  • total_amount
  • status (pending, preparing, ready, delivered, cancelled)

🎨 UI/UX Design

Color Scheme

  • Primary: Dark Red (#8B0000)
  • Secondary: Gold (#D4AF37)
  • Background: Light Gray (#F5F5F5)
  • Text: Black (#333), Dark Gray (#666)

Responsive Design

  • Mobile-friendly layout
  • Tablet optimized
  • Desktop full experience
  • Breakpoints at 768px and 480px

πŸ“± User Workflows

Customer Reservation Workflow

  1. Register/Login
  2. Browse available tables and menu
  3. Select table and date/time
  4. Submit reservation
  5. Wait for staff confirmation
  6. View/manage reservations
  7. Cancel if needed

Staff Management Workflow

  1. Login to staff dashboard
  2. View pending reservations
  3. Confirm or reject reservations
  4. Manage tables (add/edit/delete)
  5. Manage menu items
  6. View customer information
  7. Monitor daily activities

πŸ”§ Customization

Change Color Scheme

Edit /assets/css/style.css and modify CSS variables:

:root {
    --primary-color: #8B0000;
    --secondary-color: #D4AF37;
    /* ... other colors ... */
}

Add New Table Status

In database and style.css badge classes

Extend Menu Categories

Add to select options in menu management pages

πŸ“§ Support & Help

For issues or questions:

  1. Check database connection in config/database.php
  2. Verify MySQL service is running
  3. Ensure folder permissions are correct
  4. Check browser console for JavaScript errors

πŸ“„ License

This project is provided as-is for educational and commercial use.

πŸŽ“ Learning Resources

This system demonstrates:

  • βœ“ MVC pattern principles
  • βœ“ Database design and normalization
  • βœ“ Secure authentication
  • βœ“ Role-based access control
  • βœ“ Responsive web design
  • βœ“ Form validation
  • βœ“ Session management
  • βœ“ SQL best practices

πŸš€ Future Enhancements

  • Email notifications for reservations
  • SMS notifications
  • Reservation calendar view
  • Payment integration
  • Review and rating system
  • Online ordering
  • QR code integration
  • Multi-language support
  • Analytics dashboard
  • Export to PDF/Excel

Version: 1.0
Last Updated: April 2026
Developed with: PHP, MySQL, HTML5, CSS3

About

restaurant table reservation management system project to manage restaurant activities and customers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors