← Všechny projekty
Vývoj webu

SmartMenu - SaaS platforma

Full-stack SaaS aplikace umožňující restauracím vytvářet digitální jídelní lístky, spravovat předplatné a generovat QR kódy pro stoly.

KategorieVývoj webu
Aktualizováno22. 01. 2026
RepozitářSource code is not publicly available
Technologie
Next.jsSupabaseStripeOpenAI APITypeScriptTailwind CSS

Přehled

Landing page

PDF jídelní lístky se obtížně aktualizují a na telefonu se často špatně čtou. Do SmartMenu restaurace nahraje PDF nebo fotografie lístku a OpenAI API z nich vytáhne strukturovaný obsah. Majitel pak může výsledek opravit, upravit jeho vzhled, vytvořit QR kódy na stoly a spravovat předplatné.

Majitel restaurace spravuje obsah v dashboardu. Host otevře veřejný lístek naskenováním QR kódu. Stejný systém jsem navrhl pro jednu kavárnu i pro franšízu s více pobočkami.

Hlavní funkce

Preview

Správa předplatného a platby

Hlavní technickou výzvou bylo implementovat robustní systém předplatného pomocí Stripe. Vybudoval jsem víceúrovňový přístupový model, který vynucuje limity na počet aktivních jídelních lístků a odemyká prémiové funkce a přístup k OpenAI API.

  • Zpracování webhooků: Automatická synchronizace mezi událostmi Stripe a databází Supabase zajišťuje okamžitou aktualizaci stavu uživatelů po platbě nebo zrušení.
  • Omezení funkcí: Aktivní tarif určuje, zda může uživatel odstranit vodoznak „Powered by" nebo otevřít pokročilou analytiku.

Veřejné stránky

Hosté často otevírají lístek přes mobilní připojení. Veřejné stránky (/m/[slug]) proto používají Next.js Server Components. Většina práce proběhne na serveru a prohlížeč dostane jen malé množství JavaScriptu.

Dashboard pro restaurace

V dashboardu uživatel upravuje položky, kategorie, alergeny a vzhled lístku. Najde v něm také analytiku a fakturaci.

Dashboard

Bezpečná databázová architektura

Bezpečnost je řešena pomocí Supabase a PostgreSQL Row Level Security (RLS).

  • Izolace dat: RLS politiky zajišťují, že majitelé restaurací mohou upravovat pouze vlastní data.
  • Logika v databázi: Kontroly předplatného, například oprávnění odstranit vodoznak, probíhají v databázi a nespoléhají na frontend.

Použité technologie

  • Frontend: Next.js 16, Tailwind CSS, Lucide Icons
  • Backend: Supabase (PostgreSQL, Auth, Storage)
  • API: OpenAI API pro parsování a generování obsahu menu
  • Platby: Stripe (Checkout, Billing Portal, Webhooks)
  • Nasazení: Vercel

Co jsem se naučil

Projekt mi dal praktickou zkušenost s onboardingem, limity použití a opakovanými platbami. Také jsem si ověřil, že kontroly předplatného se lépe zabezpečují a udržují v databázi než ve frontendu.