{"repo":"SaiKrishnaMulukutla/uber","free":true,"listed":false,"github":"https://github.com/SaiKrishnaMulukutla/uber","clone":"git clone https://github.com/SaiKrishnaMulukutla/uber.git","description":"Production-ready distributed ride-hailing backend: Go + Kafka + Redis GEO + PostgreSQL. Event-driven driver matching, real-time WebSocket tracking, atomic trip state machine.","language":"Go","stars":10,"topics":["distributed-systems","docker","docker-compose","event-driven","event-driven-architecture","geospatial","golang","jwt","kafka","microservices"],"license":null,"category":"deployment-docker-iac","readme_excerpt":"RideGo — Ride-Hailing Backend Live demo: https://api-gateway-ov0j.onrender.com (Singapore · Render free tier — first request may take 30 s to cold-start) Ride-hailing backend in Go. Seven microservices behind an NGINX gateway, event-driven via Aiven Kafka, geospatial driver matching with Upstash Redis GEO, Neon Postgres for persistence. Runs locally with Docker Compose; deployed on Render. --- Table of Contents - Features - Architecture - Services - Kafka Topics - Quick Start - API Reference - End-to-End Flow - Payment Flow - State Machines - Testing --- Features Auth - Registration is two steps: POST /register sends a 6-digit OTP, account only created after POST /verify-register confirms it. Login is password-only — no OTP on every signin. - Forgot password goes through OTP too: request a code, verify it, set new password. - HS256 JWTs: 15-min access tokens, 7-day refresh tokens, separate rider/driver roles. Matching - POST /trips/request publishes a Kafka event. matching-service picks it up, finds the nearest available driver via Redis GEORADIUS , and sends an offer. Driver has 60 seconds to accept via POST /drivers/trips/{id}/respond . - Three vehicle tiers: go (hatchback), x (sedan), xl (SUV). Fare is computed server-side with surge capped at 5×. Trip lifecycle - Once driver accepts, trip-service generates a 4-digit ride OTP stored in Redis. Driver can only start the trip after the rider reads them the code — cuts down on ghost rides. - Live GPS tracking over WebSocket wh","default_branch":null,"files":null,"tree":[],"storefront":"/r/SaiKrishnaMulukutla","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/SaiKrishnaMulukutla/uber/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}