How monolithic-dev/pramaan works
Pramaan turns citizen reports into prioritized public works and closes the loop with funding, project tracking, and citizen confirmation. The documented workflow spans web and messaging intake, asynchronous AI processing and deduplication, scoring, scheme and budget decisions, and follow-up. The graph also shows the officer insights and public transparency branches. Sampled source confirms gateway registration, ingestion publishing and persistence, and worker dispatch; some feature internals are represented by their listed source paths, with uncertain call wiring omitted.
Main entry points: App.tsx Citizen and officer app · firestoreStore.ts Operational records · ingestSubmission.ts Submission ingestion · app.ts HTTP API
Components 22
Citizen channels
- Citizen and officer app
apps/web/src/App.tsx - Offline report queue
apps/web/src/hooks/useOfflineQueue.ts
API gateway
- HTTP API
apps/api-gateway/src/app.ts - Submission routes
apps/api-gateway/src/routes/submissions.ts - Channel webhooks
apps/api-gateway/src/routes/webhooks.ts - Submission ingestion
apps/api-gateway/src/services/ingestSubmission.ts - Operational records
apps/api-gateway/src/store/firestoreStore.ts - Processing queue
apps/api-gateway/src/lib/pubsub.ts
Report processing
- AI worker
apps/worker-ai-pipeline/src/app.ts - Submission processing
apps/worker-ai-pipeline/src/services/processSubmission.ts - Issue scoring
apps/worker-ai-pipeline/src/services/scoring.ts
Officer operations
- Issue workflow
apps/api-gateway/src/routes/workflow.ts - Budget planner
apps/api-gateway/src/services/planner.ts - Projects and schemes
apps/api-gateway/src/routes/projects.ts
Insights and accountability
- Insight endpoints
apps/api-gateway/src/routes/insights.ts - Forecast and equity
apps/api-gateway/src/insights/service.ts - Regional and investment data
apps/api-gateway/src/lib/bigquery.ts - Public tracking and data
apps/api-gateway/src/routes/public.ts - Citizen confirmation
apps/api-gateway/src/routes/issues.ts
Other components
- Citizen
- WhatsApp / SMS
- Public works officer
Connections 29
- Citizen → Citizen and officer app: files report
- Citizen → WhatsApp / SMS: sends report
- Citizen and officer app → Offline report queue: queues offline
- Offline report queue → Submission routes: replays report
- Citizen and officer app → HTTP API: uses API
- WhatsApp / SMS → Channel webhooks: posts message
- HTTP API → Submission routes: registers
- HTTP API → Channel webhooks: registers
- Submission routes → Submission ingestion: ingests
- Channel webhooks → Submission ingestion: shared ingestion
- Submission ingestion → Operational records: writes submission
- Submission ingestion → Processing queue: publishes event
- Processing queue → AI worker: delivers event
- AI worker → Submission processing: dispatches
- AI worker → Issue scoring: runs scoring
- Submission processing → Operational records: updates records
- Issue scoring → Operational records: reads and scores issues
- Public works officer → Citizen and officer app: uses console
- Citizen and officer app → Issue workflow: manages issues
- Citizen and officer app → Budget planner: plans budgets
- Citizen and officer app → Projects and schemes: manages projects
- Citizen and officer app → Insight endpoints: views analysis
- Insight endpoints → Forecast and equity: requests analysis
- Forecast and equity → Operational records: reads issue history
- Forecast and equity → Regional and investment data: reads investments
- Citizen and officer app → Public tracking and data: tracks and explores
- Public tracking and data → Operational records: reads report status
- Citizen → Citizen confirmation: confirms fix
- Citizen confirmation → Operational records: records feedback