A production-grade ride-sharing ecosystem with dedicated Rider, Driver, and Admin portals.

driver's live position streams to the rider for the whole ride; the rider's live position streams to the driver too, but automatically cuts off at pickup - over a hand-rolled WebSocket protocol, not polling.
riders can skip picking a driver entirely; the backend scores and assigns the best nearby candidate from pickup coordinates.
floating, app-wide, with unread badges, read receipts, and avatars on both sides, backed by WebSocket + REST fallback.
MongoDB multi-document transactions ensure ride creation, driver assignment, and payment records stay consistent even under failure.
a driver can't start a ride until the rider provides a one-time code, preventing wrong-passenger pickups.
Rider, Driver, and Admin/Super-admin each get a tailored UI and permission set off one design system.
new drivers register but stay invisible to riders until an admin approves them, with live UI updates the moment that happens (no refresh needed).
click-to-set, draggable pins, autocomplete search, and "use current location," all resolving to exact coordinates instead of drifting through re-geocoded addresses.
riders can flag an active ride mid-trip, with emergency contacts and an admin triage queue.
ride status changes, chat, and location updates all push live via WebSocket with automatic reconnect and REST fallback if the socket drops.