Talk to an Architect

Optimizing Logistics: A Fleet Maintenance System Case Study Customers & Technicians

A Flutter-built, Laravel-powered mobile platform serving the Australian hail repair market — featuring real-time technician tracking, instant quoting, Facebook Webhook lead capture, and seamless on-demand job management across Customer, Technician, and Admin portals.

IndustryAutomotive Services / On-Demand Repair
My RoleFull-Stack Developer & Architect
PlatformsiOS · Android · Web Admin
Duration10+ Months
Overview

A Platform Built to Close the Gap in Hail Repair Services

Australia's hail repair industry has long operated through fragmented phone calls, manual job dispatching, and slow quote turnarounds. Customers had no reliable way to find nearby technicians, upload damage photos, or track repair progress — and technicians had no centralised tool to manage their jobs efficiently.

We engineered a dual-app ecosystem that digitises the entire hail dent repair workflow — from first customer contact to job completion. The platform serves three distinct user groups: customers needing repairs, field technicians managing their workload, and administrators overseeing operations from a central dashboard.

A standout innovation is the Facebook Webhook integration: when a customer sends a message through the client's Facebook ad campaign and shares their zip code, our backend instantly identifies nearby available technicians and connects them — turning social media engagement directly into booked jobs.

Customer App

Photo uploads, instant quotes, real-time technician tracking, in-app chat, loyalty points wallet, and appointment booking — all in one Flutter app.

Technician App

Job assignment management, status updates, location sharing, push notifications, and in-app messaging with customers and dispatch.

Facebook Lead Engine

Webhook-driven lead capture from Facebook Ads. When prospects share their zip code via Messenger, the system auto-matches and connects them with nearby technicians.

Industry Context

Why the Hail Repair Industry Needed a Digital Solution

Australia's east coast experiences some of the world's most damaging hail events. Yet the industry's response infrastructure remains largely manual — leaving thousands of vehicle owners struggling to find qualified technicians quickly after a storm, and leaving technicians without efficient job management tools.

01

No Real-Time Discovery

Customers had no way to find and compare nearby certified technicians instantly after a hail event.

02

Manual Quote Process

Getting repair estimates required multiple phone calls, site visits, and long wait times with no standardisation.

03

Zero Job Tracking

Once a booking was made, customers had no visibility into technician location or job status in real time.

04

Inefficient Dispatch

Technicians received jobs via calls or messages with no structured system for acceptance, routing, or status updates.

05

Lost Social Media Leads

Businesses spending on Facebook Ads had no automated way to convert enquiries into booked jobs — leads fell through the cracks.

06

No Customer Retention

Without loyalty tools or communication channels, there was little incentive for customers to return to the same provider.

Challenges

What We Had to Solve

This project demanded solutions across mobile UX, real-time infrastructure, third-party integrations, and multi-role access — simultaneously.

Dual-App Architecture

Building two separate Flutter apps — Customer and Technician — with distinct UX flows, permissions, and feature sets, sharing a single Laravel backend.

Real-Time GPS Tracking

Implementing live technician location tracking visible to customers during active jobs, with minimal battery drain and accurate map rendering.

Facebook Webhook Integration

Connecting Facebook Messenger directly to the backend so that ad-generated enquiries automatically trigger technician matching based on customer zip code.

Photo-Based Quoting

Allowing customers to upload vehicle damage photos and receive instant, structured repair quotes — without requiring a physical inspection upfront.

Multi-Role Job Management

Managing job lifecycle across customers, technicians, and admins — including assignment, acceptance, status updates, and completion — without conflicts or data loss.

Push Notifications & In-App Messaging

Delivering real-time notifications for job updates and enabling two-way chat between customers and technicians within both apps reliably.

Solution Design

How We Designed the Solution

01

Role-Based App Splitting

We built the onboarding flow with an explicit role selector — Customer or Technician — routing users into entirely separate app experiences from the first screen. Both apps share one codebase foundation in Flutter but diverge completely in features, navigation, and data access.

02

Event-Driven Backend Architecture

The Laravel backend was designed around job lifecycle events — creation, dispatch, acceptance, progress updates, and completion. Each event triggers the appropriate notifications, data updates, and UI changes across all relevant user types in real time.

03

Facebook Messenger Webhook Pipeline

