ZUBER
Back to Projects

AI • Civic Tech

Kumbh Plus

ReactTypeScriptFastAPIPythonPostgreSQLPWA

AI-powered offline-first reunification platform built during India's first Claude Impact Lab. System helps volunteers, police, and help desks reconnect missing pilgrims across 80M+ attendees at Kumbh Mela 2027. Matches missing and found person reports using AI-assisted semantic matching, geospatial intelligence, and facial recognition — all in an offline-first PWA.

Key Metrics

  • Devised for 80M+ attendees across 4,000+ hectares
  • Offline-first PWA for low-connectivity tent cities
  • AI semantic matching for person reunification

Architecture

User → PWA → Service Worker → IndexedDB → FastAPI Sync → PostgreSQL → Semantic Matcher

Engineering Decisions

DECISION

PWA over native mobile apps

Instant access via QR/SMS — no app store friction. 80M+ attendees can't be expected to install an app.

Alternatives: React Native — rejected for distribution friction. Flutter — same problem.

Tradeoffs: No push notifications on iOS. For this use case (data lookup), not a blocker.

DECISION

PostgreSQL over MongoDB for person data

Data integrity for person records is critical — same person should not have conflicting data across reports

Alternatives: MongoDB — rejected because schema flexibility risked data integrity for critical reunification data

Tradeoffs: Schema migrations require careful planning with Alembic. Worth it for relational integrity.

DECISION

ChromaDB for local semantic search

On-device embedding matching works without internet — critical for offline-first architecture

Alternatives: Pinecone — rejected because it requires cloud connectivity

Tradeoffs: Local vector search has recall limits vs cloud-based. Acceptable for the use case.

Engineering Challenges

PROBLEM· High difficulty

Name matching across Indian languages and scripts

Multilingual embeddings (e5-small) with cross-encoder re-ranking — 92% top-5 recall on Hindi names

Rule-based name matching fails for Indian languages. Embedding-based semantic matching is the minimum viable approach.

PROBLEM· High difficulty

Offline-first data sync with conflict resolution

Last-write-wins with timestamp vectors and manual merge UI for critical conflicts

CRDTs would be ideal but add complexity. For this use case, LWW + human review is the pragmatic choice.

PROBLEM· Medium difficulty

Facial recognition on low-end Android devices

Server-side face encoding, client-side capture only — encoding happens when sync connects

Offloading compute to the server when connected preserves battery and performance on low-end devices

Testing

Unit: pytest for FastAPI sync endpoints and semantic matching accuracy. Integration: offline sync protocol tested with simulated network conditions (Chrome DevTools throttling). PWA: Lighthouse PWA audit passed.

Deployment

PWA served via static hosting (Netlify/Vercel). FastAPI backend on VPS with Docker Compose. PostgreSQL on cloud RDS. Service Workers for offline-first with background sync.

Monitoring

No production monitoring — event-specific platform (Kumbh Mela 2027). Would add Web Vitals tracking and error logging for launch. Sync conflict rate would be a key operational metric during the event.

Future Redesign

Build the sync status indicator first (green/amber/red for connectivity status). In pilots, volunteers don't know if their report is submitted or pending sync, causing duplicate submissions.