# vinayvermavlogs/rydex_clone architecture

> Architecture diagram of the GitHub repository vinayvermavlogs/rydex_clone, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vinayvermavlogs/rydex_clone
- Repository: https://github.com/vinayvermavlogs/rydex_clone

## Overview

RYDEX is a ride-booking platform for riders, vehicle partners, and administrators. A rider searches nearby vehicles, requests a booking, pays, and can follow and complete the ride with OTP verification; partners onboard vehicles and documents and manage ride requests, while administrators review partners, vehicles, and video KYC. The graph preserves the documented live tracking, chat, media, and video-KYC capabilities. Source excerpts establish selected API-to-model and socket relationships; other feature links are documented at README level or left unverified.

Main entry points: [`rydex/src/models`](https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/models) (MongoDB models), [`rydex/src/app/api/booking/create/route.ts`](https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/booking/create/route.ts) (Booking requests), [`rydex/src/app/api/auth/register/route.ts`](https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/auth/register/route.ts) (Register and verify), [`rydex/src/app/api/partner/onboarding`](https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/partner/onboarding) (Partner onboarding)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Identity and onboarding"]
  node_auth["Authentication<br/>[auth.ts]"]
  node_registration["Register and verify<br/>[route.ts]"]
  node_onboarding["Partner onboarding"]
  node_kyc["Video KYC"]
end

subgraph group_ride["Ride lifecycle"]
  node_discovery["Vehicle discovery<br/>[route.ts]"]
  node_booking["Booking requests<br/>[route.ts]"]
  node_partnerrides["Partner ride handling"]
  node_payments["Payment processing"]
  node_otp["Ride OTP checks"]
end

subgraph group_realtime["Live communications"]
  node_tracking["Live ride tracking<br/>[index.js]"]
  node_chat["Ride chat"]
  node_suggestions["AI reply suggestions<br/>[route.ts]"]
end

subgraph group_operations["Partner and admin operations"]
  node_adminreviews["Reviews and oversight"]
  node_earnings["Earnings<br/>[route.ts]"]
end

subgraph group_core["Platform services"]
  node_mongodb[("MongoDB models")]
  node_socketuser[("Socket user model<br/>[user.model.js]")]
  node_mail["Email delivery<br/>[sendMail.ts]"]
  node_cloudinary["Cloudinary media<br/>[cloudinary.ts]"]
  node_razorpay["Razorpay<br/>[razorpay.ts]"]
  node_zego["ZegoCloud"]
  node_gemini["Gemini service"]
end

node_rider(("Rider"))
node_partner(("Ride partner"))
node_admin(("Administrator"))

node_rider -->|"registers"| node_registration
node_registration -->|"stores user"| node_mongodb
node_registration -->|"sends OTP"| node_mail
node_rider -->|"searches vehicles"| node_discovery
node_discovery -->|"queries nearby"| node_mongodb
node_rider -->|"requests ride"| node_booking
node_booking -->|"checks session"| node_auth
node_booking -->|"creates booking"| node_mongodb
node_booking -->|"notifies partner"| node_tracking
node_partner -->|"manages requests"| node_partnerrides
node_partner -->|"submits details"| node_onboarding
node_onboarding -->|"saves vehicle"| node_mongodb
node_admin -->|"reviews submissions"| node_adminreviews
node_adminreviews -->|"loads review data"| node_mongodb
node_payments -->|"updates booking"| node_mongodb
node_rider -->|"pays fare"| node_payments
node_partner -->|"verifies trip"| node_otp
node_rider -->|"follows ride"| node_tracking
node_rider -->|"messages partner"| node_chat
node_chat -.->|"requests replies"| node_suggestions
node_suggestions -->|"requests suggestions"| node_gemini
node_partner -->|"views earnings"| node_earnings
node_onboarding -.->|"uploads media"| node_cloudinary
node_admin -->|"reviews KYC"| node_kyc
node_partner -->|"joins video KYC"| node_kyc
node_kyc -->|"hosts video"| node_zego
node_tracking -->|"updates presence"| node_socketuser
node_payments -.->|"verifies payment"| node_razorpay

