On-site Tech Service Booking
Booking Dịch vụ Kỹ thuật Tận nơi
Booking app for electricians, refrigeration & internet techs — shifts, geo-routing, two-way reviews.
Problem
A regional tech-service center has 45 techs across 3 skill sets (electrical, refrigeration, internet). They ran on Google Sheets + Zalo: slow dispatch, techs took winding routes, customers waited. They needed auto-dispatch by skill + geo + current load.
Architecture
Next.js 14 PWA (offline order draft) → Go backend (Gin) + Postgres + PostGIS → dispatch engine: scoring matrix (skill × distance × current_load × rating) → WebSocket push to tech app → end-of-job VietQR. Real-time operator map.
Stack & rationale
- PWA over native: 90% traffic is mobile, install rates are fine for this tier.
- Go + PostGIS: dispatch query <80 ms for 45 techs in a 20 km radius.
- Scoring matrix over pure greedy: balances load, avoids "best tech is always overloaded".
Results
| Metric | Before | After |
|---|---|---|
| Dispatch time | 15 min | 2 min |
| Avg distance / order | 12.4 km | 7.8 km |
| 5-star ratings | 71% | 88% |
| Orders / tech / day | 4.2 | 6.8 |
Lessons
Dispatch shouldn't be 100% automatic — operators need an override for edge cases (VIP, rare-machine repair). Transparent scoring (showing why tech X was picked) builds operator trust.