How ahvaan-india/ahvaan works
Ahvaan is a ward-level urban heat resilience and municipal decision-support platform. Operators explore citywide heat exposure, inspect ward telemetry and forecasts, compare index accuracy, and dispatch heat advisories; a stateless assistant answers questions using ward context. The sampled routes establish the risk, board, forecast, analysis, accuracy, and chat service flows. Several UI and subsystem links are based on the README and route structure; unsampled implementations are represented only where their paths are supported.
Main entry points: queries.ts Database queries · maps/page.tsx Ward heat map · route.ts Forecast API · alerts/page.tsx Alert center
Components 30
Operator Experience
- Ward heat map
app/maps/page.tsx - Kolkata map
components/map/KolkataMap.tsx - Ward analysis
app/analysis/page.tsx - Metro overview
app/overview/page.tsx - Alert center
app/alerts/page.tsx - AI assistant
components/ChatbotWidget.tsx
Application Services
- Heat map API
app/api/wards/heatmap/route.ts - Ward catalogue API
app/api/wards/route.ts - Telemetry API
app/api/wards/[wardId]/telemetry/route.ts - City summary API
app/api/wards/summary/route.ts - Risk API
app/api/risk/route.ts - Forecast API
app/api/forecast/[locationId]/route.ts - Analysis API
app/api/analysis/route.ts - Accuracy API
app/api/accuracy/route.ts - Chat API
app/api/chat/route.ts - Email dispatch API
app/api/email/send/route.ts
Heat Risk Science
- City board
lib/board.ts - HeatShield engine
lib/heatshield/service.ts - Forecast model
lib/heatshield/forecast.ts - Analysis summaries
lib/analysis.ts - Index comparison
lib/accuracy.ts - Alert evaluation
lib/alerts.ts - Ward chat context
lib/chatbot/context.ts
Data and Integrations
- Cloudflare AI
lib/chatbot/cloudflare.ts - Email sender
lib/email/send.ts - Database queries
lib/db/queries.ts - Postgres
- Redis cache
lib/redis.ts - Reference weather APIs
Other components
- Municipal operator
Connections 41
- Municipal operator → Ward heat map: opens map
- Municipal operator → Ward analysis: selects ward
- Municipal operator → Metro overview: checks city
- Municipal operator → Alert center: reviews alerts
- Ward heat map → Kolkata map: renders wards
- Ward heat map → Heat map API: loads heat map
- Ward heat map → Ward catalogue API: loads catalogue
- Ward heat map → Telemetry API: loads telemetry
- Metro overview → City summary API: loads KPIs
- Ward analysis → Analysis API: loads analysis
- Ward analysis → Forecast API: loads forecast
- Alert center → Risk API: reads risk
- Alert center → Alert evaluation: evaluates triggers
- Alert center → Email dispatch API: dispatches advisory
- AI assistant → Chat API: sends question
- Heat map API → City board: requests board
- City summary API → City board: requests board
- City board → Database queries: reads weather and census
- City board → HeatShield engine: computes ward risk
- Heat map API → Database queries: loads ward geometry
- Heat map API → Redis cache: caches payload
- City summary API → Redis cache: caches summary
- Ward catalogue API → Database queries: loads wards
- Telemetry API → Database queries: reads ward data
- Telemetry API → HeatShield engine: computes risk
- Risk API → Database queries: reads inputs
- Risk API → HeatShield engine: builds risk response
- Forecast API → Database queries: reads inputs
- Forecast API → Forecast model: computes outlook
- Forecast API → Analysis summaries: summarizes analysis
- Forecast API → Redis cache: caches response
- Analysis API → Database queries: reads analysis rows
- Analysis API → Analysis summaries: summarizes days
- Accuracy API → Index comparison: compares indices
- Index comparison → Reference weather APIs: requests benchmarks
- Chat API → Ward chat context: builds ward context
- Chat API → Cloudflare AI: sends prompt
- Ward chat context → Database queries: reads telemetry
- Email dispatch API → Email sender: sends email
- Database queries → Postgres: reads records
- Redis cache → Postgres: falls back to queries