# i-am-navaneeth/autolink architecture

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

- Interactive diagram: https://gitdiagram.com/i-am-navaneeth/autolink
- Repository: https://github.com/i-am-navaneeth/autolink

## Overview

This is a Next.js ride-matching application for passengers, pilots and administrators. Its intended ride lifecycle spans ride creation and fare estimation, nearby-pilot matching, pilot acceptance, and ride start/completion; the sampled passenger search UI currently describes its search as a simulation rather than showing a call into that lifecycle. The tree also exposes pilot location/live-mode, verification, referrals, quick rides and AI route-and-price suggestions. API-to-service relationships below are supported by sampled source; several unsampled UI-to-API connections are intentionally omitted.

Main entry points: [`src/lib/supabaseAdmin.ts`](https://github.com/i-am-navaneeth/autolink/blob/main/src/lib/supabaseAdmin.ts) (Server data access), [`src/app/api/rides/create/route.ts`](https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/rides/create/route.ts) (Create ride), [`src/app/api/rides/accepted/route.ts`](https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/rides/accepted/route.ts) (Accept ride), [`src/lib/googleDistance.ts`](https://github.com/i-am-navaneeth/autolink/blob/main/src/lib/googleDistance.ts) (Route distance)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and Access"]
  node_user_context["User and role state<br/>[user-context.tsx]"]
  node_auth_routes["Authentication routes<br/>[route.ts]"]
end

subgraph group_rides["Ride Marketplace"]
  node_passenger_ui["Passenger experience<br/>[passenger-home.tsx]"]
  node_ride_create["Create ride<br/>[route.ts]"]
  node_ride_match["Match pilots<br/>[route.ts]"]
  node_ride_accept["Accept ride<br/>[route.ts]"]
  node_ride_lifecycle["Ride lifecycle APIs"]
  node_quick_rides["Quick rides<br/>[page.tsx]"]
end

subgraph group_pilot_admin["Pilot and Admin Operations"]
  node_pilot_dashboard["Pilot dashboard<br/>[page.tsx]"]
  node_pilot_presence["Pilot presence"]
  node_pilot_verification["Pilot verification<br/>[page.tsx]"]
  node_referrals["Referral redemption<br/>[route.ts]"]
end

subgraph group_services["Platform Services"]
  node_fare["Fare calculation<br/>[fare.ts]"]
  node_distance["Route distance<br/>[googleDistance.ts]"]
  node_ai_suggestions["AI route suggestions"]
  node_supabase_admin["Server data access<br/>[supabaseAdmin.ts]"]
  node_supabase_client["Browser data access<br/>[client.ts]"]
end

node_google_maps(("Google Maps service"))
node_supabase[("Supabase")]
node_passenger(("Passenger"))
node_pilot(("Pilot"))
node_genkit_model(("Genkit model provider"))

node_passenger -.->|"uses"| node_passenger_ui
node_ride_create -->|"gets distance"| node_distance
node_ride_create -->|"calculates fare"| node_fare
node_ride_create -->|"stores ride"| node_supabase_admin
node_distance -->|"requests distance"| node_google_maps
node_ride_match -->|"queries and records matches"| node_supabase_admin
node_ride_accept -->|"updates ride and event"| node_supabase_admin
node_ride_lifecycle -.->|"uses server data access"| node_supabase_admin
node_pilot_presence -->|"updates location"| node_supabase_admin
node_user_context -->|"loads identity"| node_supabase_client
node_supabase_client -.->|"accesses"| node_supabase
node_supabase_admin -.->|"accesses"| node_supabase
node_pilot -.->|"accepts ride"| node_ride_accept
node_ai_suggestions -.->|"generates suggestions"| node_genkit_model

click node_passenger_ui "https://github.com/i-am-navaneeth/autolink/blob/main/src/components/passenger/passenger-home.tsx"
click node_ride_create "https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/rides/create/route.ts"
click node_ride_match "https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/rides/match/route.ts"
click node_ride_accept "https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/rides/accepted/route.ts"
click node_ride_lifecycle "https://github.com/i-am-navaneeth/autolink/tree/main/src/app/api/rides"
click node_quick_rides "https://github.com/i-am-navaneeth/autolink/blob/main/src/app/(app)/quick-rides/page.tsx"
click node_pilot_dashboard "https://github.com/i-am-navaneeth/autolink/blob/main/src/app/(app)/pilot/dashboard/page.tsx"
click node_pilot_presence "https://github.com/i-am-navaneeth/autolink/tree/main/src/app/api/pilots"
click node_pilot_verification "https://github.com/i-am-navaneeth/autolink/blob/main/src/app/admin/verify-pilots/page.tsx"
click node_referrals "https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/referrals/apply/route.ts"
click node_user_context "https://github.com/i-am-navaneeth/autolink/blob/main/src/context/user-context.tsx"
click node_auth_routes "https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/auth/callback/route.ts"
click node_fare "https://github.com/i-am-navaneeth/autolink/blob/main/src/lib/fare.ts"
click node_distance "https://github.com/i-am-navaneeth/autolink/blob/main/src/lib/googleDistance.ts"
click node_ai_suggestions "https://github.com/i-am-navaneeth/autolink/blob/main/src/ai/flows/suggest-route-and-price.ts"
click node_supabase_admin "https://github.com/i-am-navaneeth/autolink/blob/main/src/lib/supabaseAdmin.ts"
click node_supabase_client "https://github.com/i-am-navaneeth/autolink/blob/main/src/lib/supabase/client.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_user_context,node_auth_routes toneBlue
class node_passenger_ui,node_ride_create,node_ride_match,node_ride_accept,node_ride_lifecycle,node_quick_rides,node_supabase toneAmber
class node_pilot_dashboard,node_pilot_presence,node_pilot_verification,node_referrals toneMint
class node_fare,node_distance,node_ai_suggestions,node_supabase_admin,node_supabase_client toneRose
class node_google_maps,node_passenger,node_pilot,node_genkit_model toneIndigo
```

## Components

### Identity and Access

- [User and role state](https://github.com/i-am-navaneeth/autolink/blob/main/src/context/user-context.tsx): `src/context/user-context.tsx`
- [Authentication routes](https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/auth/callback/route.ts): `src/app/api/auth/callback/route.ts`

### Ride Marketplace

- [Passenger experience](https://github.com/i-am-navaneeth/autolink/blob/main/src/components/passenger/passenger-home.tsx): `src/components/passenger/passenger-home.tsx`
- [Create ride](https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/rides/create/route.ts): `src/app/api/rides/create/route.ts`
- [Match pilots](https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/rides/match/route.ts): `src/app/api/rides/match/route.ts`
- [Accept ride](https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/rides/accepted/route.ts): `src/app/api/rides/accepted/route.ts`
- [Ride lifecycle APIs](https://github.com/i-am-navaneeth/autolink/tree/main/src/app/api/rides): `src/app/api/rides`
- [Quick rides](https://github.com/i-am-navaneeth/autolink/blob/main/src/app/(app)/quick-rides/page.tsx): `src/app/(app)/quick-rides/page.tsx`

### Pilot and Admin Operations

- [Pilot dashboard](https://github.com/i-am-navaneeth/autolink/blob/main/src/app/(app)/pilot/dashboard/page.tsx): `src/app/(app)/pilot/dashboard/page.tsx`
- [Pilot presence](https://github.com/i-am-navaneeth/autolink/tree/main/src/app/api/pilots): `src/app/api/pilots`
- [Pilot verification](https://github.com/i-am-navaneeth/autolink/blob/main/src/app/admin/verify-pilots/page.tsx): `src/app/admin/verify-pilots/page.tsx`
- [Referral redemption](https://github.com/i-am-navaneeth/autolink/blob/main/src/app/api/referrals/apply/route.ts): `src/app/api/referrals/apply/route.ts`

### Platform Services

- [Fare calculation](https://github.com/i-am-navaneeth/autolink/blob/main/src/lib/fare.ts): `src/lib/fare.ts`
- [Route distance](https://github.com/i-am-navaneeth/autolink/blob/main/src/lib/googleDistance.ts): `src/lib/googleDistance.ts`
- [AI route suggestions](https://github.com/i-am-navaneeth/autolink/blob/main/src/ai/flows/suggest-route-and-price.ts): `src/ai/flows/suggest-route-and-price.ts`
- [Server data access](https://github.com/i-am-navaneeth/autolink/blob/main/src/lib/supabaseAdmin.ts): `src/lib/supabaseAdmin.ts`
- [Browser data access](https://github.com/i-am-navaneeth/autolink/blob/main/src/lib/supabase/client.ts): `src/lib/supabase/client.ts`

### Other components

- **Google Maps service**
- **Supabase**
- **Passenger**
- **Pilot**
- **Genkit model provider**

## Connections

- Passenger → Passenger experience: uses
- Create ride → Route distance: gets distance (evidence: `src/app/api/rides/create/route.ts`)
- Create ride → Fare calculation: calculates fare (evidence: `src/app/api/rides/create/route.ts`)
- Create ride → Server data access: stores ride (evidence: `src/app/api/rides/create/route.ts`)
- Route distance → Google Maps service: requests distance (evidence: `src/lib/googleDistance.ts`)
- Match pilots → Server data access: queries and records matches (evidence: `src/app/api/rides/match/route.ts`)
- Accept ride → Server data access: updates ride and event (evidence: `src/app/api/rides/accepted/route.ts`)
- Ride lifecycle APIs → Server data access: uses server data access (evidence: `src/app/api/rides/match/route.ts`)
- Pilot presence → Server data access: updates location (evidence: `src/app/api/pilots/location/route.ts`)
- User and role state → Browser data access: loads identity (evidence: `src/context/user-context.tsx`)
- Browser data access → Supabase: accesses
- Server data access → Supabase: accesses
- Pilot → Accept ride: accepts ride
- AI route suggestions → Genkit model provider: generates suggestions
