Aadhib

Booking · Mobile · SaaS · Active

Consultation booking platform

A booking system for 30-minute consultations that works the same whether the appointment happens in a room or on a video call.

Role
Architecture and delivery
Category
Booking · Mobile · SaaS
Status
Active
01

The problem

A consultation practice that runs on fixed slots has a scheduling problem and a queue problem, and they are not the same problem. Booking decides who has a slot; the queue decides what actually happens on the day, when people arrive early, late, together, or with family members who were not on the booking.

02

Approach

Build both halves against one record. A booking creates an appointment; the appointment carries visitor information, family members and its delivery mode; and on the day it moves through check-in, queue and completion. The visitor experience and the staff experience read the same object from opposite ends.

03

What it does

01
30-minute slot model
Fixed slots with holds during booking, so two people cannot take the same slot while one of them is still typing.
02
In-person and online in one flow
An appointment is a slot with a delivery mode. Online consultations attach a Google Meet link; in-person ones enter the physical queue. The booking flow does not fork.
03
Visitor and family information
Appointments carry the people actually attending, not just the person who booked — because in practice they arrive together.
04
Rescheduling
A first-class path rather than cancel-and-rebook, so the appointment keeps its history.
05
Check-in and queues
Arrival is recorded, and the queue reflects who is actually present rather than who was scheduled.
06
Waiting displays
A public display so people in a waiting area can see where the queue has reached without asking staff.
04

The hard parts

01
Two clocks
The calendar runs on scheduled time. The waiting room runs on real time. Reconciling them without either lying to the visitor is the core difficulty.
02
Holds are a correctness problem
Without a hold, concurrent bookings collide. With one that lasts too long, availability looks worse than it is. The window has to be short and reliable.

Detail

Client confidentiality

I'm not naming the practice, and I describe no visitor or household data beyond the shape of the fields the system holds.

Why booking software is deceptively hard

The booking form is a weekend's work. Everything after it — holds, concurrency, rescheduling, arrivals that do not match bookings, and the queue that forms when a session overruns — is the actual product.

Stack

Application
Next.jsPostgreSQLMobile components
Scheduling
30-minute slotsCalendarRescheduling
Delivery
In-person appointmentsGoogle MeetPush notifications

Case studies

The decisions behind the build

All work