Project system

Proximity booking platform

GarriWash

2025

00 / Project overview

What it is

A location-aware car-wash booking product that routes each request to nearby, available washers and keeps the request moving when someone declines.

Problem it solves

A customer can lose time searching for an available washer, while a declined request can leave the booking stalled. GarriWash solves this by matching each request by proximity and availability, then passing it to the next suitable washer when necessary.

01 / Challenge

The constraint that shaped the build.

A booking could not simply enter a queue. The system needed to find washers inside a ten-kilometre radius, rank them by distance and availability, then cascade the same request without creating conflicting assignments.

02 / Approach

Make the rules visible.

I treated routing as a stateful backend workflow rather than a collection of frontend conditions. Location, availability, response status and timeout behavior were modeled explicitly so every transition had one source of truth.

Core product flow
01

Radius-based washer discovery

02

Nearest-available request escalation

03

Cascading reassignment after rejection

04

JWT-protected customer and washer flows

Technical composition
01Flutter02Symfony03API Platform04PostgreSQL05JWT06Docker

03 / Solution

The finished system.

Full-stack developerJuly–October 2025

The Flutter client handles booking and response flows while a Symfony and API Platform backend owns matching, authentication and request state. PostgreSQL stores the operational data and Docker keeps the development environment repeatable.

Outcome

The finished system supports the complete request journey from location-aware discovery through acceptance, rejection and reassignment.