GPT-4o Vision inspection platform. Mobile-first PWA. 3 weeks.
Canada's private vehicle market (Kijiji, Facebook Marketplace, AutoTrader private listings) processes billions in transactions per year with almost no trust infrastructure. Sellers can't credibly prove condition. Buyers can't verify without hiring a mechanic or paying $40–$80 for a Carfax report that covers title history only — not actual physical condition.
TrustDrive is architecturally the simplest of our five projects, but the AI integration is the most technically novel. The core flow: seller uploads photos → GPT-4o Vision analyzes each → analysis aggregates into a report → report generates a QR code → seller pays to publish the report → public QR URL serves the report to buyers.
We built it as a mobile-first PWA. No native app — the entire inspection is done in Safari or Chrome on a phone, which can access the camera directly. This avoided the App Store review delay and let us ship faster. The trade-off is no push notifications, but sellers don't need them — they complete the inspection once and share the report.
The InspectionPhoto entity is the core of the platform. Each photo gets its own AI assessment record — zone, AI assessment text, specific flags detected, and a confidence score. This granularity lets the Report aggregate individual photo assessments into an overall condition summary and lets buyers drill into specific zones. We stored the AI output as structured JSON in the ai_flags array rather than raw text, which made report rendering much cleaner.
GPT-4o Vision is the only AI model used in TrustDrive. Each uploaded photo goes to a backend function that passes the image URL and zone context to GPT-4o Vision via Base44's InvokeLLM with a structured JSON response schema.
The prompt is zone-specific. For a tire photo, the prompt asks GPT-4o Vision to assess tread depth (estimate percentage remaining), look for uneven wear patterns that indicate alignment issues, check for sidewall damage, and flag anything unusual. For an engine bay photo, it checks for fluid leaks (identify the likely fluid), aftermarket wiring, signs of overheating, missing components, and rust. The response schema returns: condition (good/fair/poor/unknown), flags (array of specific concerns), confidence (0–1), and summary (plain English sentence).
One key implementation detail: photos are uploaded to Base44 storage first, and the storage URL is passed to GPT-4o Vision rather than sending the raw file. This keeps the backend function stateless and avoids base64 encoding large images in the request payload.
TrustDrive uses Stripe Checkout for a simple one-time payment per published report. The pricing model was a deliberate choice — subscriptions would have deterred private sellers doing a one-time vehicle sale. Pay-per-report ($19.99 CAD) keeps the barrier low.
The flow: seller completes inspection → clicks 'Generate Report' → Stripe Checkout session created with inspection_id as metadata → on checkout.session.completed webhook, Report entity is created with published = true → unique public URL slug generated → QR code generated → confirmation email sent with the QR code image and the public URL. The public report page (/report/:slug) requires no login — any buyer can view it by scanning the QR code.
Private sellers take photos in poor lighting, at odd angles, with dirty lenses. GPT-4o Vision handles this better than expected but returns 'confidence: low' on the worst photos. We added a photo quality check — if GPT-4o Vision returns confidence under 0.3, we prompt the seller to retake that photo before finalizing. This significantly improved report quality.
iOS Safari and Android Chrome handle file inputs and camera access differently. We used an input[type=file][accept='image/*'][capture='environment'] approach that opens the camera on mobile and the file picker on desktop. Testing across iPhone Safari, Android Chrome, and desktop browsers took more time than expected.
A seller could theoretically complete an inspection with good photos, generate a report, then swap photos to look better for buyers. We prevent this by: (1) locking the Inspection entity after report generation (status = locked), (2) storing the report generation timestamp and comparing it to photo upload timestamps, and (3) including individual photo analysis in the public report so buyers can see the AI assessment of each specific photo.
The full case study covers results, metrics, and what the client said.
Free 30-minute call with Ryan. Fixed quote before we hang up.
$100/hr CAD all-inclusive. 2–6 week delivery on Base44.
Book Free Discovery Call