Booking & Reservation Engine by Waleed Ashraf UsmaniBooking & Reservation Engine by Waleed Ashraf Usmani

Booking & Reservation Engine

Waleed Ashraf Usmani

Waleed Ashraf Usmani

Booking & Reservation Engine
Booking & Reservation Engine

The Problem

A multi-location service business operating 12 branches across Australia was losing 30% of potential bookings because customers couldn't book online and staff couldn't manage availability across locations from a single system. Each branch ran its own scheduling process, and headquarters had zero visibility into aggregate capacity or revenue.
Booking was phone-only across all 12 branches. Each location had a receptionist managing a local calendar. During peak hours, 35% of calls went unanswered. Customers who couldn't get through booked with competitors
No cross-location visibility. A customer calling Branch A couldn't be redirected to Branch B's open slot 10 minutes away. Each branch operated as an island with its own availability
Staff scheduling was managed per-branch in spreadsheets. When a staff member worked across multiple locations, their availability had to be manually coordinated between branch managers via phone calls
Payment collection was inconsistent. Some branches took deposits, others didn't. No-show rates varied from 8% to 28% across locations with no standardized policy
Customer records were duplicated across branches. A returning customer at a different location started from scratch with no service history, preferences, or notes from previous visits
Headquarters received monthly revenue reports from each branch via email. Consolidating 12 spreadsheets into a single view took 2 days. By the time the report was ready, the data was 3 weeks old
The business was scaling locations faster than its booking infrastructure could support. Every new branch multiplied the coordination overhead.

The Approach

I built a unified booking and reservation platform that connects all 12 branches into a single system with online self-service booking, cross-location availability, centralized customer records, and real-time revenue visibility.
Multi-Location Online Booking
Customers book any branch, any time, in 60 seconds.
✅ Public booking portal with real-time availability across all 12 locations, filterable by service type, staff member, date, and proximity to customer's location
✅ Smart location suggestions based on earliest available slot when the preferred branch is fully booked
✅ Instant confirmation with calendar sync (Google, Outlook, Apple) and location-specific directions and parking instructions
📊 Outcome: Online bookings accounted for 62% of all appointments within the first month. Unanswered call rate dropped from 35% to 12%. Cross-location bookings (customer booked at a non-primary branch) represented 18% of online bookings
Unified Staff Scheduling
One schedule per staff member, regardless of how many locations they work.
✅ Centralized availability management for staff working across multiple branches with automatic conflict prevention
✅ Shift templates with recurring patterns, location rotation schedules, and break time enforcement
✅ Real-time capacity dashboard showing staffed hours vs. booked hours per location with understaffing alerts
📊 Outcome: Multi-location staff scheduling conflicts eliminated. Branch managers recovered 6 hours/week previously spent coordinating cross-location availability via phone
Centralized Customer Records
One customer profile across all 12 branches.
✅ Unified customer database with service history, preferences, notes, and communication log accessible from any location
✅ Automatic profile merging when duplicate records are detected across branches based on email, phone, or name matching
✅ Customer preference tracking: preferred staff member, service variations, scheduling preferences, and communication channel
📊 Outcome: Duplicate customer records reduced 89% through automated merging. Staff at any branch can see full service history. Customer satisfaction scores improved 0.8 points (3.6 → 4.4/5) from personalized service continuity
Integrated Payment and No-Show Management
Standardized deposits. Automated enforcement. Consistent across all branches.
✅ Configurable deposit collection at booking time with branch-specific or service-specific policies via Stripe
✅ Automated no-show fee processing with configurable grace periods and waiver workflows for legitimate cancellations
✅ Cancellation and rescheduling self-service with policy-compliant refund handling (full refund if 24+ hours notice, deposit forfeited otherwise)
📊 Outcome: No-show rates standardized from 8-28% spread to 5-8% across all branches. Deposit collection recovered an estimated $14K/month in previously lost no-show revenue
Real-Time Multi-Location Analytics
Headquarters sees everything. In real time. Not 3 weeks later.
✅ Consolidated dashboard showing bookings, revenue, utilization, no-show rates, and customer acquisition per branch with daily granularity
✅ Branch comparison views identifying top and underperforming locations with drill-down into contributing factors
✅ Demand forecasting per location and service type, flagging weeks where projected demand exceeds staffed capacity
📊 Outcome: Monthly reporting consolidation eliminated (2 days recovered). Headquarters reviewing live dashboards daily. Demand forecasting prevented understaffing during 3 peak periods in the first quarter

Architecture Decisions

Why I chose this stack and what tradeoffs I made.
PostgreSQL with branch-scoped row-level security — 12 branches need data isolation for local operations while headquarters needs cross-branch aggregation. Row-level security policies scope branch staff to their location's data while admin roles see everything. Single database, no multi-tenant complexity
Redis for real-time availability — Booking availability must reflect changes within seconds across all branches. Redis stores current-day availability as sorted sets, updated on every booking/cancellation. PostgreSQL remains the source of truth, Redis serves the booking portal
Stripe Connect with per-branch accounts — Each branch has its own Stripe Connect account for deposit collection and no-show fee processing. Centralized reporting aggregates across all accounts. Branch-specific payout schedules match each location's banking setup
Next.js with ISR for the booking portal — Service pages and location pages are semi-static (change weekly, not hourly). ISR serves cached pages with sub-1-second loads while availability slots load dynamically client-side. SEO-optimized for "[service] booking [suburb]" local search

The Results

Timeframe
What Happened
Week 1
Online booking live across all 12 branches. 62% of appointments booked online within the first week. Unanswered call rate dropped from 35% to 12%
Week 3
Unified staff scheduling deployed. Cross-location conflicts eliminated. Customer record merging reduced duplicates 89%
Month 1
No-show rates standardized to 5-8% across all branches (down from 8-28% spread). Deposit collection recovering $14K/month in previously lost revenue
Month 2
Headquarters reviewing live dashboards daily. Branch comparison views identified 2 underperforming locations, triggering operational changes. Cross-location bookings at 18%
Month 5
Platform handling 3,200+ appointments/week across 12 branches. Demand forecasting prevented 3 understaffing incidents. Customer satisfaction up from 3.6 to 4.4/5
Like this project

Posted May 16, 2026

Booking management platform designed for appointment scheduling, availability management, payment processing, automated reminders, and client self-service across service-based businesses.

Likes

0

Views

2

Timeline

Jan 1, 2025 - Apr 30, 2025

Clients

MJ Facility Services