How nahiyanasir/vehicle-rental-system works
This is an Express/PostgreSQL vehicle-rental API. Customers register or log in, browse vehicles, create bookings, and view or cancel their bookings; administrators manage vehicles, users, bookings, and roles. Controllers coordinate domain services, which query PostgreSQL; booking services also calculate rental totals and update vehicle availability. Route wiring and the database-pool implementation were not sampled, so those internal links are omitted where their ownership cannot be verified.
Main entry points: server.ts Express server · Db.ts Database pool · authService.ts Auth service · bookingController.ts Booking controller
Components 22
API entry
- Express server
src/server.ts - Configuration
src/config/index.ts - Database pool
src/config/Db.ts - PostgreSQL
Identity and users
- Auth routes
src/modules/auth/authRoute.ts - Auth controller
src/modules/auth/authController.ts - Auth service
src/modules/auth/authService.ts - Role auth
src/middleware/auth.ts - User routes
src/modules/user/userRoute.ts - User controller
src/modules/user/userController.ts - User service
src/modules/user/userService.ts - bcryptjs
- JWT
Fleet management
- Vehicle routes
src/modules/Vehicle/vehicleRoute.ts - Vehicle controller
src/modules/Vehicle/vehicleController.ts - Vehicle service
src/modules/Vehicle/vehicleService.ts
Rental management
- Booking routes
src/modules/Bookings/bookingRoute.ts - Booking controller
src/modules/Bookings/bookingController.ts - Booking service
src/modules/Bookings/bookingService.ts - Admin booking service
src/Admin/adminService.ts
Other components
- Customer
- Administrator
Connections 21
- Customer → Express server: sends requests
- Administrator → Express server: sends requests
- Express server → Configuration: loads settings
- Express server → Auth routes: mounts API
- Express server → User routes: mounts API
- Express server → Vehicle routes: mounts API
- Express server → Booking routes: mounts API
- Auth controller → Auth service: calls
- Auth service → bcryptjs: hashes passwords
- Auth service → JWT: signs tokens
- Role auth → JWT: verifies tokens
- User controller → User service: calls
- Vehicle controller → Vehicle service: calls
- Booking controller → Booking service: calls
- Booking controller → Admin booking service: loads admin bookings
- Auth service → Database pool: queries users
- User service → Database pool: queries users
- Vehicle service → Database pool: queries vehicles
- Booking service → Database pool: queries bookings, vehicles
- Admin booking service → Database pool: queries bookings
- Database pool → PostgreSQL: connects