click node_auth "https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/auth.ts"
click node_registration "https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/auth/register/route.ts"
click node_onboarding "https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/partner/onboarding"
click node_kyc "https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/admin/video-kyc"
click node_discovery "https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/vehicles/near-by/route.ts"
click node_booking "https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/booking/create/route.ts"
click node_partnerrides "https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/partner/bookings"
click node_payments "https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/payment"
click node_otp "https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/partner/bookings/otp"
click node_tracking "https://github.com/vinayvermavlogs/rydex_clone/blob/master/socketServer/index.js"
click node_chat "https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/chat"
click node_suggestions "https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/chat/ai-suggestions/route.ts"
click node_adminreviews "https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/admin"
click node_earnings "https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/partner/earning/route.ts"
click node_mongodb "https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/models"
click node_socketuser "https://github.com/vinayvermavlogs/rydex_clone/blob/master/socketServer/models/user.model.js"
click node_mail "https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/lib/sendMail.ts"
click node_cloudinary "https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/lib/cloudinary.ts"
click node_razorpay "https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/lib/razorpay.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auth,node_registration,node_onboarding,node_kyc toneBlue
class node_discovery,node_booking,node_partnerrides,node_payments,node_otp toneAmber
class node_tracking,node_chat,node_suggestions toneMint
class node_adminreviews,node_earnings toneRose
class node_mongodb,node_socketuser,node_mail,node_cloudinary,node_razorpay,node_zego,node_gemini,node_rider,node_partner,node_admin toneIndigo
```

## Components

### Identity and onboarding

- [Authentication](https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/auth.ts): `rydex/src/auth.ts`
- [Register and verify](https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/auth/register/route.ts): `rydex/src/app/api/auth/register/route.ts`
- [Partner onboarding](https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/partner/onboarding): `rydex/src/app/api/partner/onboarding`
- [Video KYC](https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/admin/video-kyc): `rydex/src/app/api/admin/video-kyc`

### Ride lifecycle

- [Vehicle discovery](https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/vehicles/near-by/route.ts): `rydex/src/app/api/vehicles/near-by/route.ts`
- [Booking requests](https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/booking/create/route.ts): `rydex/src/app/api/booking/create/route.ts`
- [Partner ride handling](https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/partner/bookings): `rydex/src/app/api/partner/bookings`
- [Payment processing](https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/payment): `rydex/src/app/api/payment`
- [Ride OTP checks](https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/partner/bookings/otp): `rydex/src/app/api/partner/bookings/otp`

### Live communications

- [Live ride tracking](https://github.com/vinayvermavlogs/rydex_clone/blob/master/socketServer/index.js): `socketServer/index.js`
- [Ride chat](https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/chat): `rydex/src/app/api/chat`
- [AI reply suggestions](https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/chat/ai-suggestions/route.ts): `rydex/src/app/api/chat/ai-suggestions/route.ts`

### Partner and admin operations

- [Reviews and oversight](https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/app/api/admin): `rydex/src/app/api/admin`
- [Earnings](https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/app/api/partner/earning/route.ts): `rydex/src/app/api/partner/earning/route.ts`

### Platform services

- [MongoDB models](https://github.com/vinayvermavlogs/rydex_clone/tree/master/rydex/src/models): `rydex/src/models`
- [Socket user model](https://github.com/vinayvermavlogs/rydex_clone/blob/master/socketServer/models/user.model.js): `socketServer/models/user.model.js`
- [Email delivery](https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/lib/sendMail.ts): `rydex/src/lib/sendMail.ts`
- [Cloudinary media](https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/lib/cloudinary.ts): `rydex/src/lib/cloudinary.ts`
- [Razorpay](https://github.com/vinayvermavlogs/rydex_clone/blob/master/rydex/src/lib/razorpay.ts): `rydex/src/lib/razorpay.ts`
- **ZegoCloud**
- **Gemini service**

### Other components

- **Rider**
- **Ride partner**
- **Administrator**

## Connections

- Rider → Register and verify: registers
- Register and verify → MongoDB models: stores user (evidence: `rydex/src/app/api/auth/register/route.ts`)
- Register and verify → Email delivery: sends OTP (evidence: `rydex/src/app/api/auth/register/route.ts`)
- Rider → Vehicle discovery: searches vehicles
- Vehicle discovery → MongoDB models: queries nearby (evidence: `rydex/src/app/api/vehicles/near-by/route.ts`)
- Rider → Booking requests: requests ride
- Booking requests → Authentication: checks session (evidence: `rydex/src/app/api/booking/create/route.ts`)
- Booking requests → MongoDB models: creates booking (evidence: `rydex/src/app/api/booking/create/route.ts`)
- Booking requests → Live ride tracking: notifies partner (evidence: `rydex/src/app/api/booking/create/route.ts`)
- Ride partner → Partner ride handling: manages requests
- Ride partner → Partner onboarding: submits details
- Partner onboarding → MongoDB models: saves vehicle (evidence: `rydex/src/app/api/partner/onboarding/vehicle/route.ts`)
- Administrator → Reviews and oversight: reviews submissions
- Reviews and oversight → MongoDB models: loads review data (evidence: `rydex/src/app/api/admin/dashboard/route.ts`)
- Payment processing → MongoDB models: updates booking (evidence: `rydex/src/app/api/payment/verify/route.ts`)
- Rider → Payment processing: pays fare
- Ride partner → Ride OTP checks: verifies trip
- Rider → Live ride tracking: follows ride
- Rider → Ride chat: messages partner
- Ride chat → AI reply suggestions: requests replies
- AI reply suggestions → Gemini service: requests suggestions (evidence: `rydex/src/app/api/chat/ai-suggestions/route.ts`)
- Ride partner → Earnings: views earnings
- Partner onboarding → Cloudinary media: uploads media
- Administrator → Video KYC: reviews KYC
- Ride partner → Video KYC: joins video KYC
- Video KYC → ZegoCloud: hosts video
- Live ride tracking → Socket user model: updates presence (evidence: `socketServer/index.js`)
- Payment processing → Razorpay: verifies payment
