Ürün
Ürün Tanımı
RABBIT ne yapıyor?
RABBIT, restoranların dağınık menü bilgisini denetlenebilir ve yayınlanabilir bir yapıya dönüştüren menü uyum platformudur. Ürün adı, reçete, porsiyon, besin değeri, alerjen, fiyat ve görsel gibi bilgiler tek çalışma akışında toplanır. Sistem öneri ve hesapları hazırlar; işletme yetkilisi kritik bilgileri gözden geçirip onaylar. Onaylı sonuç girişsiz QR menüye ve versiyonlu PDF'e dönüşür.
Çözdüğü ana problem yalnızca “dijital menü yapmak” değildir. Restoranın mutfak bilgisi, sunum içeriği, fiyat geçmişi ve yayın çıktısı çoğu zaman farklı dosyalarda veya kişilerin bilgisinde kalır. Bu kopukluk; güncelliği, sorumluluğu ve değişikliklerin izlenebilirliğini zorlaştırır. RABBIT bu bilgileri aynı ürün kaydı etrafında birleştirir ve yayından önce eksikleri görünür hâle getirir.
Kimler kullanıyor?
Restoran sahibi
İşletmeyi, şubeleri ve ekibi yönetir; ürün yayınını ve resmî kayıt doğuran fiyat değişikliklerini onaylar.
Şube yöneticisi
Yetkili olduğu şubedeki ürünleri ve menüyü yönetir; kapsamı dışındaki şube verilerine erişemez.
Şef
Reçete, porsiyon, besin hesabı ve alerjen doğrulaması gibi mutfak bilgisini gerektiren adımları yürütür.
Menü editörü
Ürün sunumunu, kategori ve sayfa düzenini, görselleri ve PDF çıktısını hazırlar; fiyat onayı veremez.
Bakanlık ve platform rolleri
Fiyat vakalarını veya alerjen iddialarını atanmış kapsamlarına göre görür; rolüne bağlı olarak inceler, not ekler ya da karar verir.
Tüketici
Hesap açmadan, yalnız yayınlanmış sürümden üretilen QR menüyü görüntüler. Yönetim verilerine erişmez.
Güncel kullanıcı akışı
Hesap ve işletme kurulumu
İşletme sahibi e-posta ve şifreyle hesap açar; restoran ve ilk şubeyi kurar. Sonradan ekip daveti, şube ekleme, bildirim tercihi ve isteğe bağlı iki adımlı doğrulama kullanılabilir.
Menü veya ürün girişi
Ürünler tek tek eklenebilir, CSV dosyasından alınabilir ya da en çok sekiz JPEG, PNG veya WebP menü fotoğrafındaki yazılı ürün adı, fiyat, kategori ve açıklama bilgileri çıkarılabilir. Fotoğraftan reçete, alerjen veya besin bilgisi üretilmez.
Sekiz adımlı ürün editörü
Genel, Reçete, Notlar, Besin Değeri, Alerjen, Fiyat, Görsel ve Yayın sekmeleri ürünü sırayla tamamlatır. Sekme durumları eksik, onay bekleyen ve tamamlanan adımları görünür kılar.
Reçete ve besin hazırlığı
Ürün adına veya bilinen şablona göre reçete taslağı önerilir; kullanıcı malzemeyi ve porsiyonu düzeltip onaylar. Besin değeri, kayıtlı 100 gram değerleri ile gerçek gramajların deterministik çarpımından hesaplanır.
Alerjen ve hassas alan kontrolü
Bilinen malzeme eşlemeleri ile yapay zekâ adayları temkinli biçimde birleştirilir. Alkol, pişirmede alkol, domuz, jelatin ve hazır sos riskleri ayrıca cevaplanır; sonuç işletme tarafından onaylanmadan yayın kapısı açılmaz.
Fiyat ve yayın onayı
Fiyat değişikliği önce taslak olur; dört açık onay ve sabit resmî bildirim uyarısından sonra değiştirilemez olaya dönüşür. Ürün ise dokuz koşullu yayın kontrolünü ve iki yayın onay kutusunu geçince yayınlanır.
QR menü, PDF ve inceleme
Yayınlanan sürüm, girişsiz QR menünün veri kaynağı olur. Aynı sürümden şablonlu PDF hazırlanabilir. Fiyat hareketi dokuz kuralla değerlendirilir; işaretlenen kayıtlar dahili Bakanlık inceleme yüzeyine düşer.
Girdiler, işlemler ve çıktılar
Girdiler
Sisteme ne girer?
- İşletme, şube ve ekip bilgileri
- Ürün adı, açıklama, kategori ve fiyat
- Menü fotoğrafları veya CSV satırları
- Reçete malzemeleri, miktarlar ve porsiyon
- Alerjen, alkol/domuz ve beslenme türü beyanları
- Ürün fotoğrafı, marka renkleri, logo ve kapak
- Fiyat gerekçesi ve kullanıcı onayları
İşlemler
RABBIT ne yapar?
- Menü metnini çıkarır ve taslaklara dönüştürür
- Reçete ve açıklama önerisi hazırlar
- Besini gramajdan deterministik hesaplar
- Alerjen sinyallerini temkinli biçimde birleştirir
- Yetki, durum ve yayın koşullarını denetler
- Fiyat hareketini kayda alır ve kurallarla inceler
- Yayın kopyası, QR menü ve PDF sürümü oluşturur
Çıktılar
Kullanıcı ne alır?
- Eksik ve onay bekleyen adımları gösteren ürün kaydı
- Onaylı reçete, besin ve alerjen özeti
- Girişsiz, mobil uyumlu QR menü
- Şablonlu ve versiyonlu PDF menü
- Fiyat geçmişi ve inceleme durumu
- İşletme ve platform denetim kayıtları
- Panel bildirimleri ve isteğe bağlı günlük e-posta özeti
İşletmeye sağladığı değer
Ürün, menü hazırlamayı tek seferlik bir tasarım işi olmaktan çıkarıp sürdürülebilir bir operasyon hâline getirir. Ekip aynı kayıt üzerinde rolüne uygun çalışır; yanlış veya eksik bilgi yayın öncesinde görünür; tüketici yalnız onaylı sürümü görür; fiyat ve yayın geçmişi sonradan incelenebilir kalır. Kategori sırası, öne çıkan ürünler, rozetler, stok görünürlüğü, menü teması, logo/kapak ve PDF yazı tipleri işletmeye göre özelleştirilebilir. Ürünler arşivlenebilir ve taslak olarak geri getirilebilir; eski yayın ve fiyat kayıtları korunur.
Sistem
Teknik Yapı
Mimari nasıl çalışıyor?
RABBIT, TypeScript ile geliştirilmiş bir monorepo ve modüler tek uygulama mimarisidir. Arayüz, alan kuralları ve arka plan işleri ayrı paketlerde tutulur; fakat ayrı mikroservisler gibi dağılmaz. Bu yapı, reçete değişikliğinin besin, alerjen ve yayın durumuna etkisini tek bir kurallar bütünü içinde izlemeyi kolaylaştırır.
Arayüz
Next.js tabanlı web uygulaması; restoran paneli, Bakanlık portalı ve herkese açık QR menüyü aynı ürün içinde, ayrı erişim sınırlarıyla sunar.
Uygulama ve yetki katmanı
Sunucu işlemleri önce oturumu ve rolü çözer, ardından restoran ve gerekiyorsa şube kapsamını kilitler. Yazma işlemleri yalnız yetkili komutlardan geçer.
Alan kuralları
Reçete, besin, alerjen, menü, fiyat, portal, PDF, görsel ve denetim modülleri; durum makineleri, yayın kontrolü ve olay zincirlerini yürütür.
Veri ve dosyalar
PostgreSQL, Drizzle üzerinden ilişkisel kayıtları saklar. Görsel ve PDF gibi ikili dosyalar veritabanına yazılmaz; dosya depolama adaptöründen geçer.
Arka plan işleri
PostgreSQL tabanlı kuyruk; PDF üretimi, menü fotoğrafı okuma, açıklama önerisi, zamanlanmış yayın, bildirim özeti ve isteğe bağlı görsel iyileştirme gibi uzun işleri web isteğinden ayırır.
Onaylı çıktılar
Tüketici menüsü ve PDF, canlı taslak tablolardan değil, yalnız yayın sırasında oluşturulan versiyonlu kopyadan beslenir.
Veri modeli ve kalıcılık
Güncel Drizzle şeması 47 ilişkisel tablo ve 31 enum içerir; şema 27 eklemeli migration ile ilerler. Ana veri kümeleri; hesap ve roller, restoran/şube, menü ve ürün, reçete sürümleri, besin kompozisyonu, alerjen değerlendirmeleri, fiyat olayları ve portal vakaları, yayın kopyaları, PDF'ler, dosya referansları, bildirimler ve denetim kayıtlarıdır. Fiyat olayı, yayın sürümü, reçete sürümü ve denetim kaydı gibi tarihçe niteliğindeki veriler geriye dönük izlenebilirlik için korunur.
Görsel ve PDF baytları veritabanına konmaz. Uygulamanın bugün kullandığı depolama uygulaması ortak yerel dizindir; web ve arka plan işçisi aynı depoyu görür. S3/MinIO değişkenleri ve servis topolojisi hazır olsa da uygulamada etkin bir S3 depolama adaptörü henüz bağlı değildir.
Karar ve dönüşüm mekanizmaları
Deterministik besin hesabı
Enerji ve makrolar, her malzemenin 100 gram değerinin gerçek gramajla çarpılmasıyla hesaplanır. Mililitre için yoğunluk, adet ve porsiyon için gram karşılığı yoksa sistem sessiz varsayım yapmaz; kısmi sonuç üretmeden eksik bileşeni bildirir.
Temkinli alerjen birleştirme
Doğrulanmış malzeme eşlemeleri ile model adayları birleştirilir. Çelişkide daha temkinli sonuç kazanır. Model “içermez” sonucu üretemez; bu beyan kullanıcı açıklaması ve gerektiğinde Bakanlık iddia incelemesi gerektirir.
Durum makineleri ve güncellik zinciri
Ürün, besin, alerjen ve fiyat vakası yalnız tanımlı geçişlerle ilerler. Reçete değişirse besin ve alerjen “güncel değil” olur; yayınlı ürün tekrar kullanıcı incelemesine düşer. Fiyat değişirse ilgili PDF'ler güncelliğini yitirir.
Fiyat değerlendirme motoru
Her onaylı değişiklik; sık değişim, enflasyon eşiği, aylık kümülatif artış, kategori sıçraması, şube sapması, eksik gerekçe, eski PDF, servis/kuver ifadesi ve şüpheli yuvarlama olmak üzere dokuz yapılandırılabilir kuralla değerlendirilir.
Yapay zekâ ve dış servisler
Yapay zekâ erişimi sağlayıcıdan bağımsız bir adaptör arkasındadır. Varsayılan çalışma biçimi deterministik mock adaptördür; yapılandırma ve anahtar varsa fal.ai adaptörü aynı sözleşmeyle devreye girer. Reçete, not etkisi, menü sayfası, eksik besin referansı, alerjen adayı, kısa açıklama ve menü fotoğrafı metin çıkarımı bu kapıdan geçebilir. Her gerçek model çıktısı Zod şemasına uymak zorundadır; geçersiz çıktı üç denemeden sonra reddedilir. Sağlık iddiası, kesin hukuki yorum, onaysız “içermez/vegan” beyanı ve görünmeyen malzeme varsayımı ayrıca guardrail katmanında engellenir veya uyarıya çevrilir.
Güvenlik, hata ve veri sınırları
- Her yönetim isteği oturum, rol, restoran ve gerekiyorsa şube kapsamıyla denetlenir.
- Portal tarafı yalnız gerekli fiyat ve işletme bağlamını görür; reçete gramajı ve besin ayrıntısı genel portal sorgularına seçilmez.
- Her mutasyon komut katmanından geçer ve denetim olayı üretir; işlem kullandığı veritabanı transaction'ıyla birlikte kaydedilir.
- Eşzamanlı yayın veya fiyat onayı, koşullu güncellemelerle ikinci olay üretmeden durdurulur.
- Arka plan işlerinin hataları durum alanına ve denetim kaydına düşer; kullanıcı yeniden deneme veya eksikliği giderme yolunu görür.
- Herkese açık QR menü, yalnız URL'deki restoran/şube slug'ını ve yayın kopyasını kullanır; taslak ürün tablolarını okumaz.
Güven
Doğrulama
Sistem içinde yapılan doğrulamalar
Dosya ve form girdileri
Menü fotoğraflarında tür, 10 MB dosya sınırı ve sekiz fotoğraf sınırı hem tarayıcıda hem sunucuda denetlenir. CSV 5 MB ve 2.000 geçerli satırla sınırlıdır; hatalı satırlar sessizce atılmaz, satır numarası ve nedeni kullanıcıya gösterilir. Fiyatlar iki ondalık basamaklı pozitif metin biçiminde doğrulanır.
Yetki ve kapsam
Güncel model 4 restoran ve 5 platform rolünden oluşan 9 rolü, 40 eylemle eşler. Okuma ve yazma tarafında restoran kapsamı zorunludur; şube kısıtlı kullanıcı yalnız atanmış şubeyi görür ve değiştirir. Platform rolleri ayrıca fiyat veya alerjen/besin kapsamıyla daraltılabilir.
Besin ve alerjen
Eksik referans, yoğunluk veya gram karşılığı varsa besin motoru kısmi kalori açıklamaz. Yapay zekâdan doldurulan referans düşük güvenle işaretlenir ve onay ister. Alerjen “kontrol gerekli” durumu çözülmeden değerlendirme onaylanamaz.
Yayın ve görünürlük
Ad, geçerli fiyat, kategori, onaylı reçete, onaylı zorunlu besin, onaylı alerjen, beş hassas alan, varsa onaylı görsel ve iki yayın onayı tamamlanmadan ürün yayınlanmaz. Başarılı yayın ayrı sürüm üretir; tüketici yalnız bu sürümü görür.
Fiyat değişikliği
Taslak fiyatın dayandığı eski fiyat işlem anında yeniden okunur; arada başka değişiklik olduysa onay reddedilir. Dört onay kutusu olmadan olay yazılmaz. Onaylanan değişiklik fiyat tarihçesine, portal vakasına, PDF güncellik zincirine ve detection motoruna gider.
Model çıktısı ve güvenli geri dönüş
Şema dışı model sonucu yeniden denenir ve sonunda açık hatayla reddedilir. Sağlayıcı yapılandırılmamışsa mock adaptör kullanılır; EVDS yoksa manuel giriş, SMTP yoksa konsol e-postası devreye girer. Bu geri dönüşler dış servis varmış gibi gösterilmez.
Bu oturumdaki güncel geliştirme doğrulamaları
| Kontrol | Sonuç | Kanıt / sınır |
|---|---|---|
| Tip kontrolü | Başarılı | Monorepodaki 8 paket doğrulandı. |
| Kod kalitesi kontrolü | Başarılı | Projenin tamamında lint hatası bulunmadı. |
| Otomatik testler | Başarılı | 95 test dosyasında 860 test geçti; isteğe bağlı 1 gerçek Chromium PDF smoke testi varsayılan koşuda atlandı. |
| Gerçek Chromium PDF smoke | Yerel ortam engelledi | Test ayrıca etkinleştirildi; macOS sandbox Chromium sürecinin açılmasına izin vermedi. Bu nedenle gerçek PDF baytı bu oturumda yerelde yeniden doğrulanamadı. |
| Üretim derlemesi | Başarılı | RABBIT web ve BUNNY uygulamalarının üretim derlemeleri tamamlandı. |
| Tam Playwright e2e paketi | Bu oturumda koşulmadı | 31 tarayıcı senaryosu mevcut; izole gerçek PostgreSQL için TEST_DATABASE_URL tanımlı olmadığı için yerel tam paket çalıştırılmadı. |
| Canlı girişsiz rapor kontrolü | Yayın sonrası doğrulandı | Rapor doğrudan 200 yanıtıyla açıldı; giriş bağlantısı, özel route yönlendirmesi, masaüstü ve mobil yerleşim kontrol edildi. |
Sınırlar
Mevcut Çalışma Durumu
Aşağıdaki ayrım, arayüzde görünen bir bileşen ile gerçek üretim entegrasyonunun aynı şey olmadığını açık tutar. “Uygulanmış” satırı kod, test ve derleme ile doğrulanan ürünü; “yapılandırmaya bağlı” satırı dış servis veya canlı ortam ayarı isteyen yetenekleri; son satır ise kodda hedefi tanımlı olsa da üretim işlevi tamamlanmamış alanları gösterir.
Hesap ve oturum, işletme/şube/ekip yönetimi, ürün editörü, reçete ve besin motoru, alerjen onayı, fiyat olay kaydı, yayın kontrolü, QR menü, versiyonlu PDF, dahili Bakanlık inceleme ekranları, bildirimler, arşiv ve denetim kaydı.
Gerçek fal.ai modeli, gerçek TABAK görsel iyileştirme adaptörü, SMTP e-postası ve EVDS veri çekimi yalnız ilgili anahtarlar ve sağlayıcı seçimi etkinse çalışır. Aksi durumda mock, konsol veya manuel giriş geri dönüşleri kullanılır.
Resmî Bakanlık dış sistemine son elektronik gönderim, paket servis/platform fiyat senkronu, S3/MinIO depolama adaptörünün uygulamada kullanımı, özel/çevrimdışı model, çok dil, alt alan adıyla menü, serbest tasarım kanvası ve matbaa için CMYK çıktı.
Gerçek üretim kullanımı öncesi gerekli kontroller
- Referans veri ve izin: Kullanılacak TürKomp/USDA veya diğer besin verisinin kaynağı, güncelliği, atfı ve üretim kullanım izni yazılı olarak doğrulanmalıdır.
- Gerçek sağlayıcı kabulü: Fal.ai, SMTP ve EVDS etkinleştirilecekse anahtar, kota, hata davranışı, veri işleme koşulları ve gerçek örnek çıktılar ayrı kabul testinden geçirilmelidir.
- Resmî gönderim sınırı: Dahili Bakanlık portalı, resmî dış sistem entegrasyonu yerine geçmez. Son elektronik bildirim devreye alınmadan süreç bu aşamada “resmen gönderildi” sayılmamalıdır.
- Operasyon provası: Yedek alma ve geri yükleme, kuyruk yeniden denemeleri, disk kapasitesi, izleme/uyarı, TLS ve erişim anahtarı yenileme prosedürleri gerçek sunucuda denenmelidir.
- Pilot kullanıcı doğrulaması: Restoran sahibi, şef, şube yöneticisi, menü editörü ve Bakanlık rolüyle gerçek görevler denenmeli; QR menü erişilebilirliği ve PDF baskı sonucu farklı cihazlarda kontrol edilmelidir.
- Hukuk ve içerik onayı: Yayın metinleri, KVKK alanları, şirket bilgileri, sabit uyarılar ve mevzuat yorumları yetkili uzman tarafından son kez gözden geçirilmelidir.
Özet
Sonuç
RABBIT'in temel değeri, restoran menüsünü yalnız dijitalleştirmesi değil; mutfak bilgisi, kullanıcı onayı, fiyat geçmişi ve yayın çıktısı arasında denetlenebilir bir bağ kurmasıdır. Ürün; öneri ile kesin bilgi, taslak ile yayın, restoran verisi ile platform görünürlüğü ve güncel çıktı ile eski sürüm arasındaki sınırları kod düzeyinde korur.
Güncel sürüm, bir restoranın ürünü oluşturup doğrulaması, yayınlaması, QR/PDF çıktısı alması ve fiyat hareketlerini dahili inceleme sürecine taşıması için geniş bir çalışan temel sunuyor. Buna karşılık resmî dış Bakanlık gönderimi, gerçek sağlayıcıların üretim kabulü ve bazı Faz 2 altyapıları tamamlanmış gibi gösterilmemelidir. Sağlıklı üretim geçişi; mevcut teknik güven kapılarının yanında gerçek veri, gerçek kullanıcı, dış servis ve operasyon kontrollerinin birlikte tamamlanmasına bağlıdır.
Ana sayfaya dön