Case study
Réservez-Moi
Service-booking platform with availability and reservation management.
Case study by Keltoum Malouki

Overview
Réservez-Moi is a service-booking web platform built with Laravel and MySQL by Keltoum Malouki, a Full Stack Web Developer based in Casablanca, Morocco. It connects clients with service providers: clients find an available service and book it, while providers manage their services, availability and reservations from a dedicated dashboard.
The problem
Booking a service often means calling or messaging a provider and waiting for an answer, while providers keep track of their bookings by hand. Réservez-Moi brings the service catalogue, availability, reservations and online payment together in one web platform, with a dedicated space for each type of user.
My role
I developed the platform as a full-stack developer:
- modelling the application with UML and planning the work in Jira;
- designing the MySQL database schema through Laravel migrations;
- building the Laravel back end: routes, controllers, middleware, repositories and services;
- creating the Blade interfaces with HTML, Tailwind CSS and JavaScript;
- versioning the code with Git and GitHub.
Key features
For clients
- Browse a public catalogue of available services, with keyword search and category and price filters.
- Book a service for a chosen date and time, with optional notes.
- Follow and cancel reservations.
- Pay for a reservation online with PayPal.
For service providers
- Set up a provider profile.
- Create, edit and delete services, with photos, a category, a duration and an availability status.
- Confirm or cancel incoming reservations.
- Follow activity from a dashboard with statistics.
For administrators
- Manage service providers and the services they publish.
- Suspend or reactivate provider accounts and services.
- View platform statistics and export them.
- Configure platform settings for security, payments and emails.
Accounts and notifications
- Registration with email verification and password reset.
- Sign-in with Google or Facebook through Laravel Socialite.
- Notifications when a reservation is created, confirmed or cancelled.
Tech stack & architecture
| Layer | Technologies |
|---|---|
| Back end | Laravel (PHP) |
| Database | MySQL |
| Front end | Blade, HTML, Tailwind CSS, JavaScript |
| Integrations | PayPal, Google and Facebook sign-in (Laravel Socialite) |
| Design & project management | UML, Jira, Git, GitHub |
Réservez-Moi follows Laravel's MVC structure, with extra layers that keep business logic out of the controllers:
- Repositories, behind interfaces bound in a service provider, handle data access for services and reservations.
- Service classes hold the business logic, such as creating a reservation and processing PayPal payments.
- Middleware restricts each area of the platform to the right role: client, service provider or administrator.
- Form requests validate input before it reaches the controllers.
Approach
The platform is organized around three roles, each with its own routes and dashboard, so that every user only sees the actions that concern them. Reservation and payment logic lives in dedicated service classes rather than in controllers, with the aim of keeping controllers thin and the business rules in one place.
Links
- Source code: github.com/keltoummalouki/Reservez-Moi
- More case studies: All projects
- Need a booking platform? Work with me







