NIRAPOD
Crowdsourced incident reports that turn into real-time risk zones and location-based safety alerts.
People have no reliable, real-time picture of what is happening on the streets around them. Crime and hazard information is scattered across word of mouth, Facebook groups and news that arrives hours late, and none of it is tied to a map or to the user's actual location. Residents, commuters and visitors end up walking into areas that neighbours already know are unsafe, while unverified rumours spread with no way to confirm, moderate or contextualise them.
Nirapod is a Flutter + Firebase mobile platform where citizens report incidents in seconds — category, description, photo and GPS location, with an anonymous option. Every report is geohashed, pre-screened by serverless moderation, and aggregated by Cloud Functions into risk zones on a live OpenStreetMap view. Users nearby are pushed an instant alert through geohash-based FCM topics, and get a foreground warning when they enter a red zone. A community verification loop (confirm/flag votes plus a per-user trust score) separates credible reports from noise, a community wall keeps neighbourhood discussion in one place, and an admin dashboard gives moderators a queue, user management, area broadcasts and event publishing.
Outcome
Delivered as a production application on Firebase (Blaze) with all four MVP phases plus post-MVP work complete: 30+ screens, 7 Firestore collections with rule-level security, 11 Cloud Functions and a Flutter Web admin console. The app ships on Android and iOS (v1.2.2), with Email, Google and Apple sign-in, account deletion with full server-side data cleanup, and a decay job that keeps risk data current instead of letting stale incidents accumulate. Geohash prefix queries and topic-based fan-out keep "nearby" lookups and alert delivery to a fixed cost per user rather than scanning the whole dataset.
Key features
- Real-time incident reporting with category, photo, GPS location and an anonymous option
- Automatic risk-zone (red zone) generation from clustered reports, weighted by incident severity
- Location-based push alerts delivered via geohash FCM topics to users in the affected area
- Red-zone proximity warning when a user moves within ~500 m of a high-risk area
- Live OpenStreetMap view with viewport-driven loading of nearby reports and zones
- Nearby feed with radius-based geospatial queries powered by geohashing
- Community verification: confirm/flag voting promotes reports to "Community Verified"
- Per-user trust score that rewards accurate reporting and penalises abuse
- Community wall with posts, comments, likes and anonymous posting
- Automated content moderation: blocked-word pre-screening plus per-user rate limiting
- Moderation queue, user management and report editing in an admin dashboard
- Admin area broadcasts and community event publishing with map-based location search
- Multi-provider authentication: Email/Password, Google Sign-In, Sign in with Apple, guest browsing
- In-app alerts centre backed by per-user notification records
- Self-service account deletion with server-side cascade cleanup of user data
- Scheduled risk-zone decay so outdated incidents fade out automatically
- Offline support through Firestore persistence and client-side image compression
- Emergency-service disclaimers and one-tap access to the local emergency number
Tech stack
Build something similar?
Tell us about your project. We'll share how we'd approach it.
Start a project