Inspiration

If you drive in Malaysia, you know the drill: you finish your meal at the kopitiam, walk to your car, and find a Myvi double-parked perfectly across your bumper. You spot a crumpled piece of paper on the dashboard with a hastily scribbled phone number. Now you have a choice: stand in the hot sun and furiously honk your horn, or manually type out the number and have an awkward, potentially aggressive phone call with a stranger.

We wanted to solve this uniquely Malaysian pain point for the Sustainable Urban Living track. The goal was to build a tool that de-escalates road rage, requires zero app downloads for the offending driver, and uses AI to handle the confrontation for you.

What it does

Double-Parking Diplomat is a Progressive Web App (PWA) that acts as your personal, aggressively polite negotiator.

Scan: You open the web app and point your camera at the phone number on the blocking car's dashboard.

Analyze: Gemini's multimodal vision extracts the handwritten number, ignoring windshield glare and dashboard clutter.

Negotiate: Our backend triggers the Twilio API to call the driver automatically. An AI voice speaks in perfect Manglish: "Hello boss, sorry ah to disturb. Your car is blocking the way. Can you please come down and shift it a bit?"

How we built it

We architected the project to be as frictionless as possible, focusing on a web-first approach:

Frontend: Built with Next.js and Tailwind CSS, configured as a PWA so users can access the camera instantly via a URL without navigating an app store.

AI Brain: We used the @google/genai SDK. By passing the camera frame to the Gemini 2.5 Flash model, we utilized its superior OCR capabilities. We applied strict System Instructions to give the AI its Malaysian persona and used Function Calling (Structured Outputs) to guarantee the model only returned a clean, dialable string.

Communication Bridge: The extracted number is sent to a secure Next.js API route integrating the twilio Node.js SDK to initiate the TwiML voice call.

Deployment: Containerized via Docker and deployed on Google Cloud Run for scalable, zero-downtime hosting.

Challenges we ran into

Windshield Glare & Bad Handwriting: Traditional OCR libraries failed completely when trying to read faded ink through a reflective windshield. We solved this by switching to Gemini's native multimodal capabilities. By prompting it with contextual awareness ("Look for a phone number on a car dashboard"), the LLM reasoned through the visual noise that confused standard OCR.

The "Two-Sided App" Trap: Initially, we thought about building a chat interface. But if the double-parker doesn't have the app installed, the system fails. We overcame this by using Twilio as a bridge to the traditional cellular network, ensuring 100% compatibility with any driver who owns a phone.

Accomplishments that we're proud of

Successfully chaining a vision model directly into a real-world telecommunications API.

Achieving a sub-3-second latency from the moment the user taps "Scan" to the moment the driver's phone starts ringing.

Nailing the "Manglish" prompt engineering so the AI sounds polite, localized, and disarming rather than robotic.

What we learned

Agentic Workflows: We learned how to move beyond basic text prompts and use Gemini as a decision-making agent that triggers external functions.

Cloud Run Deployment: Packaging a Next.js app with server-side API routes into a lightweight Docker container for Google Cloud proved incredibly efficient.

What's next for double parking diplomat

PWA .

WhatsApp Integration: Replacing the voice call with an automated WhatsApp message containing a photo of the blocked car.

License Plate Recognition (LPR): Adding a feature to scan the license plate and log repeat offenders in a community database.

Local SME Partnerships: Partnering with highly congested business areas (like Bangsar or SS2) to place QR codes on parking pillars for instant access to the web app.

Built With

  • geminilive
  • next.js
Share this project:

Updates