How shifat-arman/ride-share-nestjs works
This NestJS backend serves a ride-sharing API for riders, drivers, and administrators. The principal workflow runs from rider ride estimation and booking through driver discovery/acceptance, trip progress, and completion; location updates support driver discovery. Authentication issues and rotates access/refresh sessions. The graph also preserves account management, vehicles, ratings, public FAQ/testimonials, and admin announcements. Controller-to-service calls are grounded in sampled controllers; database and external routing/geocoding integrations are represented at the subsystem level where implementation excerpts were not available.
Main entry points: auth.service.ts Auth service · driver.controller.ts Driver API · ride.service.ts Ride service · location.service.ts Location service
Components 29
API and sessions
- Auth API
src/auth/auth.controller.ts - Auth service
src/auth/auth.service.ts - Token pairs
src/auth/token-pair.service.ts - Refresh token store
src/auth/typeorm-refresh-token.store.ts
Ride operations
- Ride API
src/entities/ride/ride.controller.ts - Ride service
src/entities/ride/ride.service.ts - Location API
src/entities/location/location.controller.ts - Location service
src/entities/location/location.service.ts
Accounts and fleet
- Rider API
src/entities/rider/rider.controller.ts - Rider service
src/entities/rider/rider.service.ts - Driver API
src/entities/driver/driver.controller.ts - Driver service
src/entities/driver/driver.service.ts - Vehicle service
src/entities/vehicle/vehicle.service.ts - Rating service
src/entities/rating/rating.service.ts
Admin and public content
- Admin API
src/entities/admin/admin.controller.ts - Admin service
src/entities/admin/admin.service.ts - FAQ API
src/entities/faq/faq.controller.ts - FAQ service
src/entities/faq/faq.service.ts - Testimonial API
src/entities/testimonial/testimonial.controller.ts - Testimonial service
src/entities/testimonial/testimonial.service.ts
Shared services
- Profile pictures
src/entities/common/profile-picture/profile-picture.service.ts - Object storage
src/entities/common/storage/neon-storage.service.ts
Other components
- Rider
- Driver
- Admin
- PostgreSQL
- Neon object storage
- Route provider
- Geocoding provider
Connections 34
- Rider → Auth API: register or sign in
- Auth API → Auth service: handles auth
- Auth service → Token pairs: issues or rotates
- Token pairs → Refresh token store: stores tokens
- Refresh token store → PostgreSQL: reads and writes
- Auth service → Rider service: manages rider profile
- Auth service → Driver service: applies driver role
- Auth service → Admin service: registers admin
- Rider → Ride API: estimates and books
- Driver → Ride API: accepts and progresses
- Ride API → Ride service: dispatches ride actions
- Ride service → PostgreSQL: persists ride state
- Ride service → Route provider: requests route estimate
- Driver → Location API: sends GPS updates
- Location API → Location service: dispatches location actions
- Location service → PostgreSQL: stores driver locations
- Location service → Geocoding provider: searches places
- Admin → Rider API: manages riders
- Rider → Rider API: manages own profile
- Rider API → Rider service: dispatches profile actions
- Admin → Driver API: manages drivers
- Driver → Driver API: manages own profile
- Driver API → Driver service: dispatches driver actions
- Driver API → Vehicle service: creates vehicle
- Driver API → Rating service: retrieves ratings
- Admin → Admin API: manages admins and announcements
- Admin API → Admin service: dispatches admin actions
- Rider → FAQ API: views FAQs
- FAQ API → FAQ service: dispatches content actions
- Rider → Testimonial API: views testimonials
- Testimonial API → Testimonial service: dispatches content actions
- Admin API → Profile pictures: uploads profile image
- Profile pictures → Object storage: stores image
- Object storage → Neon object storage: uploads or deletes objects