Booking Dịch vụ Kỹ thuật Tận nơi
On-site Tech Service Booking
App đặt thợ điện/lạnh/internet — chia ca, định tuyến theo geo, đánh giá 2 chiều.
Bài toán
Trung tâm dịch vụ kỹ thuật vùng có 45 thợ chia 3 chuyên môn (điện, lạnh, internet). Trước dùng Google Sheet + Zalo: dispatch chậm, thợ đi đường vòng, KH chờ lâu. Cần app dispatch tự động theo skill + geo + tải hiện tại.
Kiến trúc
Next.js 14 PWA (offline order draft) → Go backend (Gin) + Postgres + PostGIS → dispatch engine: scoring matrix (skill × distance × current_load × rating) → WebSocket push tới app thợ → VietQR cuối phiên. Real-time map cho operator.
Stack & lý do
- PWA thay vì native: 90% lưu lượng từ phone, install rate PWA đủ tốt cho tier dịch vụ.
- Go + PostGIS: dispatch query <80ms cho 45 thợ trong bán kính 20km.
- Scoring matrix thay vì pure greedy: cân bằng tải, tránh "thợ giỏi luôn quá tải".
Kết quả
| Metric | Trước | Sau |
|---|---|---|
| Thời gian dispatch | 15 phút | 2 phút |
| Avg distance/đơn | 12.4 km | 7.8 km |
| Đánh giá 5 sao | 71% | 88% |
| Số đơn / thợ / ngày | 4.2 | 6.8 |
Bài học
Dispatch không nên 100% auto — operator cần override cho case đặc biệt (KH VIP, sửa máy hiếm). Scoring transparent (hiển thị lý do chọn thợ X) giúp operator tin tưởng hệ thống hơn.