Müşteri Sipariş Takip
Atölye için sipariş, üretim ve tahsilat takibi. Windows masaüstü, internet gerekmiyor.
Bu nasıl ölçüldü: 725 test çalıştırıldı ve doğrulandı. Üretimde kullanımda.
- CLIENT
- Flutter desktopWindows
- STATE
- sipariş durumukısmi tahsilat
- lisansoffline doğrulama
- STORE
- yerel veritabanı
- OUTPUT
- fiş
- rapor
Problem
Atölye sahibi siparişin hangi aşamada olduğunu ve kimin ne kadar borcu kaldığını defterden takip ediyordu. Kalem çoktu, üretim aşamaları müşteriye göre değişiyordu. Kısmi tahsilat yaygındı; bir siparişe üç ayrı ödeme yapılabiliyordu.
Kısıt şu: atölyede sürekli internet yok, kullanıcı da bilgisayarla pek haşır neşir değil. Bulut çözüm burada yürümez.
Kısıtlar
- İnternet sürekli yok; çevrimdışı çalışma birinci sınıf gereksinim.
- Kullanıcı teknik değil; kurulum ve yedekleme çözümün parçası olmalı.
- Üretim aşamaları işletmeden işletmeye değişiyor; koda gömülemez.
Mimari kararlar
Çevrimdışı önce, bulut yok
Tüm veri yerel SQLite'ta. Ağ gerekmiyor, gizlilik derdi yok, açılış hızlı.
Bedeli: Çok bilgisayarlı kullanım yok. Bilinçli tercih.
Üretim aşamaları kullanıcı tanımlı
Aşamalar koda gömülmedi; kalem bazında tanımlanıyor ve sıralı ilerliyor. Atölye kendi sürecini kuruyor, yazılım ona uyuyor.
Bedeli: Aşama geçişlerinde doğrulama yükü uygulamaya biniyor.
Kısmi tahsilat birinci sınıf
Ödeme siparişe değil tahsilata bağlı; bakiye türetilmiş değer. Siparişe tek bir "ödendi" alanı koymak kolay. Üç parçalı tahsilatta o alan yalan söylüyor.
Bedeli: Her bakiye sorgusu toplama işi; karşılığında rapor hiçbir zaman yanlış değil.
Lisans çevrimdışı doğrulanıyor
Sunucunun özel anahtarıyla imzalanmış token, uygulamaya gömülü açık anahtarla yerelde doğrulanıyor. İnternet yokken de lisans geçerli; aktivasyon için tek bağlantı yetiyor.
Bedeli: Anahtar dağıtımı ve sürüm yönetimi dikkat istiyor.
Kanıt
- Test725 (çalıştırılarak doğrulandı)
- Dart dosyası145
- DurumÜretimde kullanımda, v3.13.0
- PlatformWindows 10/11 x64, Flutter masaüstü
Bilinen sınırlar
- Tek bilgisayar; eşzamanlı çok kullanıcı yok.
- Bulut yedekleme yok; yedek yerel dosya.
- Kaynak kodu özel repoda.
Ne öğrendim
"Ödendi mi?" sorusunun cevabı bir alan değil, bir ilişki. Alanı koyunca hızlı gidiyorsun. Üç parçalı tahsilatın ilk gününde o alan sana yalan söylüyor. Veri modelini ekrandan önce düşünmek, sonradan migration yazmaktan ucuz.