# nishanthgowdad084-coder/triplink architecture

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

- Interactive diagram: https://gitdiagram.com/nishanthgowdad084-coder/triplink
- Repository: https://github.com/nishanthgowdad084-coder/triplink

## Overview

Trip Link is a Phase 1 API for agency/driver identity, OTP verification, driver onboarding and KYC review; dispatch matching is explicitly future work. The main workflow is OTP verification, registration, authenticated access, document review and driver verification. The graph includes the API routes and their service layer, plus SMS, private-file storage, PostgreSQL and RLS. README documents route capabilities whose implementations were not sampled; those are represented at the route level. Evidence is limited to the README and indexed excerpts/read files.

Main entry points: [`src/services/auth.service.ts`](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/auth.service.ts) (Auth service), [`src/services/kyc.service.ts`](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/kyc.service.ts) (KYC service), [`src/db/tx.ts`](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/db/tx.ts) (RLS transactions), [`src/db/pool.ts`](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/db/pool.ts) (PostgreSQL)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API surface"]
  node_app["HTTP application<br/>[app.ts]"]
  node_authroutes["Auth routes<br/>[auth.routes.ts]"]
  node_driverroutes["Driver routes<br/>[drivers.routes.ts]"]
  node_adminroutes["Admin routes<br/>[admin.routes.ts]"]
end

subgraph group_identity["Identity and sessions"]
  node_authsvc["Auth service<br/>[auth.service.ts]"]
  node_otpsvc["OTP service<br/>[otp.service.ts]"]
  node_tokensvc["Token service<br/>[token.service.ts]"]
  node_sms["SMS provider<br/>[sms.provider.ts]"]
end

subgraph group_kyc["Driver verification"]
  node_driversvc["Driver service<br/>[driver.service.ts]"]
  node_kycsvc["KYC service<br/>[kyc.service.ts]"]
  node_adminsvc["Admin service<br/>[admin.service.ts]"]
end

subgraph group_platform["Data and security"]
  node_audit["Audit service<br/>[audit.service.ts]"]
  node_pg[("PostgreSQL<br/>[pool.ts]")]
  node_tx["RLS transactions<br/>[tx.ts]"]
  node_migrations["Schema and RLS<br/>[001_init.sql]"]
  node_filebox[("Private KYC files<br/>[kyc.service.ts]")]
end

node_client(("API client"))

node_client -->|"sends requests"| node_app
node_app -->|"routes auth"| node_authroutes
node_app -->|"routes drivers"| node_driverroutes
node_app -->|"routes admin"| node_adminroutes
node_authroutes -->|"calls"| node_authsvc
node_authroutes -->|"verifies token"| node_tokensvc
node_driverroutes -->|"calls"| node_driversvc
node_driverroutes -->|"calls"| node_kycsvc
node_adminroutes -->|"calls"| node_adminsvc
node_adminroutes -->|"calls"| node_kycsvc
node_authsvc -->|"requests OTP"| node_otpsvc
node_authsvc -->|"creates sessions"| node_tokensvc
node_authsvc -->|"prepares uploads"| node_kycsvc
node_otpsvc -->|"sends message"| node_sms
node_authsvc -->|"runs transactions"| node_tx
node_kycsvc -->|"sets user context"| node_tx
node_adminsvc -->|"uses transactions"| node_tx
node_driversvc -->|"uses transactions"| node_tx
node_tokensvc -->|"reads sessions"| node_pg
node_tx -->|"queries"| node_pg
node_authsvc -->|"records events"| node_audit
node_adminsvc -->|"records events"| node_audit
node_driversvc -->|"records events"| node_audit
node_otpsvc -->|"stores OTP state"| node_pg
node_kycsvc -->|"stores and streams"| node_filebox
node_migrations -->|"defines schema"| node_pg
node_kycsvc -->|"stores review state"| node_pg
node_tokensvc -.->|"supports refresh flows"| node_authroutes

