Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 43 additions & 34 deletions backend/main.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,43 @@
from fleet_management.monitoring import authenticate_trip, end_trip
from fleet_management.trip_request import create_trip_request, recommend_vehicle
from fleet_management.allocation import admin_approve_trip, fleet_manager_confirm_trip
from datetime import datetime

def cli_demo():

# Step 1: Create trip
trip = create_trip_request(
user_id="U001",
pickup="Maseru Central",
destination="Thaba-Tseka",
trip_date=datetime(2026, 1, 15, 9, 0),
purpose="Official Meeting"
)
recommend_vehicle(trip)

# Step 2: Admin approval
admin_approve_trip(trip.request_id, approve=True)

# Step 3: Fleet manager allocation
allocation_info = fleet_manager_confirm_trip(trip.request_id, fleet_manager_id="F001")

# Step 4: Trip authentication & start
print("\nAuthenticating and starting trip...")
employee_pin = allocation_info['security_pin']
driver_input_pin = allocation_info['security_pin']
print(authenticate_trip(trip.request_id, employee_pin, driver_input_pin))

# Step 5: End trip
print(end_trip(trip.request_id))

if __name__ == "__main__":
cli_demo()
"""
main.py
-------
FastAPI application entrypoint for the GovRide Fleet Management Service.

Run with:
cd backend/services
uvicorn fleet_management.main:app --reload --port 8000

API docs available at:
http://localhost:8000/docs (Swagger UI)
http://localhost:8000/redoc (ReDoc)
"""

from fastapi import FastAPI
from fleet_management.api.fleet_management_api import router

app = FastAPI(
title="GovRide Fleet Management API",
description=(
"Autonomous government fleet management system for Lesotho. "
"Handles trip requests, allocation, lifecycle, disruptions, "
"maintenance, standby providers and priority scoring."
),
version="1.0.0",
)

app.include_router(router)


@app.get("/", tags=["Health"])
def root():
return {
"service": "GovRide Fleet Management API",
"version": "1.0.0",
"status": "running",
"docs": "/docs",
}


@app.get("/health", tags=["Health"])
def health_check():
return {"status": "healthy"}
4 changes: 4 additions & 0 deletions backend/pyrightconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"pythonVersion": "3.11",
"extraPaths": ["./services"]
}
3 changes: 3 additions & 0 deletions backend/pytest.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[pytest]
testpaths = tests
pythonpath = services
2 changes: 2 additions & 0 deletions backend/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ uvicorn
pydantic
pytest
qrcode[pil]
pulp
httpx
122 changes: 0 additions & 122 deletions backend/services/fleet_management/allocation.py

This file was deleted.

Empty file.
Loading