An advanced booking & operations platform built for a women's salon - designed not around a calendar, but around "how a salon actually operates" under real daily pressure.
Domain: Service Business OperationsStatus: 🟢 Soft Launch — Live Testing
RoleFull-stack Engineer
ComplexityMulti-role · Multi-constraint System
ImpactOperational chaos to Structured system
Project Gallery
19 images
+14more
01 / Engineering challenge
When is a booking actually possible?
The availability engine combines service duration, staff shifts, and existing appointments before offering a time. Payment requirements then determine how that booking moves toward confirmation.
AvailabilityStaff assignmentConfirmation
System at a glance
200+
Services
Individual durations, prices, and staff assignments.
User roles
4
Appointment states
7
Reported double-bookings
0
Booking lifecycle
02 / System flow
From availability to confirmation.
Online and reception bookings pass through the availability engine. Their payment requirements differ: customers pay a deposit online, while reception records full payment. Appointment states track what happens next.
01Check the service and its duration.
02Fit the full appointment inside the shift.
03Check staff assignment and overlapping bookings.
Booking request
Service, time, customer
Availability engine
Service · shifts · staff · existing bookings
Online booking
Deposit required
Reception entry
Full payment recorded
Appointment state
Pending, awaiting deposit, or confirmed
WhatsApp updates
Customer confirmations and reminders.
Reports & dashboard
Bookings, revenue, and staff visibility.
Appointment states
Pending
Awaiting deposit
Confirmed
Rescheduled
Cancelled
Completed
No-show
04 / Implementation notes
Decisions behind the booking flow.
Availability follows the shift.
Each offered time is checked against actual working days, shift windows, and exceptions. Staff presence in the system is not enough to make an appointment available.
Validate the entire time block.
Each service has its own duration and staff requirements. Conflict checks account for the time occupied by the service, the assigned employee, and concurrent bookings before confirmation.
Payment changes the booking state.
Online bookings require a deposit. Reception-created bookings require full payment. The appointment state model carries both paths through confirmation and later changes, including completion, cancellation, rescheduling, and no-show.
Offer a constrained recommendation.
A customer can select a specific staff member or ask the system for the best available match. The recommendation considers the service, requested time, and shift constraints.
Keep access aligned with the job.
Customer, staff, reception, and manager views share the same underlying booking data. Their permission scopes define which parts of the system each role can access.