Contents

Key takeaways

  • A platform connecting the owner of a stolen vehicle with the citizen who spots it, with a €7 reward per confirmed match.
  • Automatic plate matching both ways, whatever the order of the reports.
  • Instant alerts by push notification, email and in-app notification.
  • Stripe or PayPal payment on Android, in-app purchase planned for iOS.
  • Website, Android app, iOS app in progress and back office designed and built by one person.

When a vehicle is stolen, the owner files a police report, then waits. Sur4Plots starts from a simple idea: thousands of people see licence plates every day. If one of them spots a reported vehicle, the owner should know right away. I designed and built the platform end to end: the website, the Android app, the iOS app currently in development and the admin back office.

The idea: two audiences, one plate

Sur4Plots brings together two kinds of users who do not know each other:

  • The owner of a stolen vehicle, who registers the plate after filing a police report.
  • The citizen who spots a vehicle and reports it with its plate, address and photos.

The core of the product is the meeting of these two reports. When a plate reported stolen matches a plate reported as spotted, it is a match. The owner is alerted and can access the vehicle's last known location, and the person who spotted it is rewarded: €7 per confirmed match, as stated in the app.

The platform targets a community in more than 170 countries. The app's guided report offers 179 countries, a list built into the code with search by name.

Sur4Plots website home page: find or report a vehicle
The sur4plots.com website: find or report a vehicle

The journey in the app

Reporting a stolen vehicle

  1. Pick the country of registration from the list, with instant search.
  2. Pick the vehicle type: car, motorbike, truck, motorhome, boat, bicycle, farm or construction machine, and other categories managed from the admin.
  3. Enter the plate and the insurer, then publish.

On publishing, the app already checks whether someone has reported this plate. If so, the match is immediate and the owner is alerted straight away.

Reporting a spotted vehicle

The citizen enters the plate, the address is filled in from their GPS position (or by hand), and they add photos taken with the camera or picked from the gallery. A map shows the spot. If the plate matches an ongoing search, the owner instantly receives a push notification, an email and an in-app notification.

Following your cases

The "My cases" tab lists wanted vehicles with their status. For a found vehicle, the sheet shows the photos, and the exact location is unlocked by a payment whose amount depends on the vehicle type.

Country of registration picker with 179 countriesForm to report a spotted vehicle with plate, address and mapList of wanted vehicles with their status
Guided report, reporting a spotted vehicle and following your cases

Features

  • Stolen vehicle report in three steps: country, vehicle type, plate and insurer.
  • Spotted vehicle report with geolocation, reverse geocoded address and Google Maps map.
  • Several photos per report, compressed on the phone before upload.
  • Automatic plate matching both ways: a sighting finds a search, and a search finds an existing sighting.
  • Push notifications, emails and an in-app notification centre with an "unread" badge.
  • Vehicle location unlocked after payment, then opened in Maps or copied.
  • Card payment (Stripe) or PayPal on Android; in-app purchase planned for iOS.
  • Identity check: front and back of the ID, face photo and profile picture.
  • IBAN entry to receive the reward.
  • French and English interface, language choice from the welcome screen.
  • Mandatory email confirmation, account blocked if the admin deactivates it.
  • Dedicated screen when the phone loses its connection.
  • User reviews and bug reports from the profile.
Notification centre with match, reward paid and payment confirmedFound vehicle sheet with photo and paid locationApp home with the main actions
Match notifications, found vehicle sheet and home screen

Technical challenges

Matching two reports that can arrive in any order

The theft can be reported before the vehicle is spotted, or after. The easy option would be to search in one direction only. I handled both. A citizen's sighting that finds no search is kept as a pending lead. If the owner later registers the same plate, the app finds that lead and creates the match on the spot.

To make the comparison reliable, every plate is normalised before it is saved or searched: spaces and stray characters removed, upper case. "AB-123-CD" and "ab 123 cd" really are the same vehicle.

Alerting the right person, through several channels

A match is only worth something if it is seen quickly. For every event, the app sends a push notification through Expo's service, a transactional email through SendGrid, and stores an in-app notification, in French and English. Admins also get an alert for every new search, every match and every payment. Each phone's push token is refreshed when the app opens.

Payment suited to each platform

Unlocking a vehicle's location is a digital service. On Android, the user pays by card through Stripe: the server creates the payment intent and the app confirms it with the Stripe SDK. PayPal opens in an embedded web view, and the app detects the return URL to validate the payment. For iOS, whose app is in development, the code already uses in-app purchase, with one product per vehicle type, as Apple's rules require for this kind of content.

Heavy photos on weak networks

A sighting is often made in the street, on 4G. Photos are therefore resized and compressed on the phone before upload, then stored in Firebase Storage. The app also watches the network state and shows a clear screen when the connection drops, instead of an endless spinner.

Trust

A platform that pays out money attracts abuse. The email must be confirmed before using the app. The identity check asks for both sides of an ID document and a face photo. From the admin, an account can be deactivated at any time: the app detects it and blocks access.

The admin back office

I also built the team's tool, a React web app connected to the same database as the app:

  • dashboard with active and verified users;
  • user management: detailed profile, IBAN, activation or blocking, ID document approval;
  • lists of wanted vehicles, found vehicles and matches, with the details of each payment;
  • manual creation of a search;
  • vehicle categories with their image and price;
  • editing of in-app texts ("How it works", legal notice, terms of sale) without a new release;
  • review moderation and tracking of reported bugs;
  • push notifications to selected users, with a message preview.

Tech stack

  • Mobile app: React Native with Expo, NativeWind, React Navigation, i18next, react-native-maps.
  • Data and accounts: Firebase Authentication, Cloud Firestore and Firebase Storage.
  • Payments: Stripe, PayPal, and in-app purchase via RevenueCat for iOS.
  • Notifications: Expo Notifications for push, SendGrid for emails.
  • Admin: React, Material UI and Tailwind CSS.
  • Website: sur4plots.com, search by plate, guided report and dashboard.

What this project shows

Sur4Plots means thinking about two users at once, a data flow that can arrive in any order, money moving in both directions and different store rules on Android and iOS. All of it was designed and delivered by one person: the product, the app, payments, notifications and the admin tool. The Android app is available on Google Play; the iOS version is in development.

Do you have a community platform project, with matching, payments and notifications? Get in touch to talk about it. You can also see all the screenshots of the project.

Frequently asked questions

Can you build a matching app with automatic pairing?

Yes. Sur4Plots automatically compares reported and spotted plates, in both directions, and alerts the people involved as soon as there is a match.

Is the app available on iPhone?

Not yet. The Android app is published on Google Play and the iOS version is in development, with in-app purchase already planned in the code.

Can the platform be managed without touching the code?

Yes. The back office lets the team manage users, approve ID documents, track matches and payments, edit categories, prices and in-app texts, and send push notifications.