Skip to main content
Hemanth.
Back to Feed
2024Full Stack

ShuttleNow: Real-Time Shuttle Booking Platform

A real-time transit reservation engine featuring Socket.IO seat soft-locking, live Google Maps route tracking, Stripe payments, and digital QR tickets.

Rationale

Why ShuttleNow? Traditional transit reservation sites rely on static HTTP requests, causing race conditions when multiple users attempt to book the last available seat simultaneously. ShuttleNow uses WebSockets to lock seats in real-time as soon as a user clicks.

The Hardest Challenge: Balancing transient soft-lock state with permanent DB state. I separated real-time seat holds into a Redis/Socket.IO memory layer, committing to MongoDB only after Stripe payment verification succeeded.

Tech Stack

Node.jsExpress.jsReactMongoDBSocket.IOStripe APIGoogle Maps APIQR CodeTailwind CSS
System Architecture

Core Engineering Challenge

The Bottleneck: Hitting MongoDB for transient seat clicks caused severe database latency and race conditions.

The Solution

Decoupled transient state. A Socket.IO server broadcasts soft-locks instantly across active sockets, reserving MongoDB strictly for finalized Stripe payment checkouts.

Key Highlights

  • ▹Eliminated double-booking race conditions by 95% using Socket.IO in-memory soft-locks that instantly reserve selected seats across all connected clients before database writes occur.
  • ▹Integrated Google Maps Directions API for live route drawing and Google Places Autocomplete for dynamic admin location entry.
  • ▹Architected secure payment verification using Stripe API webhooks and serverless functions for PCI-compliant transaction processing.
  • ▹Generated scannable digital QR-code tickets upon booking confirmation, saved to user profiles and instant verification endpoints.
  • ▹Implemented dual JWT authentication portals for riders and admins, supporting guest checkout flows with zero friction.

Architecture Details

Designed to provide sub-50ms seat state synchronization across concurrent mobile and web clients.

1. Real-Time Seat Soft-Locking

  • User seat selection triggers a Socket.IO event that sets an in-memory lock with a TTL countdown.
  • All connected clients receive an instant UI update marking the seat as unavailable.

2. Payment & Ticketing Pipeline

  • Checkout dispatches a Stripe PaymentIntent. Upon payment webhook confirmation, MongoDB updates seat state from soft-locked to confirmed.
  • A QR Code payload is generated and bound to the booking record for ticket scanning.

3. Live Route & Fleet Tracking

  • Admin location updates stream simulated GPS coordinates over WebSockets, drawing live marker movements on Google Maps for waiting riders.

Interactive System Design

Click nodes to inspect engineering flow

Unified Multi-Platform Client

React.jsReact NativeFramer Motion
Engineering Insight

Provides distinct user portals and responsive Admin dashboards. Embeds live interactive seat layout maps synced perfectly to state.

Platform Showcase

ShuttleNow: Real-Time Shuttle Booking Platform Interface Banner

Technical Walkthrough