# Les 8 — Slide Overzicht ## Supabase Auth: Inloggen & Registreren --- ## Slide 1: Titelslide **Layout:** Split (cream links, blauw rechts) — Keynote stijl - NOVI Hogeschool logo - "AI leerlijn" - **Next.js** - **Les 8** --- ## Slide 2: Terugblik vorige les **Layout:** Cream + blauw blob rechts - **Titel:** Terugblik vorige les - Links: Wat we gebouwd hebben - Stemmen werkend gemaakt - Supabase account + project aangemaakt - Polls + options tabellen - Foreign keys & CASCADE - RLS policies (SELECT/UPDATE voor anon) - Testdata via Table Editor - Rechts: Wat nog mist - Supabase niet gekoppeld aan Next.js - Geen login/registratie --- ## Slide 3: Planning **Layout:** Gele achtergrond + decoratieve blobs - **Titel:** Planning - Deel 1: Live Coding Supabase koppelen — 65 min - Client setup, environment variables - Data layer herschrijven - Components aanpassen - Data persisten testen - Pauze — 15 min - Deel 2: Uitleg + Zelf Doen — 60 min - 30 min: Uitleg Auth functies - 30 min: Zelf /create pagina bouwen - Afsluiting — 30 min --- ## Slide 4: Van Array naar Database **Layout:** Cream + blauw blob rechts - **Titel:** Van Array naar Database - Links: code block met de oude in-memory code ``` let polls: Poll[] = [ { id: "1", question: "...", ... } ]; ``` - Rechts: Supabase query ``` const { data } = await supabase .from("polls") .select("*, options(*)"); ``` - Pijl van links naar rechts: "Zelfde functies, andere data source" --- ## Slide 5: Live Coding Deel 1 **Layout:** Blauw volledig + cream blob links - **Titel:** Live Coding - **Subtitel:** Deel 1: Supabase × Next.js - Stappen: - @supabase/supabase-js installeren - .env.local configureren - Supabase client maken - TypeScript types definiëren - data.ts herschrijven - Components aanpassen - Testen: data moet bewaard blijven --- ## Slide 6: Het Patroon **Layout:** Cream + blauw blob rechts - **Titel:** Het Patroon - Server Component: ``` async function PollList() { const { data } = await supabase.from("polls").select("*"); return