Ürün
Ürün Tanımı
Bu ürün ne yapıyor?
BUNNY, restoranın mevcut menüsünü alerjen ve enerji beyanına dönüştüren dar kapsamlı bir işletme aracıdır. Menü fotoğraflarını okuyarak ürün adları, olası alerjenler ve enerji değerleri için bir başlangıç taslağı çıkarır. Bu taslak doğrudan yayınlanmaz; işletme her ürünü kontrol eder, gerektiğinde düzeltir ve açıkça onaylar.
Ürünün çözmeye çalıştığı sorun, menüdeki çok sayıdaki kalem için beyan bilgisini tek tek hazırlama, güncel tutma ve tüketiciye hem mobil hem basılı biçimde sunma yüküdür. BUNNY bu işi reçete, fiyat, sipariş veya işletme yönetimi gibi başka alanlara genişletmez; odağını alerjen ve enerji listesinde tutar.
Kim için değer üretiyor?
Güncel arayüz doğrudan restoran sahibi veya menü beyanını hazırlayan işletme görevlisine yöneliktir. Tüketici tarafında ise ayrı hesap gerektirmeyen QR sayfası vardır. Çok kullanıcılı ekip, şube veya farklı yetki rolleri bugün uygulanmış değildir.
Kullanıcı akışı
- 01
İşletmeyi oluşturma
İşletme adı girilir. Sistem benzersiz bir menü adresi ve yalnızca bir kez gösterilen, tahmin edilmesi güç özel yönetim bağlantısı üretir.
- 02
Menü görsellerini okuma
Bir veya birden fazla menü fotoğrafı yüklenir. Görsel model; ürün adı, kategori, olası alerjenler ve enerji için düzenlenebilir öneriler hazırlar.
- 03
İşletme kontrolü
Her ürünün alerjen durumu ile 100 g veya 100 ml ve porsiyon enerji değerleri gözden geçirilir. Ürün eklenebilir, kaldırılabilir ve tek tek onaylanabilir.
- 04
Sürümlü yayın
Tüm ürünler onaylı ve enerji alanları eksiksiz olduğunda sorumluluk beyanı kabul edilir; yeni, değiştirilemez bir yayın sürümü oluşturulur.
- 05
QR ve baskı çıktısı
Tüketici mobil QR menüsünde onaylı beyanı görür ve alerjen filtresini kullanabilir. İşletme aynı sürümün QR kodunu ve yazdırılabilir matrisini alır.
Sisteme girenler
Girdiler
- İşletme adı
- JPEG, PNG, WebP, HEIC veya HEIF menü fotoğrafları
- Ürün adı ve isteğe bağlı kategori düzeltmeleri
- 14 alerjen grubu için işletme beyanı
- 100 g veya 100 ml başına kalori ile porsiyon miktarı
- Ürün bazında kontrol ve yayın sorumluluğu onayı
Kullanıcıya sunulanlar
Çıktılar
- İşletme tarafından kontrol edilebilir ürün listesi
- Her ürün için “İçerir”, “İçerebilir” veya “Beyan edilmedi” durumu
- 100 g/ml ve porsiyon başına kcal ile kJ değerleri
- Sürüm ve tarih bilgisi taşıyan herkese açık mobil sayfa
- Tüketicinin beyan edilmiş alerjenlere göre kullanabildiği filtre
- SVG QR kodu ve yazdırılabilir alerjen–enerji matrisi
Kullanıcı sonuç üzerinde ne yapabiliyor?
İşletme ürünleri elle ekleyebilir veya kaldırabilir; her alerjeni “İçerir”, “İçerebilir” ya da “Beyan edilmedi” durumuna getirebilir; enerji değerlerini ve g/ml birimini değiştirebilir. Yayından sonra bağlantıyı kopyalayabilir, WhatsApp paylaşım metni hazırlayabilir, QR kodunu SVG olarak indirebilir ve baskı görünümünü açabilir.
Tüketici, yayındaki ürünleri kategori halinde görür ve seçtiği alerjeni “İçerir” veya “İçerebilir” olarak bildiren ürünleri gizleyebilir. Filtre bilgilendirme yardımcısıdır; işletmenin beyan etmediği bir alerjeni güvenli kabul etmez.
Mimari
Teknik Yapı
BUNNY tek bir web uygulaması içinde arayüz, sunucu işlemleri, ürün kuralları ve veri erişimini bir arada tutar. Buna karşın sorumluluklar kod içinde ayrıdır: arayüz kullanıcı etkileşimini, komut katmanı değişiklikleri, sorgu katmanı okumaları, çıkarıcı ise yapay zekâ sonucunu yönetir. Bu ayrım, önerinin doğrudan yayına dönüşmesini engelleyen akışı görünür kılar.
Arayüz ve sunucu işlemleri
BUNNY, Next.js App Router ve React 19 ile çalışır. Bilgi sayfaları ve veri okuyan ekranlar sunucuda hazırlanır; formlar sunucu işlemlerini çağırır. Böylece kayıt, tarama, düzenleme ve yayın kararları yalnız tarayıcı durumuna bırakılmaz.
Veri ve dosya ayrımı
İşletmeler, taramalar, taramaya bağlı dosya kayıtları, ürünler, yayın sürümleri ve olay kayıtları PostgreSQL'de altı ana tabloda tutulur. Yüklenen görseller veritabanına gömülmez; kalıcı dosya alanına yazılır ve veritabanında yalnız konumu saklanır.
Görselden yapılandırılmış öneriye
Her fotoğraf görsel modele ayrı gönderilir. Sonuç serbest metin olarak kullanılmaz; BUNNY'nin Zod şemasından geçmesi gerekir. Geçerli sonuçlar birleştirilir ve ürün bazında yapay zekâ kaynağı ile güven düzeyi korunur.
İşletme kararı ve yayın kapısı
Yapay zekâ çıktısı taslaktır. Alerjen veya enerji alanındaki her değişiklik önceki ürün onayını sıfırlar. Yayın; en az bir ürün, tüm ürünlerde güncel işletme onayı, eksiksiz enerji ve sabit sorumluluk metni olmadan oluşturulmaz.
Değiştirilemeyen sonuç sürümü
Yayın anında ürünlerin tamamı tek bir anlık görüntüye dönüştürülür. Her yeni yayın sürüm numarasını artırır; eski yayın satırı değiştirilmez. Tüketici sayfası düzenleme tablosunu değil, yalnız son onaylı yayın görüntüsünü okur.
Kamuya açık sunum
QR menü ve baskı görünümü aynı onaylı yayın verisini kullanır. Enerji için kJ ve porsiyon değerleri modelden alınmaz; kcal girdisinden kod içinde 4,184 katsayısıyla deterministik olarak hesaplanır ve yayın sürümüne yazılır.
Yapay zekâ ve dış servis kullanımı
BUNNY'nin kendi BunnyExtractor sözleşmesi vardır. Güncel canlı ana servis fal.ai görsel uç noktasını ve yapılandırma değiştirilmediyse Claude Sonnet 4.5 modelini kullanır. Ayrı demo servisi gerçek dış çağrı yapmayan, her seferinde aynı örnek sonucu döndüren mock çıkarıcıyla çalışır. Model adı ortam ayarıyla değiştirilebilir; ancak kodda bugün uygulanmış gerçek sağlayıcı fal.ai, ikinci uygulama ise test/demo amaçlı mock'tır.
Model yanıtı ilk seferde kabul edilmez. Yalnız BUNNY şemasına uyan JSON kullanılır; şema ihlalinde doğrulama katmanı yeniden deneme yapar. İstemde fotoğrafta görünmeyen menü kalemlerini uydurmama, kesin “içermez” veya sağlık iddiası üretmeme yönlendirmeleri vardır. Ayrıca “içermez” durumu şemaya hiç alınmadığı için bu iddia model çıktısından sisteme taşınamaz.
Durum ve hata yönetimi
Tarama “işleniyor” durumuyla açılır; başarılıysa “tamamlandı”, hata alırsa hata metniyle “başarısız” olur. Arayüz uzun görsel işlemi sırasında bekleme durumu gösterir. Form hataları Türkçe ve ilgili işlem bağlamında sunulur. Başarılı değişiklikten sonra sunucu sayfayı yeniden doğrulayarak yeni veriyi gösterir.
Kalıcı veri, hesap ve geçmiş
İşletme, ürün, tarama, yayın ve olay verileri kalıcıdır. Yayınlar numaralı ve eklemeli tutulduğu için önceki sürümler veritabanında korunur. Buna rağmen kullanıcıya açılmış bir sürüm geçmişi veya geri yükleme ekranı yoktur. Gerçek hesap sistemi de yoktur; özel yönetim bağlantısı erişim anahtarıdır ve kaybolduğunda uygulama içinden kurtarılamaz.
Harici entegrasyonların sınırı
Güncel BUNNY kodunda fal.ai dışında ödeme, e-posta, analitik, sipariş, resmî portal veya başka bir işletme yönetim sistemi entegrasyonu yoktur. QR görseli uygulama içinde üretilir; PostgreSQL ve kalıcı dosya alanı ürünün kendi veri katmanıdır.
Güvenilirlik
Doğrulama
Sistem içinde yapılan doğrulamalar
Güvenilirlik yalnız form alanlarının dolu olmasına dayanmaz. BUNNY, dosya kabulünden model çıktısına; ürün sahipliğinden yayın sürümüne kadar birbirini tamamlayan kontroller uygular.
Girdi ve dosya kontrolleri
Boş işletme veya ürün adı reddedilir. Yükleme en az bir dosya ister; yalnız desteklenen görsel türleri kabul edilir ve her dosya 12 MB ile sınırlandırılır.
Yapay zekâ çıktı şeması
Alerjen kodu yalnız kanonik 14 seçenekten biri olabilir. Model “içermez” sonucu üretemez; yalnız “İçerir” veya “İçerebilir” önerebilir. Enerji tam sayı, 0–900 kcal/100 g veya ml; porsiyon 1–1500 g veya ml aralığında olmalıdır.
Yetki sınırı
Her yönetim işlemi özel bağlantıdaki token'ı yeniden doğrular. Düz token veritabanında tutulmaz; SHA-256 özeti saklanır. Ürün değişikliklerinde ürünün aynı işletmeye ait olduğu ayrıca kontrol edilir.
Onay tazeliği
Bir ürün onaylandıktan sonra alerjen veya enerji değeri değiştirilirse onay otomatik kaldırılır. Böylece eski bir kontrol işareti yeni bilgi için kullanılamaz.
Yayın güvenliği
Eksik ürün, onaysız ürün, eksik enerji veya kabul edilmemiş sorumluluk metni yayını durdurur ve sorunlu ürünleri adıyla bildirir. Kamuya açık sayfa taslak veriyi hiçbir zaman doğrudan okumaz.
Güvenli anlamlandırma
“Beyan edilmedi”, “içermez” olarak yorumlanmaz. Tüketici filtresi yalnız işletmenin “İçerir / İçerebilir” beyanlarına göre ürün gizler; belirsiz kaydı güvenli ürün gibi göstermez.
Bu oturumda yapılan güncel geliştirme doğrulamaları
Aşağıdaki sonuçlar eski bir rapordan alınmadı; bu sayfa hazırlanırken mevcut çalışma kopyasında yeniden çalıştırıldı ve yayın sonrasında giriş yapılmamış canlı durumla tekrar kontrol edildi.
| Kontrol | Sonuç | Kanıt kapsamı |
|---|---|---|
| Tip kontrolü | Başarılı | BUNNY TypeScript kodu hata vermeden kontrol edildi. |
| Kod kalite kontrolü | Başarılı | BUNNY uygulama ve migration kaynakları ESLint denetiminden geçti. |
| Otomatik testler | 49 / 49 geçti | 4 test dosyası; veri şeması, token, tarama, enerji hesabı, yayın kapısı, sürümleme, kamuya açık filtre ve demo verisi senaryoları. |
| Üretim derlemesi | Başarılı | Next.js üretim derlemesi tamamlandı ve rapor yolu bağımsız sayfa olarak üretildi. |
| Canlı girişsiz erişim | Başarılı | Rapor doğrudan 200 yanıtıyla açıldı; ana uygulama kapıda kaldı, rapor bağlantısı BUNNY giriş kartının altında ve demo içinde ikinci bağlantı yok. |
Bugün çalışan
Uygulanmış özellikler
- İşletme oluşturma ve tek sefer gösterilen özel yönetim bağlantısı
- Birden fazla menü görselini gerçek fal.ai görsel modeliyle veya demo ortamında sabit örnek çıkarıcıyla işleme
- Ürün ekleme/kaldırma; alerjen ve enerji önerilerini düzeltme; ürün bazında yeniden onay
- Eksikleri engelleyen yayın kapısı ve değiştirilemeyen sürüm kayıtları
- Mobil QR menüsü, alerjen filtresi, QR paylaşımı ve yazdırılabilir matris
Bugün bulunmayan
Açık sınırlar
- Gerçek kullanıcı hesabı, parola, bağlantı kurtarma, ekip rolleri ve şube yetkileri yoktur; özel yönetim bağlantısına sahip olmak erişim için yeterlidir.
- Eski yayınlar veride korunur fakat bunları listeleyen, karşılaştıran veya geri yükleyen bir geçmiş ekranı yoktur.
- Müşteri/işletme arşivi, kişiselleştirme, ödeme, e-posta bildirimi ve harici yönetim sistemi entegrasyonu uygulanmış değildir.
- Bu oturumdaki otomatik testler gerçek görsel modelin farklı menülerdeki alan doğruluğunu ölçmez; canlı bir üretim menüsü üzerinde kalite kabul testi yapılmadı.
Gerçek üretim kullanımı öncesindeki gerekli kontroller
Aşağıdaki maddeler çalışıyor gibi sunulan özellikler değildir; mevcut kod ve risk sınırlarından çıkan üretim hazırlığı gereksinimleridir.
- 01
Gerçek kullanıcı kimliği, güvenli erişim kurtarma, oturum yönetimi ve gerekliyse ekip/rol modelinin tamamlanması
- 02
Farklı fotoğraf kalitesi, dil, menü düzeni, yiyecek ve içeceklerden oluşan temsilî veri setinde alan bazlı doğruluk ölçümü
- 03
Alerjen ve enerji sunumunun güncel mevzuat ile işletme süreçlerine uygunluğunun yetkili uzman tarafından gözden geçirilmesi
- 04
Dosya içeriği doğrulama, kötüye kullanım sınırları, kota/rate limit, izleme ve hata alarmı kontrollerinin eklenmesi
- 05
BUNNY veritabanı ile görsel deposu için yedek alma ve gerçek geri yükleme provasının kayıt altına alınması
- 06
Gizlilik, saklama süresi, silme talebi ve işletme değişikliği gibi operasyonel süreçlerin tanımlanması
Değerlendirme
Sonuç
BUNNY'nin temel değeri, menü fotoğrafını nihai gerçek gibi kabul etmek yerine işletmenin kontrol edeceği düzenli bir taslağa dönüştürmesidir. Ürün kapsamını alerjen ve enerji beyanında dar tutar; kullanıcı kararını zorunlu kılar ve tüketiciye yalnız onaylanmış, sürümlü sonucu gösterir.
Güncel kod; kayıt, görsel okuma, düzenleme, ürün bazında onay, yayın kapısı, QR menü ve baskı çıktısı için çalışan bir bütün sunmaktadır. Otomatik testler ve üretim derlemesi bu bütünün teknik tutarlılığını destekler. Buna karşın gerçek hesap güvenliği ve saha verisiyle model kalite ölçümü tamamlanmadan ürünün geniş ölçekli, denetimsiz kullanıma hazır olduğu sonucuna varılmamalıdır.