Kurulum gerektirmeyen (build adımı yok) statik web uygulaması.
- Personel girişi ve rol bazlı ekran yetkisi
resepsiyon: Check-in, Checkout, Raporlarservis: POS, Raporlaradmin: Tüm ekranlar
- Check-in: misafir + oda ile konaklama açma
- POS: outlet seç, adisyon oluştur, odaya yaz veya yürüyen müşteri
- Fiş yazdırma:
window.print()thermal fiş şablonu - Checkout: folio toplamı, çoklu ödeme tipi, konaklama kapatma
- Günlük rapor: satış, tahsilat, outlet dağılımı, ödeme dağılımı, oda harcaması, açık alacaklar
Supabase SQL Editor'a sql/schema.sql içeriğini yapıştırıp çalıştır.
Bu SQL dosyası demo kullanıcıları da oluşturur:
- kullanıcı:
resepsiyonpin:1234 - kullanıcı:
servispin:1234 - kullanıcı:
adminpin:1234
static/config.js dosyası Supabase URL ve anon key içermelidir.
cd /Users/omerkunul/github_code/restaurant-pos-system/static
python3 -m http.server 8085 --bind 0.0.0.0Tarayıcıdan aç:
http://localhost:8085- aynı ağdan test için:
http://<sunucu_ip>:8085
Not: Eğer 8085 doluysa farklı port kullanın (ör. 8092).
Bu script:
- 15 demo misafir + konaklama
- örnek sipariş/ödeme hareketleri
- web API'lerinden gerçek yemek/içecek görselleri ile menü
cd /Users/omerkunul/github_code/restaurant-pos-system
DATABASE_URL='postgresql://USER:PASS@HOST:PORT/DB' python3 scripts/seed_demo_data.pyYeni login ve checkout UX bu arayuzde:
cd /Users/omerkunul/github_code/restaurant-pos-system/webapp
npm install
npm run dev -- --host 0.0.0.0 --port 5174Tarayici:
http://localhost:5174
Bu arayuzde ek ozellikler:
- Oda degistirme kisayollari (onceki/sonraki oda)
- Hizli tahsilat (kalan bakiyeyi tek tikla alma)
- Klavye-only checkout kisayollari (Ctrl+K, Alt+Oklar, Ctrl+Enter vb.)
- Odeme iptal/duzeltme ve
payment_audit_logsuzerinden audit takibi - Modern menu yonetim paneli (ekle/duzenle/aktif-pasif + gorsel URL)
Uretim build:
npm run build- Bu MVP'de vergi hesabı yoktur.
- Ödeme yöntemleri:
nakit,kart,havale,diger. - Sessiz/raw thermal print istenirse sonraki fazda
QZ TrayveyaPrintNodeeklenebilir. sql/schema.sqliçindeki RLS policy'ler demo amaçlı açık bırakılmıştır. Canlıda mutlaka sıkılaştırın.