How joko108/uber-s01-w03 works
This is an Express API for managing drivers and rides. An admin sends HTTP requests; the routers apply authorization and route-specific validation before dispatching handlers. Driver handlers manage driver records, while ride creation first looks up its driver and then stores a ride with a snapshot of the driver and vehicle details. Both domains use an in-memory database. The README is empty, so the map follows the source tree and supplied excerpts; some handler-to-repository links are inferred from the visible examples and module structure.
Main entry points: drivers.router.ts Driver routes · rides.router.ts Ride routes · setup-app.ts App setup · handlers Ride handlers
Components 15
HTTP entry
- Server startup
src/index.ts - App setup
src/setup-app.ts
Driver management
- Driver routes
src/drivers/routers/drivers.router.ts - Driver validation
src/drivers/validation/driver.input-dto.validation-middlewares.ts - Driver handlers
src/drivers/routers/handlers - Driver repository
src/drivers/repositories/drivers.repository.ts
Ride management
- Ride routes
src/rides/routers/rides.router.ts - Ride validation
src/rides/validation/ride.input-dto.validation-middlewares.ts - Ride handlers
src/rides/routers/handlers - Ride repository
src/rides/repository/rides.repository.ts
Shared infrastructure
- Admin guard
src/auth/middlewares/super-admin.guard.middleware.ts - Validation result
src/core/middlewares/validation/input-validation-result.middleware.ts - ID validation
src/core/middlewares/validation/params-id.validation.middleware.ts - In-memory database
src/db/in-memory.db.ts
Other components
- Admin client
Connections 20
- Admin client → Driver routes: sends requests
- Admin client → Ride routes: sends requests
- Server startup → App setup: configures app
- App setup → Driver routes: mounts routes
- App setup → Ride routes: mounts routes
- Driver routes → Admin guard: applies guard
- Driver routes → Driver validation: validates input
- Driver routes → ID validation: validates IDs
- Driver routes → Validation result: checks validation
- Driver routes → Driver handlers: dispatches
- Driver handlers → Driver repository: manages drivers
- Ride routes → Admin guard: applies guard
- Ride routes → Ride validation: validates input
- Ride routes → ID validation: validates IDs
- Ride routes → Validation result: checks validation
- Ride routes → Ride handlers: dispatches
- Ride handlers → Driver repository: looks up driver
- Ride handlers → Ride repository: stores ride
- Driver repository → In-memory database: reads and writes
- Ride repository → In-memory database: reads and writes