We set up a Laravel webhook endpoint that receives Facebook Messenger events from the client's ad campaigns. When a prospect provides their zip code, the system runs a proximity query against available technicians and initiates the connection automatically — no manual intervention required.

04

Loyalty & Engagement Layer

To drive repeat business, we built a Points Wallet system into the Customer app. Customers earn points on completed jobs and bookings, creating an incentive loop that increases retention without requiring discounts or manual promotions.

Technical Architecture

Technical Architecture Overview

Architecture Layer
Implementation Detail
Mobile (iOS & Android)
Flutter — single codebase for both Customer and Technician apps across iOS and Android
Backend / API
Laravel (PHP) — RESTful API managing all business logic, job lifecycle, and user management
Real-Time Tracking
GPS location services with live map rendering via Google Maps SDK embedded in Flutter
Push Notifications
Firebase Cloud Messaging (FCM) — job updates, status changes, and chat alerts delivered instantly
Facebook Integration
Facebook Messenger Webhook — receives ad-generated enquiries, parses zip codes, triggers technician matching
Authentication
Multi-provider auth: Email, Apple Sign-In, Facebook Login — with role-based access control
Database
MySQL — structured relational schema for users, jobs, locations, transactions, and points
Admin Panel
Web-based admin dashboard for job dispatch, technician management, and platform oversight
Deliverables

What We Delivered

Role-based onboarding with Customer / Technician selector on first launch

Points Wallet — earn and track loyalty points across all completed jobs

Vehicle damage photo upload and instant quote generation

Live GPS tracking of assigned technician on an interactive map

In-app chat between customer and technician throughout the job

Appointment scheduling for both Private and Insurance jobs

Nearby technician discovery with ratings, experience, and real-time availability

Multi-provider authentication: Email, Apple, and Facebook Sign-In

Tech Stack

How We Built It

A production-grade mobile architecture designed for real-time engagement and high-velocity lead conversion — unifying cross-platform mobile apps with a robust PHP backend.

Mobile Development

  • Flutter (Dart) for iOS & Android
  • Custom UI components & animations
  • Google Maps SDK for live tracking
  • Firebase Cloud Messaging (FCM)
  • Camera & Image Picker integration

Backend & API

  • Laravel (PHP) RESTful API
  • MySQL Relational Database
  • Facebook Messenger Webhooks
  • Proximity matching algorithms
  • Role-based access control (RBAC)

Authentication

  • Email & Password registration
  • Apple Sign-In integration
  • Facebook OAuth Login
  • JWT-based session management

Integrations

  • Facebook Graph API
  • Google Maps Platform
  • Firebase Cloud Messaging
  • Scalable Cloud Infrastructure
Outcomes

Measurable Outcomes for Every Stakeholder

Customers

Instant Quotes

Customers go from damage photo upload to receiving a repair quote in minutes — no calls, no waiting, no uncertainty.

Technicians

More Jobs, Less Admin

Technicians receive, manage, and complete jobs entirely within the app — eliminating back-and-forth coordination and maximising productive hours.

Business Owner

Zero Lost Leads

Facebook ad enquiries are automatically captured and matched to available technicians — every lead that messages on Messenger gets a response.

Platform

End-to-End Visibility

From the admin panel, every job, technician, customer, and lead is trackable in real time — enabling data-driven decisions and operational control.

Business Case

The Case for Automotive Service Businesses in Australia

Australia's hail season creates surges of demand that traditional service businesses simply cannot handle manually. Phone-based booking, paper job sheets, and word-of-mouth referrals leave money on the table and customers frustrated. Businesses that invest in a digital-first platform gain a decisive competitive advantage — the ability to scale response capacity instantly, capture every lead automatically, and deliver a customer experience that builds long-term loyalty.

A purpose-built mobile platform doesn't just improve operations — it becomes the product itself. Customers who can track their technician, chat in-app, earn loyalty points, and receive transparent quotes don't go elsewhere. Technicians who have their workday organised through an intelligent app are more productive and more satisfied.

Why Businesses Need This Platform
  • Capture Facebook ad leads automatically — no manual follow-up required
  • Dispatch technicians intelligently based on location and availability
  • Build customer loyalty through transparent pricing, real-time tracking, and rewards
  • Scale during hail season surges without increasing admin headcount
  • Own the full customer relationship through a branded app experience
  • Generate actionable data on jobs, technicians, and revenue through the admin dashboard