107 lines
6.3 KiB
Markdown
107 lines
6.3 KiB
Markdown
# AI QR Menü SaaS — Ürün Roadmap & Faz Planı
|
||
|
||
> Bu doküman [AI_QR_Menu_SaaS_PRD.md](./AI_QR_Menu_SaaS_PRD.md) temel ürün dokümanının üzerine inşa edilmiştir. PRD "ne inşa ediyoruz"u tanımlar, bu doküman "hangi sırayla ve ne zaman" inşa ediyoruz'u tanımlar. Ne tamamlandığının detayı için [PROGRESS.md](./PROGRESS.md).
|
||
>
|
||
> **Durum:** Faz 0 ✅ · Faz 1 ✅ (2026-08-19) · Faz 2'ye başlanmadı.
|
||
|
||
## Yaklaşım
|
||
|
||
MVP önce, sonra kademeli genişleme. MVP içinde bile önce **manuel akış** (AI'sız) kurulur — amaç mobile↔API↔Supabase↔public web↔domain↔QR zincirinin uçtan uca çalıştığını en erken kanıtlamaktır. AI, bu iskelet üzerine eklenir; iskeleti riske atmaz.
|
||
|
||
---
|
||
|
||
## MVP (V1)
|
||
|
||
Hedef: Restoran sahibi mobil uygulamayla hesap açabilsin, menü fotoğrafını çekebilsin, AI dijitalleştirsin, tema seçip yayınlayabilsin, QR alabilsin, abone olabilsin.
|
||
|
||
### Faz 0 — Altyapı
|
||
- Monorepo yapısı (mobile / api / public-web)
|
||
- Supabase local + production şema: users, restaurants, restaurant_members, locations, menus, menu_categories, menu_items, menu_item_options, themes, restaurant_themes, domains, qr_codes, ai_imports, ai_import_items, subscriptions, analytics_events, media
|
||
- Auth: email, Apple, Google
|
||
- Node.js API iskeleti (auth middleware, error handling, temel endpointler)
|
||
|
||
### Faz 1 — Manuel akış (iskelet doğrulama)
|
||
- Restoran oluştur / düzenle (isim, logo, telefon, adres)
|
||
- Kategori/ürün manuel CRUD (mobil)
|
||
- Otomatik subdomain ataması (slug normalize, benzersizlik)
|
||
- Public web: 1 varsayılan tema ile menü render
|
||
- QR kod üretimi (PNG/SVG)
|
||
- **Çıkış kriteri:** Bir restoran sahibi elle veri girip gerçek bir QR menüyü yayınlayabiliyor.
|
||
|
||
### Faz 2 — AI Menu Scanner
|
||
- Kamera / galeri / çoklu fotoğraf yükleme
|
||
- AI extraction pipeline (kategori/ürün/fiyat + confidence skoru)
|
||
- AI Review ekranı — sonuç asla direkt yayınlanmaz, kullanıcı onaylar/düzeltir
|
||
- `ai_imports` / `ai_import_items` kayıt altına alma (hata analizi, model değişimi için)
|
||
- Düşük confidence uyarısı ("⚠ Fiyatı kontrol edin")
|
||
|
||
### Faz 3 — Theme Engine (minimal)
|
||
- 2-3 başlangıç teması (örn. Elegant, Modern, Minimal)
|
||
- Theme config şeması (JSON), data/presentation ayrımı
|
||
- Mobilden preview
|
||
|
||
### Faz 4 — QR & Otomatik Domain
|
||
- QR: PNG/SVG export, paylaş, yüksek çözünürlük baskı
|
||
- QR dinamik URL mantığı — menü/domain değişse bile QR bozulmaz
|
||
- Otomatik subdomain (custom domain V1.5'e ertelendi)
|
||
|
||
### Faz 5 — Abonelik
|
||
- RevenueCat entegrasyonu (`menu_pro_monthly`, `menu_pro_yearly`)
|
||
- 7 gün free trial
|
||
- Entitlement + webhook doğrulama (backend authoritative, mobil local state güvenilmez)
|
||
- Subscription lifecycle: ACTIVE → GRACE PERIOD → SUSPENDED (veri silinmez, public menü geçici kapanır)
|
||
|
||
### MVP'ye ek düşük maliyetli özellikler (Faz 2-3 içine serpiştirilir)
|
||
- **Alerjen / diyet etiketleme** (vegan, glutensiz, acı seviyesi) — küçük DB eklentisi, satış argümanı güçlü
|
||
- **En çok satan ürün rozeti** — analytics_events'ten otomatik türetilir, ekstra veri girişi gerektirmez
|
||
|
||
### MVP Başarı Kriteri
|
||
PRD bölüm 30'daki kriterler + Ana KPI: **kayıt olan restoranın ilk menüsünü yayınlama oranı** (signup → restaurant → photo → AI → approve → publish → QR → paid funnel'ı takip edilir).
|
||
|
||
---
|
||
|
||
## V1.5 — İlk Genişleme
|
||
|
||
- Custom domain bağlama + DNS verification (CNAME) + Cloudflare SSL
|
||
- Tam analytics: ürün/kategori bazlı görüntülenme, saatlik yoğunluk, dil kullanımı, QR taramaları
|
||
- Push notifications ("Menünüz 30 gündür güncellenmedi", "Aboneliğiniz 3 gün sonra yenilenecek", "Bugün 250 kez görüntülendi")
|
||
- Çoklu dil: TR/EN/DE/AR, restoran tarafından düzenlenebilir çeviri
|
||
- 5 temaya tamamlama (Elegant, Modern, Minimal, Dark, Classic)
|
||
- AI açıklama/görsel öneri zenginleştirme (AI, ürün açıklaması taslağı önerir, görsel önerir — restoran onaylar)
|
||
- Zaman bazlı menü (kahvaltı/öğle/akşam otomatik geçiş)
|
||
- QR masa materyali üretimi (masa standı / A4 poster PDF, AI image generation ile)
|
||
- Menü tazelik skoru / gamification (güncelleme dürtmesi, retention için)
|
||
- Offline/PWA cache — zayıf wifi ortamlarında son yüklenen menü açılabilir
|
||
|
||
## V2 — Büyüme Motorları
|
||
|
||
- **Zincir/şube desteği** — DB zaten `Restaurant → Location` olarak tasarlı, sadece UI + pricing katmanı eklenir. Yüksek ARPU segmenti.
|
||
- **Ajans/reseller white-label modeli** — ajanslar müşterileri adına çoklu restoran portföyünü tek hesaptan yönetebilir
|
||
- **Referral programı** — restoran getir, indirim kazan (growth loop)
|
||
- **Menü versiyon geçmişi / geri alma** — AI hatalarına karşı güvenlik ağı, audit
|
||
- **Google review widget** — public menüden Google Maps yorumuna yönlendirme
|
||
- **Sosyal paylaşım kartı üretimi** — ürün başına otomatik Instagram post görseli (fiyat + QR ile); restoran paylaştıkça marka (`menu.x.com`) organik yayılır
|
||
- **Turist modu** — tarayıcı diline/lokasyona göre otomatik dil + tahmini döviz kuru gösterimi (resmi değil, tahmini). Turistik bölge restoranları için güçlü farklılaştırıcı.
|
||
- **Fiyat önerisi / pazar karşılaştırması** — AI, bölgesel fiyat verisiyle "bu ürün bölge ortalamasının altında/üstünde" içgörüsü sunar; premium pakete özel data ürünü
|
||
|
||
## V3 — Platform / Uzun Vade
|
||
|
||
PRD bölüm 28'deki roadmap:
|
||
- Online sipariş, masa siparişi
|
||
- Basit "garson çağır" butonu (tam POS değil, sadece bildirim — V3'e ucuz bir ön adım)
|
||
- Kitchen Display
|
||
- Rezervasyon
|
||
- Loyalty, kampanya yönetimi
|
||
- POS entegrasyonu
|
||
|
||
Bu fazların hiçbiri MVP felsefesini ("AI yardımcıdır karar verici değildir", "public menu hızlıdır, hesap açmaz") bozmamalı; sipariş/rezervasyon gibi özellikler ayrı, opsiyonel modüller olarak eklenmelidir.
|
||
|
||
---
|
||
|
||
## Faz Bağımlılık Notları
|
||
|
||
- Faz 2 (AI) → Faz 1'in veri modeline bağımlı, paralel başlatılamaz
|
||
- Faz 4 (Custom domain, V1.5) → Cloudflare altyapısı Faz 0'da kurulmalı ama aktif kullanım V1.5'e ertelenir
|
||
- Faz 5 (Abonelik) → RevenueCat webhook'u backend'de Faz 0'daki API iskeletine bağımlı, ama ürün tarafında en son entegre edilebilir (trial süresince ücretsiz kullanım MVP testi için yeterli)
|
||
- Zincir/şube desteği (V2) → DB şeması Faz 0'da zaten `Location` katmanıyla hazırlandığı için ek migration riski düşük
|