
Private client · Field Service
AYCO — Maintenance Reports
Technicians scan a device serial, auto-fill its registry data, capture technician and client signatures, and issue a numbered Arabic (RTL) PDF report generated on-device, archived to Cloud Storage and reopened from a printed QR code. Built solo end-to-end: Flutter and Provider on the client, Firebase on the back end, offline-first writes, transactional report numbering, batch mode for up to 100 devices per visit, and role-based administration enforced server-side.
- Made every write offline-safe by racing Firestore writes against a timeout and surfacing the result as queued rather than failed, so technicians can complete visits without connectivity.
- Batched up to 100 devices per visit in resumable 25-report transaction chunks to stay within the Firestore transaction limit, with report numbering issued transactionally.
- Enforced a three-role permission model — super admin, admin, technician — server-side in Cloud Functions and security rules, and shipped two build flavours bound to separate development and production Firebase projects.
- Localised Arabic-first with full RTL: 906 strings across ar/en ARB files, with the layout, PDF and printed forms designed right-to-left.
- Flutter
- Provider
- Cloud Firestore
- Cloud Functions
- Cloud Storage
- RTL / Arabic
Solo build — 227 Dart files, 109 test files, 5 Cloud Functions
Private client · no public listing











