# FairRelay — Complete Setup Guide ## Quick Start (30 seconds) ```bash # Clone git clone https://github.com/MUTHUKUMARAN-K-1/FairRelay.git cd FairRelay # Start Brain (AI Engine) cd brain pip install -r requirements.txt uvicorn app.main:app --reload --port 8000 # → http://localhost:8000/docs (Swagger UI) # Start Backend (API Gateway) — new terminal cd ops/backend-dm npm install echo "BRAIN_URL=http://localhost:8000" > .env node index.js # → http://localhost:3000/health # Start Dashboard — new terminal cd ops/AIsupplychain/aisupply npm install echo "VITE_API_URL=http://localhost:3000" > .env npm run dev # → http://localhost:5173 ``` Open http://localhost:5173 → Navigate to **Fair Dispatch** → Click **Run Fair Allocation** --- ## Architecture ``` ┌─────────────────────────────────────────┐ │ Dashboard (React + Vite) :5173 │ │ Pages: FairDispatch, LoadConsolidation │ └────────────────┬────────────────────────┘ │ axios → /api/* ┌────────────────▼────────────────────────┐ │ API Gateway (Node.js + Express) :3000 │ │ Auth, CRUD, Proxy to Brain │ └────────────────┬────────────────────────┘ │ axios → BRAIN_URL ┌────────────────▼────────────────────────┐ │ AI Brain (FastAPI + LangGraph) :8000 │ │ 8 Dispatch Agents + 5 Consolidation │ │ OR-Tools, scikit-learn, XGBoost │ └────────────────┬────────────────────────┘ │ ┌────────────────▼────────────────────────┐ │ Database: SQLite (auto) or PostgreSQL │ └─────────────────────────────────────────┘ ``` --- ## Environment Variables ### Brain (`brain/.env`) ```env # Required: NONE (SQLite auto-created) # Optional: DATABASE_URL=postgresql+asyncpg://user:pass@host:5432/fairrelay GOOGLE_API_KEY=your-gemini-key # For LLM explanations GEMINI_MODEL=gemini-2.5-flash # Model to use OLA_MAPS_API_KEY=your-ola-key # For real-time traffic LANGCHAIN_API_KEY=your-langsmith-key # For tracing (optional) APP_ENV=development # Shows /docs + /redoc ``` ### Backend (`ops/backend-dm/.env`) ```env BRAIN_URL=http://localhost:8000 # Required DATABASE_URL=postgresql://... # For auth/drivers/packages JWT_SECRET=your-secret # For auth tokens PORT=3000 ``` ### Dashboard (`ops/AIsupplychain/aisupply/.env`) ```env VITE_API_URL=http://localhost:3000 # Points to API Gateway ``` --- ## What Each Agent Does ### Fair Dispatch Pipeline (8 Agents) | # | Agent | Algorithm | What it computes | |---|-------|-----------|-----------------| | 1 | ML Effort | Deterministic formula + traffic | N×M effort matrix | | 2 | Route Planner | OR-Tools SCIP/GLOP solver | Optimal 1-to-1 assignment | | 3 | Fairness Manager | Gini coefficient | ACCEPT or REOPTIMIZE | | 4 | Route Planner v2 | OR-Tools + penalties | Re-optimized assignment | | 5 | Driver Liaison | Comfort band logic | Per-driver ACCEPT/COUNTER | | 6 | Final Resolution | Metric-validated swaps | Resolve counter-proposals | | 7 | Explainability | Template categorization | Natural language per driver | | 8 | Gemini LLM | Gemini 2.5 Flash (optional) | Rich multilingual explanations | ### Load Consolidation Pipeline (5 Agents) | # | Agent | Algorithm | What it computes | |---|-------|-----------|-----------------| | 1 | Geo Clustering | KMeans + Silhouette | Group nearby shipments | | 2 | Time Window | Overlap filter | Split incompatible schedules | | 3 | Capacity | OR-Tools CP-SAT | Bin-pack into trucks | | 4 | Scoring | Multi-metric | Confidence per group | | 5 | RL Insights | Q-Learning | Optimal parameters | --- ## API Endpoints ### Core Allocation ```bash # Full LangGraph pipeline (8 agents) POST /api/v1/allocate/langgraph # Simple allocation (no LangGraph) POST /api/v1/allocate # Load consolidation (5 agents) POST /api/v1/consolidate/optimize # Compare scenarios POST /api/v1/consolidate/simulate ``` ### Monitoring ```bash # Health check GET /health # SSE agent events (real-time) GET /agent-events/stream?run_id= # Run history GET /api/v1/runs GET /api/v1/runs/ ``` ### Driver Management ```bash GET /api/v1/drivers GET /api/v1/drivers/ POST /api/v1/feedback ``` --- ## Testing ```bash cd brain # Run all tests pytest tests/ -v # Run specific test pytest tests/test_langgraph_workflow.py -v # Test full workflow manually python test_workflow.py ``` --- ## Deployment See [DEPLOYMENT.md](./DEPLOYMENT.md) for full production deployment guide with: - Render (Brain + Backend) - Vercel (Dashboard + Landing) - LoRRI integration patterns --- ## Tech Stack | Component | Technology | |-----------|-----------| | AI Engine | Python 3.11, FastAPI, LangGraph, SQLAlchemy | | Optimization | OR-Tools (SCIP, CP-SAT), scikit-learn, XGBoost | | Traffic | OLA Maps API (real-time Indian traffic) | | LLM | Gemini 2.5 Flash (multilingual explanations) | | API Gateway | Node.js, Express, Prisma, Socket.IO | | Dashboard | React 19, Vite, TailwindCSS, Axios | | Mobile | Flutter (driver app) | | Database | PostgreSQL (prod) / SQLite (dev/demo) | | Deployment | Render (Docker) + Vercel (static) | --- ## Key Differentiators 1. **Gini Coefficient Fairness** — mathematically provable workload equity (0.85 → 0.12) 2. **EV-First Routing** — battery feasibility + charging penalty in OR-Tools cost matrix 3. **Night Safety** — gender-aware routing after 9 PM (avoid high-crime zones) 4. **Cognitive Load Index** — 6-factor driver mental fatigue scoring 5. **Explainable AI** — every allocation decision has a natural language explanation 6. **Real-Time Traffic** — OLA Maps API integration for Indian road conditions 7. **Self-Improving** — Q-Learning bandit auto-tunes fairness thresholds daily 8. **Production TMS Integration** — designed for LoRRI (logisticsnow.in) embedding