EFEST / ZABEFEST Hackathon 2026 — Theme: "Fix Karachi" A civic issue reporting, verification, and resolution platform for Karachi.
KarachiPulse lets citizens report urban problems (potholes, garbage, broken streetlights, sewerage leaks, unsafe zones, water shortages, load shedding) and send emergency SOS alerts — while authorities triage, assign, and resolve them through a live console with smart prioritization, a heatmap, and analytics.
┌─────────────────┐ ┌──────────────────────┐ ┌─────────────────────┐
│ Citizen app │ │ Supabase │ │ Admin console │
│ (Expo / RN) │─────▶│ Postgres + PostGIS │◀────▶│ (React + Vite) │
│ report · SOS │ │ Auth · Storage │ │ queue · heatmap │
│ verify · map │ │ Realtime · EdgeFn │ │ analytics · SOS │
│ offline · i18n │ │ severity scoring │ │ public dashboard │
└─────────────────┘ └──────────────────────┘ └─────────────────────┘
| # | Deliverable | Where it's covered |
|---|---|---|
| 1 | A working prototype | Two live apps — the admin console (deployed on Firebase Hosting) and the Expo citizen app. See Quick start. |
| 2 | Problem validation and research | Problem validation & research |
| 3 | Identification of target users | Target users |
| 4 | Technical architecture/design | Architecture diagram above + Tech |
| 5 | Sustainability or operational model | Sustainability / operational model |
| 6 | Demo/use-case scenario | Demo Scenario |
| 7 | Future scalability plan | Future scalability plan |
- Citizen issue reporting — category/sub-type, photo, GPS, anonymous option
- Geo-tagging / location intelligence — auto GPS, PostGIS dedup, map views
- Smart prioritization — automated severity scoring (1–10) + rule-based fallback
- Real-time notifications/alerts — Supabase Realtime to admin queue + SOS panel
- Public transparency dashboard — read-only, no login
- Crowdsourced verification — community confirms; auto-verify at 3 confirmations
- Emergency escalation (SOS) — one-tap, severity 10, live alert + sound on admin
- Offline-first — AsyncStorage queue, auto-sync on reconnect
- Urdu / English support — in-app toggle, RTL
- Authority/admin workflow — status lifecycle, audit trail, role-gated
Plus data analytics / heatmap visualization on the admin side.
mobile/— Expo React Native citizen appadmin/— React + Vite authority consolesupabase/— schema, RLS, seed, and the severity scoring Edge Function
- Backend — follow
supabase/README.md: create the project, runmigrations/001_initial_schema.sql, create thereport-photosbucket, runseed.sql, deployscore-report, and add an admin user. - Admin —
cd admin cp .env.example .env # fill in VITE_SUPABASE_URL / VITE_SUPABASE_ANON_KEY npm run dev
- Mobile —
cd mobile cp .env.example .env # fill in EXPO_PUBLIC_SUPABASE_URL / EXPO_PUBLIC_SUPABASE_ANON_KEY npx expo start # open in Expo Go
| Constraint | Approach |
|---|---|
| Low-end Android | Expo Go compatible; map via lightweight Leaflet WebView (no native maps build); compressed photos (quality 0.5) |
| Poor/unstable internet | Offline queue + auto-sync; async severity scoring never blocks the UI |
| Scalability | Supabase (managed Postgres) + auto-scaling Edge Functions; indexed queries |
| Data authenticity | GPS-stamped reports, photo evidence, crowdsourced verification threshold |
| Privacy & security | Row Level Security on every table; anonymous auth (no PII required); optional phone trust-boost |
| Spam/fake prevention | Per-device rate limit (5/hr), 100 m/1 h geo-dedup, verification threshold, admin reject |
- The problem. Karachi (~20M residents) generates a constant stream of civic issues — potholes, uncollected garbage, broken streetlights, sewerage leaks, water shortages, load shedding, and personal-safety incidents — but there is no single, low-friction way for citizens to report them or track resolution.
- Why existing channels fall short. Complaints are scattered across separate agencies (KMC, KWSB, K-Electric, SSWMB, Police), each with its own phone line, form, or helpline. There is little feedback to the citizen, no public record of what was reported, and no shared priority signal for responders.
- What we heard / observed. Citizens want reporting that is fast, anonymous, and works on cheap Android phones with poor connectivity; authorities want a de-duplicated, prioritized, verifiable queue instead of noisy duplicate calls.
- How KarachiPulse responds. One app to report (with photo + GPS), automatic severity scoring and geo-dedup so the queue stays clean, crowdsourced verification for authenticity, a one-tap SOS for emergencies, and a public transparency dashboard for accountability — mapping directly to the constraints in the table above.
- Citizens of Karachi — fast, low-friction reporting (anonymous, offline, Urdu).
- City authorities (KMC, KWSB, K-Electric, Police, Rangers, PDMA, SSWMB) — a prioritized, real-time work queue with audit trail.
- The public & press — the transparency dashboard for accountability.
- Phase 1 (prototype): single city, free-tier Supabase, manual assignment.
- Phase 2 (pilot): KMC partnership; route reports to departmental email/WhatsApp; ward-level routing; government grant funding.
- Phase 3 (scale): multi-city (Lahore, Islamabad); municipal SaaS subscription; anonymized civic-data API licensed to urban-planning researchers.
- Push notifications (FCM) for assignment + status updates.
- Department SSO and per-department dashboards.
- Severity model fine-tuned on resolved-report outcomes.
- Read replicas + materialized heatmap tiles for very large datasets.
- Citizen reports a pothole with photo — GPS auto-fills.
- Toggle airplane mode, submit again → "saved offline"; reconnect → auto-syncs.
- Switch to Urdu.
- Tap SOS → appears instantly on the admin SOS panel with a sound + map link.
- Admin queue is sorted by SOS → severity; show the scoring reason on a card.
- Change a status (verified → in progress) — persisted + audit-logged.
- Open heatmap (density across Karachi) and analytics (category/status charts).
- Open the public dashboard — works with no login.
React Native (Expo SDK 56) · React 19 + Vite · Supabase (Postgres + PostGIS, Auth, Storage, Realtime, Edge Functions / Deno) · Leaflet · Recharts.