Problem
Enerji, bankacılık ve ulaştırma gibi sektörlerde saha ekipleri çoğu zaman internetin olmadığı yerlerde çalışıyor. Denetim formunu ancak ofise dönünce doldurmak hem gecikmeye hem veri kaybına yol açıyor.
Akış
- Teknisyen yeni bir denetim açıyor: varlık kimliği, kategori, geçti / kaldı kontrol listesi, fotoğraf ve konum.
- Bağlantı yoksa denetim “bekliyor” durumunda kuyrukta kalıyor; bağlantı gelince kendiliğinden gönderiliyor.
- Süpervizör incelemedeki denetimi açıp kontrol listesine, fotoğrafa ve geçmişe bakıyor, notla birlikte onaylıyor ya da reddediyor.
- Her karar kimin, ne zaman, neye karar verdiğiyle birlikte geçmişe yazılıyor.
Mimari
SyncLedger’da kurduğum senkron modelini burada kurumsal bir iş akışına uyguladım: outbox kuyruğuyla gönderim, onSnapshot ile gerçek zamanlı alım, version alanıyla transaction içinde iyimser eşzamanlılık kontrolü. Böylece sahadaki iki süpervizör aynı denetime aynı anda karar verirse bu sessizce ezilmiyor, çakışma olarak ortaya çıkıyor.
Kamera ve konum için expo-image-picker ve expo-location, bağlantı durumunu gerçek zamanlı algılamak için NetInfo kullanıyorum.
Kalite ve dağıtım
TypeScript strict modda. Her push’ta GitHub Actions tip kontrolü ve testleri koşuyor. EAS Build’de geliştirme, önizleme (APK) ve yayın profilleri tanımlı.