← Tüm projeler

SahaDenetim

Trafo merkezi, pompa istasyonu ve ATM gibi varlıkları denetleyen saha ekipleri için bir mobil uygulama. Teknisyen bağlantı yokken formu dolduruyor, süpervizör onaylıyor ya da reddediyor; her karar geçmişe işleniyor.

Dönem
Ağustos 2026
Alan
Full-Stack & Mobil
Rol
Tek kişilik proje: tasarım, kod, test, değerlendirme
Teknoloji
React Native, Expo SDK 54, TypeScript, Redux Toolkit, Firebase Firestore, NetInfo, Jest, EAS Build, GitHub Actions
Kod
Talep üzerine paylaşılır
14test, çakışma senaryosu dahil
2rol: teknisyen, süpervizör

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ış

  1. Teknisyen yeni bir denetim açıyor: varlık kimliği, kategori, geçti / kaldı kontrol listesi, fotoğraf ve konum.
  2. Bağlantı yoksa denetim “bekliyor” durumunda kuyrukta kalıyor; bağlantı gelince kendiliğinden gönderiliyor.
  3. Süpervizör incelemedeki denetimi açıp kontrol listesine, fotoğrafa ve geçmişe bakıyor, notla birlikte onaylıyor ya da reddediyor.
  4. 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ı.