Skip to content

A restaurant booking application built with Symfony and designed with a hexagonal architecture for flexibility and scalability.

Notifications You must be signed in to change notification settings

mth-bou/online-booking-app

Repository files navigation

🍽️ Online Booking App

📖 About the Project

Online Booking App is a restaurant reservation system built with Symfony following the hexagonal architecture for better maintainability, scalability, and flexibility. The application allows users to reserve meals in advance, while restaurant administrators can manage bookings efficiently.

✨ Features

  • 📅 Meal Reservations – Book meals at restaurants with real-time availability.
  • 🔐 Secure Booking & Confirmation – Ensures reliability and fraud prevention.
  • 📊 Admin Dashboard – Manage reservations, tables, and availability.
  • 📍 Restaurant Search & Filtering – Users can find and book restaurants based on location, cuisine, and availability.
  • 📢 Notifications & Reminders – Automatic alerts for upcoming bookings.
  • 🏗 Hexagonal Architecture – Ensuring modularity, testability, and clean separation of concerns.

🏗 Tech Stack

  • Backend: Symfony 7.2 (PHP 8.2+)
  • Architecture: Hexagonal
  • Database: PostgreSQL
  • API: RESTful API
  • Frontend: API-ready (compatible with React, Vue, Angular)
  • Testing: PHPUnit
  • Deployment: Docker

🚀 Getting Started

Prerequisites

Make sure you have the following installed:

  • PHP 8.2+
  • Composer
  • Symfony CLI
  • Docker (optional for containerized development)

Installation

  1. Clone the repository:

    git clone https://github.com/mth-bou/online-booking-app.git
    cd online-booking-app
  2. Install dependencies:

    composer install
  3. Set up the environment variables:

    cp .env.example .env

    Update .env with your database credentials.

  4. Set up the database:

    symfony console doctrine:database:create
    symfony console doctrine:migrations:migrate
  5. Run the development server:

    symfony server:start
  6. Or without Symfony CLI:

    php -S 127.0.0.1:3000 -t public

🏗 Architecture Overview

The application follows a hexagonal architecture, dividing the system into:

  • Domain Layer: Business logic, entities, and domain services.
  • Application Layer: Use cases and DTOs.
  • Infrastructure Layer: Database, repositories, external services, and controllers.

This structure ensures a clean separation of concerns and facilitates testing and maintainability.

📌 Roadmap

🤝 Contributing

Contributions are welcome! Feel free to fork the repository and submit a pull request.

📜 License

This project is licensed under the MIT License.


🚀 Efficient, scalable, and easy to extend. Enjoy coding! 😊

About

A restaurant booking application built with Symfony and designed with a hexagonal architecture for flexibility and scalability.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages