How debadritapaul26/civic-lense works
Civic-Lense is a civic-complaint analysis and decision-support platform. Citizens submit geolocated complaints, optionally with evidence; the backend classifies and stores them, then exposes location clusters, urgency rankings, and district aggregates for dashboards. A separate policy-simulation workflow evaluates selected clusters and a budget with specialist agents before an arbiter returns recommendations. The graph reflects the documented routes and sampled calls; several route, agent, and orchestration implementations were not sampled, so uncertain internal wiring is omitted.
Main entry points: main.py FastAPI application · app Web application · api.ts Frontend API client · database.py Application database
Components 24
User experience
- Web application
civic-ai-platform/frontend/app - Frontend API client
civic-ai-platform/frontend/lib/api.ts - Complaint form
civic-ai-platform/frontend/components/ComplaintForm.tsx - Civic dashboards
civic-ai-platform/frontend/app/dashboard/page.tsx - Urgency panel
civic-ai-platform/frontend/components/UrgencyPriorityPanel.tsx - Simulation views
civic-ai-platform/frontend/app/simulations/page.tsx
Complaint intake
- FastAPI application
civic-ai-platform/backend/main.py - Complaint endpoints
civic-ai-platform/backend/routers/complaints.py - Complaint NLU
civic-ai-platform/backend/agents/nlu_agent.py - Evidence uploads
civic-ai-platform/backend/routers/complaints.py
Civic analysis
- Cluster endpoints
civic-ai-platform/backend/routers/clusters.py - Location clustering
civic-ai-platform/backend/services/location_cluster_service.py - Urgency insights
civic-ai-platform/backend/routers/insights.py - Urgency ranking
civic-ai-platform/backend/services/urgency_ranking_service.py - Aggregation endpoints
civic-ai-platform/backend/routers/aggregation.py - District aggregation
civic-ai-platform/backend/services/aggregation_service.py
Policy simulation
- Simulation endpoints
civic-ai-platform/backend/routers/simulation.py - Simulation coordinator
civic-ai-platform/backend/services/orchestrator.py - Agent runner
civic-ai-platform/backend/services/agent_runner.py - Specialist agents
civic-ai-platform/backend/agents - Arbiter agent
civic-ai-platform/backend/agents/arbiter_agent.py
Persistence
- Application database
civic-ai-platform/backend/database.py
Other components
- Citizen or analyst
- Claude API
Connections 33
- Citizen or analyst → Web application: uses
- Web application → Complaint form: presents
- Web application → Civic dashboards: presents
- Web application → Urgency panel: presents
- Web application → Simulation views: presents
- Complaint form → Frontend API client: submits
- Civic dashboards → Frontend API client: requests data
- Urgency panel → Frontend API client: requests rankings
- Simulation views → Frontend API client: runs and retrieves
- Frontend API client → FastAPI application: HTTP requests
- FastAPI application → Complaint endpoints: dispatches
- FastAPI application → Cluster endpoints: dispatches
- FastAPI application → Urgency insights: dispatches
- FastAPI application → Aggregation endpoints: dispatches
- FastAPI application → Simulation endpoints: dispatches
- Complaint endpoints → Complaint NLU: classifies text
- Complaint endpoints → Evidence uploads: saves uploads
- Complaint endpoints → Application database: reads and writes
- Evidence uploads → Application database: stores metadata
- Cluster endpoints → Location clustering: builds clusters
- Location clustering → Application database: reads complaints
- Urgency insights → Urgency ranking: ranks locations
- Urgency ranking → Location clustering: uses clusters
- Aggregation endpoints → District aggregation: computes statistics
- District aggregation → Application database: reads and writes
- Simulation endpoints → Simulation coordinator: runs simulations
- Simulation coordinator → Application database: loads inputs and saves results
- Simulation coordinator → Urgency ranking: loads urgency context
- Simulation coordinator → Agent runner: invokes agents
- Agent runner → Specialist agents: runs specialists
- Agent runner → Arbiter agent: runs arbiter
- Specialist agents → Claude API: requests analysis
- Arbiter agent → Claude API: requests decision