click node_app "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/app.ts"
click node_authroutes "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/routes/auth.routes.ts"
click node_driverroutes "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/routes/drivers.routes.ts"
click node_adminroutes "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/routes/admin.routes.ts"
click node_authsvc "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/auth.service.ts"
click node_otpsvc "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/otp.service.ts"
click node_tokensvc "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/token.service.ts"
click node_sms "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/sms/sms.provider.ts"
click node_driversvc "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/driver.service.ts"
click node_kycsvc "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/kyc.service.ts"
click node_adminsvc "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/admin.service.ts"
click node_audit "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/audit.service.ts"
click node_pg "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/db/pool.ts"
click node_tx "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/db/tx.ts"
click node_migrations "https://github.com/nishanthgowdad084-coder/triplink/blob/main/db/migrations/001_init.sql"
click node_filebox "https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/kyc.service.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_app,node_authroutes,node_driverroutes,node_adminroutes,node_client toneBlue
class node_authsvc,node_otpsvc,node_tokensvc,node_sms toneAmber
class node_driversvc,node_kycsvc,node_adminsvc toneMint
class node_audit,node_pg,node_tx,node_migrations,node_filebox toneRose
```

## Components

### API surface

- [HTTP application](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/app.ts): `src/app.ts`
- [Auth routes](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/routes/auth.routes.ts): `src/routes/auth.routes.ts`
- [Driver routes](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/routes/drivers.routes.ts): `src/routes/drivers.routes.ts`
- [Admin routes](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/routes/admin.routes.ts): `src/routes/admin.routes.ts`

### Identity and sessions

- [Auth service](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/auth.service.ts): `src/services/auth.service.ts`
- [OTP service](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/otp.service.ts): `src/services/otp.service.ts`
- [Token service](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/token.service.ts): `src/services/token.service.ts`
- [SMS provider](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/sms/sms.provider.ts): `src/services/sms/sms.provider.ts`

### Driver verification

- [Driver service](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/driver.service.ts): `src/services/driver.service.ts`
- [KYC service](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/kyc.service.ts): `src/services/kyc.service.ts`
- [Admin service](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/admin.service.ts): `src/services/admin.service.ts`

### Data and security

- [Audit service](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/audit.service.ts): `src/services/audit.service.ts`
- [PostgreSQL](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/db/pool.ts): `src/db/pool.ts`
- [RLS transactions](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/db/tx.ts): `src/db/tx.ts`
- [Schema and RLS](https://github.com/nishanthgowdad084-coder/triplink/blob/main/db/migrations/001_init.sql): `db/migrations/001_init.sql`
- [Private KYC files](https://github.com/nishanthgowdad084-coder/triplink/blob/main/src/services/kyc.service.ts): `src/services/kyc.service.ts`

### Other components

- **API client**

## Connections

- API client → HTTP application: sends requests (evidence: `README.md`)
- HTTP application → Auth routes: routes auth (evidence: `src/app.ts`)
- HTTP application → Driver routes: routes drivers (evidence: `src/app.ts`)
- HTTP application → Admin routes: routes admin (evidence: `src/app.ts`)
- Auth routes → Auth service: calls (evidence: `src/routes/auth.routes.ts`)
- Auth routes → Token service: verifies token (evidence: `src/routes/auth.routes.ts`)
- Driver routes → Driver service: calls (evidence: `src/routes/drivers.routes.ts`)
- Driver routes → KYC service: calls (evidence: `src/routes/drivers.routes.ts`)
- Admin routes → Admin service: calls (evidence: `src/routes/admin.routes.ts`)
- Admin routes → KYC service: calls (evidence: `src/routes/admin.routes.ts`)
- Auth service → OTP service: requests OTP (evidence: `src/services/auth.service.ts`)
- Auth service → Token service: creates sessions (evidence: `src/services/auth.service.ts`)
- Auth service → KYC service: prepares uploads (evidence: `src/services/auth.service.ts`)
- OTP service → SMS provider: sends message (evidence: `src/services/otp.service.ts`)
- Auth service → RLS transactions: runs transactions (evidence: `src/services/auth.service.ts`)
- KYC service → RLS transactions: sets user context (evidence: `src/services/kyc.service.ts`)
- Admin service → RLS transactions: uses transactions (evidence: `src/services/admin.service.ts`)
- Driver service → RLS transactions: uses transactions (evidence: `src/services/driver.service.ts`)
- Token service → PostgreSQL: reads sessions (evidence: `src/services/token.service.ts`)
- RLS transactions → PostgreSQL: queries (evidence: `src/db/tx.ts`)
- Auth service → Audit service: records events (evidence: `src/services/auth.service.ts`)
- Admin service → Audit service: records events (evidence: `src/services/admin.service.ts`)
- Driver service → Audit service: records events (evidence: `src/services/driver.service.ts`)
- OTP service → PostgreSQL: stores OTP state (evidence: `src/services/otp.service.ts`)
- KYC service → Private KYC files: stores and streams (evidence: `README.md`)
- Schema and RLS → PostgreSQL: defines schema (evidence: `README.md`)
- KYC service → PostgreSQL: stores review state (evidence: `src/services/kyc.service.ts`)
- Token service → Auth routes: supports refresh flows (evidence: `src/routes/auth.routes.ts`)
