Bir oyun ve internet kafesi için baştan sona geliştirdiğim web sitesi. Müşteriler gerçek doluluk bilgisiyle koltuk seçerek rezervasyon yapıyor, masaya sipariş veriyor, turnuvalara kaydoluyor; işletme ise tüm içeriği ve gelen talepleri kendi yönetim panelinden yönetiyor.
- 18
- sayfa
- 31
- API uç noktası
- 2
- ayrı oturum sistemi
Müşteri tarafı
Sitenin amacı ziyaretçiyi hızlıca rezervasyona ya da siparişe götürmek.
- Bölge → tarih/saat → koltuk haritası → iletişim akışıyla rezervasyon; takımlar için aynı anda 5 PC'ye kadar seçim
- Koltuk haritası seçilen tarih ve saatteki gerçek dolulukla çiziliyor, fiyat sunucuda hesaplanıyor
- Fiyat hesaplayıcı, kampanyalar, geri sayımlı turnuva kartları ve kontenjanlı kayıt formu
- Kategori ve arama destekli menü, masaya sipariş sepeti
- Çalışma saatlerine göre canlı "Açık / Kapalı" durumu
- İsteğe bağlı üyelik: rezervasyon, sipariş ve turnuva geçmişi, 1 saat öncesine kadar iptal, şifre sıfırlama
Yönetim paneli
İşletme sahibi kod bilmeden sitenin tamamını yönetebiliyor.
- Rezervasyon, sipariş, iletişim mesajı ve turnuva kayıtları için tek gelen kutusu; arama, filtre, durum güncelleme ve 20 saniyede bir otomatik yenileme
- Şemadan otomatik form üreten içerik düzenleyici: duyuru şeridi, saatler, fiyatlar, oyunlar, SSS, menü ve daha fazlası
- Kaydedilen içerik sitede anında yayına giriyor, her bölüm tek tıkla varsayılana döndürülebiliyor
- Üye yönetimi: kayıtlı müşteriler ve sipariş/rezervasyon sayıları
Teknik öne çıkanlar
Veritabanı yerine atomik yazan bir JSON deposu kullandım; küçük bir işletme için kurulumu ve yedeklemesi çok kolay.
- İstemci ve sunucunun ortak kullandığı zod şemaları: içerik, kayıt türleri ve fiyat hesabı tek yerde tanımlı
- scrypt ile şifreler, HMAC imzalı httpOnly + SameSite=Strict oturum çerezleri; admin ve üye oturumları tamamen ayrı
- Hatalı girişlerde IP bazlı geçici engelleme, şifre değişince diğer oturumların düşmesi
- Şifre sıfırlama belirteci sunucuda yalnızca SHA-256 özeti olarak saklanıyor, hesap varlığı sızdırılmıyor
- Docker + Caddy ile otomatik HTTPS ya da PM2 + Nginx ile iki farklı kurulum yolu, yedekleme betikleri
