Files
menulio/docs/ROADMAP.md
T
2026-08-20 01:51:59 +03:00

107 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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