← Back to portfolio

MERN application · Bookings & scheduling

Salon booking system

An application for booking services and organising a salon’s schedule, with separate customer and administration flows.

Period
Apr 2026
Team
Two-person project
Context
Academic project inspired by the needs of a family-run salon.
My role
Data modelling, authentication, booking logic and tests

My contribution

I developed data models, authentication, availability and booking rules, including admin-created appointments, validation and tests.

  • MongoDB
  • Mongoose
  • Express
  • React
  • Node.js
  • JWT
  • Zod
  • TanStack Query
  • FullCalendar
Sign-in screen for MERN Peluquería
Sign-in screen for the customer booking app.
  • 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.

Salon service selection and appointment booking
The customer booking flow.

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.
Salon weekly administration calendar
Calendar view for managing appointments and availability.

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:22
Full project demo. Includes customer and administration flows, recorded in parallel.
What 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.