Case study · Full-stack product engineering

Custom booking system development built around real operational complexity.

This custom booking system development project in Bratislava shows how Minerva Visuals replaced the limitations of generic third-party booking software with a branded web application built around real services, staff roles, live availability, multilingual customers and operational rules.

ClientSaffron Hotel Bratislava
ProductCustom Booking Engine & Web Application
DeliveryStrategy, full-stack engineering
MarketEurope
MacaGym · Live booking flow
MacaGym logoMaca Booking Engine
EN · SK · CS · DE · UK
Step 01 · Choose a service

What would you like to book?

Personal trainingFocused 1:1 session
Sports massageRecovery & mobility
Fitness assessmentBaseline & planning
Group sessionTrain together

Availability verified against provider schedules

1 of 6
6 steps

A guided client journey from service selection to confirmation.

5 languages

Localized routes and content for Slovak, Czech, English, German and Ukrainian.

2 roles

Admin and staff permissions aligned to operational responsibilities.

1 system

Bookings, services, staff, schedules and notifications working together.

Project overview

Replacing fragmented administration with one coherent product.

MacaGym needed more than a calendar widget. Its booking experience had to understand different services, durations, prices, staff schedules, blocked dates and customer languages without transferring that complexity to the user.

The business requirement

Create a self-service experience for personal training, massage and fitness appointments while giving staff precise control over capacity, service configuration and exceptions.

Product strategyUX architectureApplication designFull-stack development

The engineering principle

Availability must be calculated rather than assumed. Every slot is evaluated against working hours, existing bookings, service duration, buffer intervals and one-off exceptions before it is offered.

Server validationTransactional integrityRow-level security

The problem

Four systems had to behave like one.

Schedule complexity

Provider shifts, buffers, durations and exceptions had to resolve into trustworthy start times.

International access

Five languages needed localized navigation, content and URLs without duplicating application logic.

Operational control

Staff needed a usable command center instead of direct database access, allowing them to manage real-world change.

Data integrity

Client-side availability alone was insufficient. The server had to validate every booking before commitment.

Our approach

A layered architecture with responsibility in the right place.

Select a layer to see how experience, application logic and operational data work together.

The customer journey

Six decisions, one calm booking experience.

01

Select service

Browse organized fitness and wellness options.

02

Choose variant

Compare duration and pricing choices.

03

Pick a date

See valid working days and exceptions.

04

Select a slot

Choose a server-calculated start time.

05

Add details

Provide contact, notes and GDPR consent.

06

Confirm

Review the booking and receive email confirmation.

Inside the product

Real interfaces. Real operational proof.

Explore the booking experience in motion, supported by detailed views of the customer journey and operational controls.

Customer journey

Service and duration selection

This multilingual customer booking journey shows how people compare services, duration choices and pricing before continuing to availability.

Mobile experience

Completed mobile booking flow

See the custom booking engine availability and time-slot interface within the responsive customer journey and confirmation flow.

Staff administration

Staff roles and access permissions

See how staff roles and access permissions in the booking system let administrators update profiles, assign operational roles and control each team member’s access.

Administrative system

Admin bookings dashboard

See the booking administration dashboard with staff and service controls, availability and day-to-day scheduling in one operational view.

The operational product

Customer simplicity backed by staff control.

The administrative interface turns scheduling rules into manageable daily workflows.

Operations command center● Live
Today’s bookingsBratislava · CEST
Personal training · 60 minConfirmed
Sports massage · 45 minConfirmed
Fitness assessment · 60 minConfirmed
Personal training · 90 minConfirmed
Group session · 60 minConfirmed

Backend implementation

A relational model designed around operational truth.

The database keeps services, providers, schedules, bookings and exceptions as distinct but connected records. This lets the server calculate availability reliably, prevent conflicting appointments and evolve business rules without compromising existing data.

Booking database · entity relationship modelHover or focus an entity to trace its relationships
SERVICES
iduuidPK
namestring
slugstring
is_activeboolean
BUSINESS_SETTINGS
PROVIDERS
iduuidPK
namestring
emailstring
permissionsjsonb
SERVICE_VARIATIONS
iduuidPK
service_iduuidFK
duration / price
BOOKINGS
iduuidPK
service_iduuidFK
variation_iduuidFK
provider_iduuidFK
customer + date + time + status
PROVIDER_WORKING_HOURS
AVAILABILITY_EXCEPTIONS
The complete database model is scaled to fit this screen
SERVICES1 → many variations
PROVIDERS1 → many schedules
BOOKINGSservice + provider + slot
EXCEPTIONSblocked dates + custom shifts
BUSINESS SETTINGStimezone + policies

Booking verification & creation

Every request passes through a controlled database decision path.

This flowchart shows how the server evaluates service status, provider availability, scheduling exceptions, working hours and booking collisions before a record can be committed and notifications can be released.

Booking request · verification pipelineHover or focus a step to trace its direct outcomes
Start: Booking Request
Service & Variation Active?
Fail: Variation Unavailable
Provider Active?
Fail: Provider Inactive
Check Exceptions on Booking Date
Fail: Date Blocked / Holiday
Is within Working Hours?
Fail: Provider Off-Duty
Check Conflicting Bookings
Fail: Slot Already Booked
Calculate Total Price from Variation
Insert New Booking Record
Trigger: Send Email Notification to Customer & Provider
End: Booking Confirmed
The complete verification pipeline is scaled to fit this screen

Built for operational fit

When standard booking software starts shaping the business

Generic platforms are useful until fixed rules begin limiting the services, schedules and customer experience your operation needs.

01 Off-the-shelf platform

The business adapts to the software.

Teams work around predefined processes, generic permissions and customer journeys that were designed for everyone.

  • Fixed workflows
  • Generic permissions
  • Limited flexibility
02 Custom booking engine

The software adapts to the business.

Services, schedules, roles, branding and integrations are shaped around the operation and can evolve with it.

  • Operational workflows
  • Branded customer journey
  • Built for future growth
Custom booking engine development Need a system designed around how your business actually works?
Discuss your booking system

Results

A production-ready foundation for service operations.

The outcome is not simply a booking form. It is a connected product system built to reduce manual coordination, support international customers and give the business control over change.

Self-service

Less booking friction

Clients can move from service discovery to confirmation without back-and-forth scheduling messages.

Conflict-aware

Safer availability

Slots are checked against schedules, existing bookings, durations, buffers and exceptions before confirmation.

International

Five-language reach

Localized routes and message catalogs make the same system usable across multiple European audiences.

Configurable

Operational independence

Teams can manage services, pricing, staff, schedules and policies through a controlled interface.

Secure

Role-based control

Authentication and row-level policies limit sensitive actions and data to authorized roles.

Extensible

A platform, not a patch

The relational model and typed application architecture create a foundation for future features.

Next.js 16React 19TypeScript 5SupabasePostgreSQLRow Level SecurityServer ActionsTailwind CSS v4next-intlZodReact Hook FormResend API

Build something worth trusting

Complex operations deserve a product, not another workaround.

Minerva Visuals combines product strategy, interface design and full-stack engineering to create business systems that are clear to use and dependable in production.