The backend runs on port 3001 and serves the REST API routes prefixed with /api. All routes except /api/auth/login require an Authorization: Bearer <JWT_TOKEN> header.
- Route:
POST /api/auth/login - Body:
{ "email": "admin@transitops.com", "password": "admin123" } - Response:
{ "token": "jwt...", "user": { "email": "...", "role": "Fleet Manager" } }
- Route:
GET /api/vehicles - Query Params (Optional):
status,type - Response: List of all vehicles.
- Route:
POST /api/vehicles - Body:
{ "regNumber": "VAN-99", "name": "Tata Ace", "type": "Van", "maxCapacity": 500, "acquisitionCost": 800000, "odometer": 1200 }
- Route:
GET /api/drivers - Response: List of driver objects.
- Route:
POST /api/drivers - Body:
{ "name": "Alex Sharma", "licenseNumber": "DL-...", "licenseCategory": "B", "licenseExpiry": "2027-03-15", "contactNumber": "+91 ...", "safetyScore": 92 }
- Route:
GET /api/trips - Query Params:
status,vehicleId,driverId,search(searches source, destination, tripCode)
- Route:
POST /api/trips - Body:
{ "source": "A", "destination": "B", "vehicleId": 1, "driverId": 2, "cargoWeight": 300, "cargoDescription": "Apples", "plannedDistance": 100, "revenueAmount": 15000 } - Response: Created trip object.
- Route:
POST /api/trips/:id/dispatch - Response: Updated trip with
Dispatchedstatus.
- Route:
POST /api/trips/:id/complete - Body:
{ "finalOdometer": 15200, "fuelLiters": 35, "fuelCost": 3300, "toll": 250, "otherExpense": 120 } - Response: Completed trip with related fuel logs and expense records created.
- Route:
GET /api/maintenance
- Route:
POST /api/maintenance - Body:
{ "vehicleId": 1, "serviceType": "Oil Change", "description": "10k km service", "cost": 4500, "date": "2026-07-12" } - Response: Created record. Vehicle becomes
InShop.
- Route:
GET /api/analytics/kpis - Response:
{ "activeVehicles": 5, "availableVehicles": 8, "vehiclesInMaintenance": 2, "activeTrips": 3, "pendingTrips": 1, "driversOnDuty": 3, "fleetUtilization": 37.5 }
- Route:
GET /api/analytics/report - Response: Chart revenue array, vehicle ROI data array, average fuel efficiency.
- Route:
GET /api/analytics/export - Response: CSV stream download.