How redwan786/dhaka-tesla-pool-v2 works
Dhaka Tesla Pool is a ride-pooling application: passengers choose Dhaka zones, estimate fares, request and track rides; drivers review compatible requests, accept them into capacity-limited pools, and advance pool status through completion. The web client communicates with the Express API, which owns authentication, authorization, validation, fare and lifecycle rules, and persistence. The README documents transactional seat allocation and PostgreSQL row locking; sampled code confirms controller-to-service calls but does not expose every domain service implementation, so uncertain internal wiring is omitted.
Main entry points: index.ts API routes · app Web app · client.ts Typed API client · passenger Passenger UI
Components 26
Web experience
- Web app
apps/web/app - Passenger UI
apps/web/components/passenger - Driver UI
apps/web/components/driver/driver-dashboard.tsx - Auth UI
apps/web/components/auth - Session provider
apps/web/providers/auth-provider.tsx - Typed API client
apps/web/lib/api/client.ts
API access
- Express API
apps/api/src/app.ts - API routes
apps/api/src/routes/index.ts
Ride operations
- Passenger routes
apps/api/src/modules/passenger/passenger.routes.ts - Passenger controller
apps/api/src/modules/passenger/passenger.controller.ts - Passenger service
apps/api/src/modules/passenger/passenger.service.ts - Geography routes
apps/api/src/modules/geography/geography.routes.ts - Geography controller
apps/api/src/modules/geography/geography.controller.ts - Geography service
apps/api/src/modules/geography/geography.service.ts - Pool routes
apps/api/src/modules/pool/pool.routes.ts - Pool controller
apps/api/src/modules/pool/pool.controller.ts - Pool service
apps/api/src/modules/pool/pool.service.ts - Driver routes
apps/api/src/modules/driver/driver.routes.ts - Driver controller
apps/api/src/modules/driver/driver.controller.ts - Driver service
apps/api/src/modules/driver/driver.service.ts
Identity
- Auth routes
apps/api/src/modules/auth/auth.routes.ts - Auth controller
apps/api/src/modules/auth/auth.controller.ts - Auth service
apps/api/src/modules/auth/auth.service.ts
Persistence
- PostgreSQL
Other components
- Passenger
- Driver
Connections 32
- Passenger → Web app: uses
- Driver → Web app: uses
- Web app → Passenger UI: renders
- Web app → Driver UI: renders
- Web app → Auth UI: renders
- Web app → Session provider: uses session
- Passenger UI → Typed API client: requests data
- Driver UI → Typed API client: requests data
- Auth UI → Typed API client: submits credentials
- Session provider → Typed API client: loads session
- Typed API client → Express API: sends JSON
- Express API → API routes: mounts
- API routes → Auth routes: dispatches
- API routes → Passenger routes: dispatches
- API routes → Geography routes: dispatches
- API routes → Pool routes: dispatches
- API routes → Driver routes: dispatches
- Auth routes → Auth controller: invokes
- Auth controller → Auth service: calls
- Passenger routes → Passenger controller: invokes
- Passenger controller → Passenger service: calls
- Geography routes → Geography controller: invokes
- Geography controller → Geography service: calls
- Pool routes → Pool controller: invokes
- Pool controller → Pool service: calls
- Driver routes → Driver controller: invokes
- Driver controller → Driver service: calls
- Auth service → PostgreSQL: reads and writes
- Passenger service → PostgreSQL: persists rides
- Geography service → PostgreSQL: loads zones
- Pool service → PostgreSQL: allocates pools
- Driver service → PostgreSQL: reads and updates