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

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
Unified Multi-Platform Client
Engineering Insight
Provides distinct user portals and responsive Admin dashboards. Embeds live interactive seat layout maps synced perfectly to state.
Platform Showcase
