← All projects
Frostline - HVAC Field Service App
FlutterField ServiceScheduling
Overview
Frostline is a two-sided field-service app for heating and cooling businesses. Homeowners raise a service request and follow their technician in real time; the office and the crew get one shared board — today’s jobs, the inbox, the schedule and the paperwork. The demo business used throughout is Birchline Heating.
For the customer
- Raise a request in a few taps — no heat, no cooling, a strange noise or just a tune-up, with a note, a photo of the unit and a gas-safety prompt
- Live technician tracking — an ETA, a map from the shop to the home and a plain-language job timeline (received → assigned → on the way → heat restored)
- Equipment record per home — install year, warranty, service history and health, with automatic tune-up reminders
- Approve quotes — itemised supply/labour with tax, plus an optional yearly tune-up plan and a direct line to the technician
For the owner and crew
- Today — jobs, new requests, money to collect and a live view of who is on the way, on site or free
- Inbox — request detail with the customer’s equipment history and one-tap assignment to the nearest technician who has the parts
- Schedule — the day by time slot, with an unassigned request pinned to the top
- On site — a job checklist, before/after photos and a running time-on-site clock
- Job done — time on site, parts and labour rolled into an itemised total and an invoice ready to send
Design
A navy and safety-orange palette with big, calm type and card-based layouts. Every screen leads with a single filled action, and status is always carried by both a colour and a word, never colour alone.
Tech stack
- Flutter — one codebase covering both the customer and the technician experiences
- Field service domain model — customers, equipment, requests, jobs, quotes and invoices
- Scheduling — time-slot day view with technician assignment and live status
- Invoicing — itemised parts and labour with tax and scheduled reminders
📸 Screenshots
Tap a screenshot to open the slider