| Frontend Alkalmazás-keretrendszer | Next.js 16 (App Router) + React 19 Szerverkomponensek, szerverműveletek, egyetlen kliensoldali határ | A webshop egy szerverkomponens, amely lekéri a menüt és 30 másodpercenként frissül; egyetlen kliensoldali határ tartja a szűrő- és kosárállapotot. A módosítások szerverműveletek, az útvonalkezelők pedig a Stripe webhookot, a cron feladatot és a hitelesítési visszahívásokat fedik le. |
| Tárolás Adatbázis és logika | Supabase Postgres Üzleti szabályok security-definer RPC-kként, RLS az ügyféladatokon | Az árazás, a készlet, a jegyszámok, a jogosultságok, a visszatérítések és a riportok verziózott migrációkként kezelt SQL-függvényekben élnek, így a webshop, a tábla és a cron feladat ugyanazokon a szabályokon megy át. |
| Hitelesítés Azonosítás | Supabase Auth + staff tábla E-mail/Google az ügyfeleknek; állomás-munkamenet és PIN a személyzetnek | Az ügyfelek Supabase Auth-tal jelentkeznek be. A személyzet egy olvasni képes állomáson dolgozik, az írást pedig személyenkénti PIN oldja fel, így minden módosítás hozzárendelhető valakihez. |
| Kereskedelem Fizetések | Stripe Checkout + webhookok Előbb fizetés, utána létezik a rendelés | A Checkout Session ára adatbázisbeli árajánlatból származik. A rendelés csak a fizetés után jön létre, a webhookból vagy a visszatérő oldalból, és visszatérítést kap, ha nem adható le. |
| Valós idő Élő frissítések | Supabase Realtime Vékonyan feliratkozni, vastagon lekérdezni | A konyhai kijelző a rendelések táblájának változásaira figyel, és egyetlen RPC-n keresztül tölti újra az adatokat, 30 másodperces lekérdezéssel tartalékként. Az ügyfelek rendelésoldalai 15 másodpercenként frissülnek. |
| Üzemeltetés Ütemezett feladatok | Vercel Cron Egyetlen hitelesített napi útvonal 03:00-kor, UTC szerint | A feladat felszabadítja a lejárt online rendeléseket, megnyitja az üzleti napot ugyanazon az RPC-n át, amelyet a barista is használ, és törli az elavult push-feliratkozásokat. |
| Üzenetküldés Értesítések | Web Push (VAPID) + Resend Először push, tartalékként e-mail | Az elkészülési értesítések minimális service workeren át Web Pushként mennek ki; ha egyetlen push sem érkezik meg, e-mail megy, ha van cím. A nyugtákat a Resend küldi e-mailben. |
| Dizájn Felület | Tailwind CSS v4 + Framer Motion + WebGL Hajszálvonalak, mono feliratok, csökkentett mozgást kezelő tartalékok | A szerkezetet egypixeles vonalak adják kártyák vagy árnyékok helyett. A mozgástokenek közösek, és minden ambient animáció csökkentett mozgás mellett álló, jól használható állapotra egyszerűsödik. |