RentonSoft POS
İki kafede canlı çalışan, çok işletmeli SaaS sürümü de olan restoran adisyon sistemi.
Tek sipariş, çok el: garson, mutfak, bar ve kasa aynı canlı veriden çalışır.
Problem
Restoranda servis masalara, tezgâha, mutfağa, bara ve kasaya dağılır. Her el değiştirmede aynı sipariş durumu, net yetkiler ve asla çift tahsilat yapmayan, satır kaybetmeyen bir ödeme mantığı gerekir — tablette, yoğun saatte.
Yaklaşım
Tip güvenli bir monorepo: PostgreSQL üzerinde NestJS ve Prisma, önde React ve Vite. Rol bazlı canlı odalar her değişikliği mutfağa, bara, kasaya ve garsonlara anında iletir. Ödemeler işlem bütünlüğüyle ve tekrar güvenli çalışır: ürün bazlı ya da eşit bölme, indirim, yönetici PIN'iyle iade ve vardiya kapanışı. Marka ayarlardan gelir; aynı kod farklı kafelere hizmet eder, SaaS sürümünde her işletme kendi PostgreSQL şemasında izole durur.
Sonuç
Castor Coffee ve Sisa Atelier'de her gün kullanılıyor; SaaS olarak yeni işletmelere yedi günlük denemeyle açık. Deneme bitince hesap silinmez, salt okunur olur.
İçinde neler var
- Masa servisi, tezgâh satışı ve paket servis tek akışta
- Geciken sipariş uyarılı mutfak ve bar ekranları
- Bölünmüş ödeme, indirim, yönetici PIN'li iade ve Z raporu
- Reçeteye bağlı stok: her satış hammaddeden düşer
- İşletme başına şema, deneme süresi ve güvenli askıya alma
Teknoloji
Kaputun altı
Bu projenin kod katmanı — modüller ve hareketli parçalar.
apps/api NestJS · Prisma · PostgreSQL 16 realtime/ Socket.IO rooms → kitchen · bar · cashier · waiters · display checks/ Check → Order → OrderItem, tax-inclusive totals payments/ split · discount · refund (idempotency keys, manager PIN) stock/ recipes (BOM) → ingredients consumed per sale tenancy/ schema-per-tenant, routed through AsyncLocalStorage apps/web React · Vite · TanStack Query · Zustand deploy Docker Compose · reverse proxy · nightly backups
Hazır yazılımlar
Masa servisi, mutfak ve bar ekranları, bölünmüş ödeme ve reçeteye bağlı stok — SaaS olarak ya da kendi sunucunuzda.