Skip to content

Repository files navigation

Adil Paylaş

CI

English summary

Canlı demo: https://cantsdlnn.github.io/adil-paylas/

Ortak harcamaları kuruşu kuruşuna bölen, borçları mümkün olan en az sayıda transferle kapatmayı amaçlayan, çevrimdışı çalışabilen bir web uygulaması.

Uygulama hesap veya sunucu gerektirmez. Kişiler ve harcamalar yalnızca kullanılan tarayıcının yerel depolama alanında tutulur.

Adil Paylaş ana ekranı

Neden bu proje?

Bir hesabı kişi sayısına bölmek kolay görünür; ancak kuruş artıkları, bazı harcamalara herkesin katılmaması ve birden fazla ödeyen olduğunda sonuç hızla karışır. Adil Paylaş bu kuralları arayüz kodundan ayırır ve otomatik testlerle doğrular.

Özellikler

  • Kişi ve harcama yönetimi
  • Her harcama için ayrı ödeyen ve paylaşan grubu
  • Tüm para işlemlerinde tam sayı kuruş kullanımı
  • Kuruş artıklarının deterministik dağıtılması
  • Küçük gruplarda geriye izlemeli en az transfer araması
  • Otomatik yerel kayıt
  • Doğrulanan JSON yedeği alma ve geri yükleme
  • PWA önbelleğiyle kurulum sonrası çevrimdışı kullanım
  • Klavye odağı, canlı durum mesajları ve hareket azaltma tercihi desteği
  • Açık ve koyu yüzeylerde yüksek okunabilirlik hedefleyen responsive arayüz

Hızlı başlangıç

Gereksinim: Node.js 22 veya daha yeni bir LTS sürümü.

npm ci
npm run dev

Terminalde gösterilen yerel adresi tarayıcıda açın.

Test ve derleme

npm test
npm run build

Testler; tutar ayrıştırma sınırlarını, kuruş koruma değişmezini, transferlerle bakiyelerin kapanmasını ve içe aktarılan verideki referans bütünlüğünü kapsar. CI aynı iki komutu temiz bir ortamda çalıştırır.

Hesaplama yaklaşımı

  1. Girilen TL tutarı bir kez kuruşa çevrilir; hesaplama boyunca ondalıklı sayı kullanılmaz.
  2. Bir harcamanın taban payı tam sayı bölmeyle bulunur.
  3. Artan kuruşlar seçili kişiler arasında kayıt sırasına göre birer birer dağıtılır.
  4. Net bakiyeler çıkarıldıktan sonra borçlu-alacaklı eşleşmeleri geriye izlemeyle aranır.
  5. Bulunan geçerli planlardan transfer sayısı en düşük olan gösterilir.

Arama üstel karmaşıklığa sahip olabileceği için arayüz en fazla 12 kişi önerir. Uygulama büyük organizasyon muhasebesi için değil, küçük sosyal gruplar için tasarlanmıştır.

Veri ve gizlilik

  • Veri bir sunucuya gönderilmez.
  • Yerel depolama şifreli değildir; ortak kullanılan cihazlarda hassas isimler yazılmamalıdır.
  • JSON dışa aktarma dosyası kullanıcı tarafından güvenli bir yerde tutulmalıdır.
  • “Tümünü sil” işlemi uygulamanın yerel anahtarını kaldırır.

Bu uygulama finansal hizmet veya resmî muhasebe aracı değildir.

Proje belgeleri

Bilinen sınırlar

  • Tarayıcı verileri temizlenirse, daha önce dışa aktarılmış yedek yoksa kayıtlar geri getirilemez.
  • Çevrimdışı önbellek ilk başarılı üretim ziyareti sonrasında hazır olur.
  • En az transfer araması küçük gruplara yöneliktir; çok büyük gruplarda işlem süresi artabilir.
  • Çoklu cihaz eşitlemesi ve kullanıcı hesabı yoktur.

Lisans

MIT

About

Yerel-öncelikli ortak harcama bölüşümü: tam sayı kuruş, en az transfer, çevrimdışı PWA.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages