NIPSMAP — Never Ride Unaccounted For
Inspiration
Before entering an unfamiliar taxi or bus, a commuter makes a decision with very little information: What do I know about this vehicle, and who will know where I am if something goes wrong?
In Nigeria, that question is personal. While building NIPSMAP, I spoke with people I know who have experienced frightening situations on public transport. Those conversations shaped the project around a practical need: help people check before boarding and stay connected to someone they trust throughout the journey.
NIPSMAP brings vehicle checks, community reports, journey sharing, and emergency alerts into one mobile app.
What it does
NIPSMAP supports three moments in a journey:
Before boarding: Enter a vehicle’s plate number to check available vehicle records and community incident reports. Results distinguish available information from missing records. An unknown result is not treated as proof that a vehicle is safe.
During the ride: Start a trip and share a tracking link with someone you trust. They can view the journey in a browser without installing NIPSMAP.
When help is needed: A deliberate hold-to-activate SOS lets the rider initiate an alert to their emergency contacts with location information. Delivery depends on connectivity and notification availability.
Commuters can also report incidents, create Family Circles, and use an AI assistant for plain-language safety guidance.
The goal is practical accountability: more information before a ride and better visibility during it.
How I built it
I built the mobile app with Flutter and Dart for Android and iOS. A Laravel backend manages vehicle checks, incident reports, trips, Family Circles, and subscription access, with PostgreSQL and Redis supporting data storage and background work.
Slow vehicle lookups required special attention. Instead of holding the app on a blocking request, I moved lookup processing into background jobs so the app can check for the result while remaining responsive.
RevenueCat manages in-app subscriptions, with webhook updates synchronizing subscription access to the backend. Free allowances let commuters try the app, while paid plans support higher usage and shared family allowances.
OneSignal supports notification delivery around the journey experience. The purpose is useful communication tied to a rider’s activity, rather than unrelated promotional messages.
Challenges I faced
Getting through app review. Seven Google Play rejections made release readiness a substantial part of the project. Permission flows, reviewer access, source attribution, and government-data disclaimers needed the same care as the main features.
Working with slow external services. Vehicle lookups could take around 30 seconds. That forced me to design for waiting, retries, and clear progress instead of assuming every request would finish immediately.
Keeping subscription access consistent. The purchase flow had to work across the app, RevenueCat, and the backend. Webhook authentication and entitlement synchronization were important parts of making that reliable.
Communicating uncertainty honestly. Missing records must not become a reassuring verdict. Likewise, an action queued while offline must not look like an alert that has already been delivered.
What I learned
A safety product needs clear boundaries as much as useful features. Finding a vehicle record does not guarantee a safe journey, and initiating an alert does not guarantee that help has arrived.
I also learned that affordability and infrastructure costs have to be designed together. Usage allowances and pooled family plans help balance access with the recurring cost of verification and other services.
Most importantly, the commuter experience has to remain understandable when the network is slow or information is incomplete.
Accomplishments I’m proud of
I launched NIPSMAP on Google Play and the Apple App Store, bringing vehicle checks, journey sharing, Family Circles, and emergency alerts together in one cross-platform app.
I also completed a successful ₦1,000 production purchase through RevenueCat, with webhook delivery and backend entitlement updates connecting payment to premium access.
The part I’m proudest of is connecting riders with the people who care about them. A shared journey link makes NIPSMAP useful beyond the person who installed it.
What’s next
My next priority is onboarding early users and learning from real journeys: where people hesitate, which information helps them decide, and whether their contacts can follow a trip easily.
Future work includes broader family use cases, fleet and transport-union pilots, and exploring SMS or USSD access for people with limited mobile data.
NIPSMAP starts with a simple belief: you should not have to ride unaccounted for.
Built With
- cloudflare
- dart
- dojah
- flutter
- gemini
- inertia
- laravel
- laravel-cloud
- maplibre
- onesignal
- pgvector
- php
- postgis
- postgresql
- prembly
- react
- resend
- revenuecat
- tailwindcss
- termii
- vertex-ai
Log in or sign up for Devpost to join the conversation.