Back to selected work

ENGINEERING CASE STUDY · BUSINESS APPLICATIONS

Restaurant Reservation System
Engineering case study.

LARAVEL 9 · PHP 8 · BREEZE · TAILWIND CSS · ALPINE.JS · MYSQL · LARAVEL SAIL · PHPUNIT

A Laravel app where guests book a table in two steps and staff run the restaurant from an admin panel.

Role
Full stack developer
Type
Built for a small restaurant chain in the UAE
Status
Transformed and delivered for a client
Source
Base project public; client-modified components private

01 / OVERVIEW

The project

A restaurant website with a public menu and a reservation flow. Guests choose a date, time and party size, then pick from the tables that are actually free. Staff manage categories, menus, tables and reservations from a protected admin panel. The project was transformed and produced for a small chain of restaurants in the UAE. The public repository contains the base project only; the components completed or modified for the client are privately owned and cannot be shared.

02 / ARCHITECTURE

How it fits together

How a guest booking and the staff admin panel share one Laravel application.

USER

Guest

Browses the menu and books a table in two steps: details and time, then table choice.

Based on the published repository.

03 / CONTRIBUTION

My contribution

  • Built the two-step reservation flow: guest details and date and time are validated and kept in the session, then the guest chooses from available tables.
  • Implemented booking rules on the server: reservations within the next week and between 17:00 and 23:00, using custom validation rules.
  • Filtered table choices by availability, capacity for the party size, and existing bookings for the chosen day.
  • Built the admin panel with CRUD for categories, menus (with image upload and many-to-many categories), tables and reservations.
  • Protected the admin area with Laravel Breeze authentication and an admin middleware based on an admin flag.

04 / ENGINEERING

Engineering notes

  • Business rules live in dedicated validation rule classes, so the same rules apply regardless of which form submits the data.
  • Tables carry a location (front, inside or outside), a status and a capacity, modelled with PHP enums.
  • The public site and the admin area use separate controller namespaces and routes, keeping guest-facing and staff-facing code apart.
  • Laravel Sail provides a Docker-based development environment.

TECHNOLOGY

Tools selected for the work.

Laravel 9PHP 8BreezeTailwind CSSAlpine.jsMySQLLaravel SailPHPUnit