MERN application · Bookings & scheduling
Salon booking system
An application for booking services and organising a salon’s schedule, with separate customer and administration flows.
My contribution
I developed data models, authentication, availability and booking rules, including admin-created appointments, validation and tests.

- Two-person project
- Duration-aware booking logic
A booking is more than picking a time
The application lets customers select services and find available slots based on duration, staff availability and calendar blocks. Administrators have a calendar and management tools.
We developed the project as a pair. My work focused on the data and rules that keep the schedule and booking process consistent.

My contribution
- Mongoose models for users, appointments, staff, services, blocks, settings and technical notes.
- JWT authentication, protected passwords and Zod input validation.
- Slot calculation and operational-duration rounding to fit services into scheduling intervals.
- Appointment creation logic, concurrency handling and admin-created bookings for customers.
- Booking and rounding tests, validation improvements and user documentation.

The detail that shaped the schedule
A service’s displayed duration does not always align with the intervals used by the calendar. I separated service duration from the time that must be blocked to avoid incorrectly calculated slots.
Working from the needs of a family-run salon helped us define customer and administration flows: what can be booked, who manages the calendar and how exceptional cases should be handled.
See the project in action
3:22What the video shows
Customers select services, check available slots and confirm an appointment. Administrators review the calendar, create appointments for customers and manage business settings.
Source code and documentation available.