Inspiration
It was a regular Tuesday evening in downtown Charlotte, North Carolina, nothing unusual, nothing dramatic. One of us parked on a busy street, met friends for dinner, and came back about an hour later expecting the usual: unlock the car, drive home, move on.
Instead, there was just empty asphalt. The parking spot was still there, but his car wasn’t.
No note on the ground. No clear sign he could immediately understand. No obvious clue if it was towed, relocated, or stolen. And in that moment, the real problem hit harder than the missing car itself: not knowing what to do first. Who do you call? Where do you check? How do you avoid wasting time or making the wrong move when every minute matters?
That first wave of confusion is exactly what our project is built to solve.
What followed was 3 hours of pure frustration:
- Calling the non emergency police line and waiting on hold for 45 minutes
- Googling "tow companies Charlotte NC" and getting 20+ different results
- Calling tow yards one by one, getting voicemails, getting transferred, getting hung up on
- Driving to the wrong impound lot twice
- Finally finding my car across town with a $287 release fee
By the time I got my car back, it was nearly midnight. I was exhausted, angry, and out almost $300.
That night, lying in bed still frustrated, I thought: "Why is this so hard? There has to be a simpler way."
That's when TowFinder was born.
What It Does
TowFinder is a mobile app that helps people find their towed vehicles fast. It does two main things:
1. Search for Your Towed Car
Enter your license plate or VIN number, and TowFinder searches tow company records to show you exactly where your car is. You get:
- The towing company's name
- Their address
- A one-tap button to call them directly
No more guessing. No more calling 10 different lots. Just answers.
2. ParkSafe AI Powered Risk Detection
Before you even park, you can check if an area is risky. ParkSafe uses AI to analyze historical tow data for your exact location and gives you a risk score:
- 🟢 LOW - Safe to park
- 🟡 MEDIUM - Be careful, check signs
- 🟠 HIGH - Many tows here, risky area
- 🔴 EXTREME - Do not park here
It's like a weather forecast, but for getting towed.
3. For Tow Truck Drivers
We also built a driver version of the app. When a tow professional picks up a vehicle, they can log it license plate, VIN, location, photos. That record goes into our database, which means owners can find their cars faster.
Drivers help owners. Owners find their cars. Everyone wins.
How I Built It
TowFinder is a cross platform mobile app built with modern, production-ready technology:
| Layer | Technology |
| Frontend | Flutter (Dart) - One codebase for iOS & Android | | AI/ML | Google Gemini API - Powers ParkSafe risk analysis | | Database | Supabase (PostgreSQL) - Real-time vehicle records | | Maps | Google Maps API - Location services & geocoding | | State Management | Riverpod - Clean, testable architecture |
Architecture Highlights:
- Clean architecture with separate layers for data, domain, and presentation
- Provider pattern for dependency injection and state management
- Modular features Each feature (search, parking, auth, driver) is self-contained
- Responsive design Works on phones and tablets
- Offline ready Core features work without constant connectivity
Development Timeline:
- Week 1: Research, wireframes, database schema design
- Week 2: Core search functionality, Supabase integration
- Week 3: ParkSafe AI feature, Gemini API integration
- Week 4: Driver app, polish, testing, bug fixes
Challenges I Faced
1. Data is Scattered
The biggest challenge is that tow data isn't centralized. Every city, every tow company, every police department has their own system. There's no national database. Building TowFinder meant figuring out how to aggregate this fragmented data in a useful way.
Solution: We built the driver app to let tow professionals voluntarily log vehicles. Over time, this creates a crowdsourced database that grows with every logged tow.
2. Location Accuracy
For ParkSafe to work, we need accurate GPS positioning. But GPS can drift in downtown areas with tall buildings, and users on simulators/emulators have no real location at all.
Solution: We added a "Demo Location" fallback for testing, and implemented smart location caching to reduce drift errors.
3. AI Response Quality
Early versions of ParkSafe's AI analysis gave generic, unhelpful responses. Getting Gemini to provide specific, actionable advice required extensive prompt engineering.
Solution: We refined our prompts over 15+ iterations to get consistent, location-aware risk assessments with practical tips.
4. Building for Two User Types
The app serves two very different users: consumers (stressed people who just got towed) and drivers (professionals logging vehicles). Building one app that serves both well with different home screens, different flows, different needs was a UX challenge.
Solution: We created completely separate experiences with a role-based authentication system. Users choose their role at signup, and the app adapts accordingly.
What I Learned
Empathy drives good products - Understanding the stress of getting towed shaped every design decision
AI is powerful but needs guardrails - Gemini can do amazing things, but requires careful prompt design to be useful
Start with the user's pain point - Every feature we built started with "What does someone need in this moment?"
Cross-platform is the way - Flutter let us ship to iOS and Android with one codebase, saving months of work
Simple beats clever - Users don't want fancy features when they're stressed. They want answers, fast.
What's Next
If this project gets traction, here's what we're planning:
- Partnerships with tow companies for real-time data feeds
- Push notifications when your car might be at risk (street cleaning days, expired meters)
- Parking sign scanner to interpret confusing parking signs before you park
- City integrations to pull from municipal tow databases
- Premium tier with enhanced features and priority support
The Mission
Getting towed is one of those universally frustrating experiences. It's stressful, confusing, and expensive. TowFinder can't make it free, but we can make it fast.
Find your car. Get it back. Move on with your day.
That's it. Simple.
Built with ❤️ by someone who's been there.
Built With
- dart
- dio
- flutter
- fonts
- geocoding
- geolocator
- google-gemini-api
- google-maps
- google-places
- image-picker
- riverpod
- supabase
Log in or sign up for Devpost to join the conversation.