+
+// Selecteer, Ctrl+K: "Converteer naar Tailwind classes"
+
+// Result:
+
+```
+
+**Wanneer:** Kleine aanpassingen, styling, inline styles → Tailwind
+
+**Timing:** 3 minuten
+
+---
+
+### **Slide 11: Composer (Ctrl+I)**
+
+**Wat is Composer?**
+Multi-file editor: grote opdrachten, meerdere files tegelijk.
+
+**Hoe gebruik je het:**
+
+```
+STAP 1: Druk Ctrl+I → Composer opent
+STAP 2: Typ je taak
+ "Voeg /about pagina toe met hero en content sectie"
+STAP 3: AI creëert plan + preview
+STAP 4: Review & Accept alle changes
+```
+
+**VOORBEELD:**
+```
+Je zegt: "Maak een ContactForm component met Tailwind"
+Composer maakt aan:
+├─ components/ContactForm.tsx
+├─ Update app/contact/page.tsx
+└─ Voegt form validatie toe
+```
+
+**Wanneer:** Nieuwe pagina's, grote features, meerdere files
+
+**Timing:** 3 minuten
+
+---
+
+### **Slide 12: Tab Completion**
+
+**Wat is Tab Completion?**
+AI voorspelt je volgende lijn code terwijl je typt.
+
+```
+Je typt:
+ const users = fetch(
+
+AI voorstelt (grijs):
+ const users = fetch('/api/users')
+ .then(res => res.json())
+
+Je drukt TAB → ingevoegd!
+```
+
+**Pro tip:** Tab completion is GRATIS / kost geen premium requests!
+→ Gebruik dit zo veel mogelijk i.p.v. Chat/Composer voor kleine dingen.
+
+**Timing:** 2 minuten
+
+---
+
+### **Slide 13: @ Mentions - Context geven**
+
+```
+@file → Specifiek bestand meegeven
+@folder → Hele folder meegeven
+@web → Internet zoeken
+@docs → Documentatie referenties (Next.js, React, Tailwind!)
+```
+
+**VOORBEELD:**
+```
+"Hoe maak ik een server component? @docs Next.js"
+→ AI zoekt in Next.js documentatie voor antwoord
+```
+
+**Timing:** 2 minuten
+
+---
+
+## BLOK 4: SKILLS, RULES & REQUESTS
+### *Duur: 15 minuten | Slides 14-16*
+
+---
+
+### **Slide 14: Cursor Skills Installeren**
+
+**⚠️ SAMEN DOEN - Iedereen volgt mee!**
+
+**Wat zijn Cursor Skills/Docs?**
+Documentatie die Cursor kan raadplegen via @docs. Hierdoor begrijpt AI je frameworks beter.
+
+**Stap 1: Open Cursor Settings**
+```
+Ctrl+Shift+P → "Cursor Settings" → Features → Docs
+```
+
+**Stap 2: Voeg documentatie toe**
+```
+┌─────────────────────────────────────────┐
+│ + Add new doc │
+├─────────────────────────────────────────┤
+│ 1. Next.js │
+│ URL: https://nextjs.org/docs │
+│ │
+│ 2. React │
+│ URL: https://react.dev │
+│ │
+│ 3. Tailwind CSS │
+│ URL: https://tailwindcss.com/docs │
+│ │
+│ (Optioneel) │
+│ 4. shadcn/ui │
+│ URL: https://ui.shadcn.com │
+└─────────────────────────────────────────┘
+```
+
+**Stap 3: Test het!**
+```
+Chat (Ctrl+L): "Hoe maak ik een layout in Next.js? @docs Next.js"
+→ AI gebruikt de officiële Next.js docs als bron
+```
+
+**Waarom?**
+- AI geeft betere, up-to-date antwoorden
+- Geen verouderde patterns
+- Specifiek voor jouw stack
+
+**⚠️ CHECKPOINT: Minimaal Next.js en Tailwind docs toegevoegd**
+
+**Timing:** 5 minuten
+
+---
+
+### **Slide 15: .cursorrules - Genereren met AI Chat**
+
+**Wat is .cursorrules?**
+Een bestand in je project root dat AI vertelt hoe jij wilt werken.
+
+**⚠️ WE GAAN DIT NIET HANDMATIG SCHRIJVEN**
+We laten Cursor Chat het genereren! Dat bespaart tijd en geeft een goed startpunt.
+
+**Hoe:**
+```
+STAP 1: Open Chat (Ctrl+L)
+
+STAP 2: Typ dit prompt:
+"Genereer een .cursorrules bestand voor een Next.js project.
+ Het project gebruikt:
+ - Next.js App Router
+ - Tailwind CSS voor styling
+ - TypeScript
+ - Functional components met React hooks
+ - Nederlandse comments
+ Maak regels voor file structure, naming conventions,
+ en styling guidelines."
+
+STAP 3: Kopieer de output
+
+STAP 4: Maak nieuw bestand: .cursorrules (in project root)
+
+STAP 5: Paste + Save (Ctrl+S)
+```
+
+**Dit kost 1 request → efficiënt!**
+
+**Timing:** 5 minuten
+
+---
+
+### **Slide 16: Request Management - Hobby Account Tips**
+
+**⚠️ BELANGRIJK: Jullie requests zijn beperkt!**
+
+**Hobby account:** Beperkt aantal premium requests per maand
+**Student account:** 500 fast requests per maand (upgrade z.s.m.!)
+
+**Hoe zuinig omgaan met requests:**
+
+```
+╔════════════════════════════════════════════════════════╗
+║ GRATIS / GOEDKOOP: ║
+║ ✅ Tab Completion (kost GEEN premium request) ║
+║ ✅ Code typen met AI suggesties ║
+║ ║
+║ KOST 1 REQUEST: ║
+║ ⚡ Chat vraag (Ctrl+L) ║
+║ ⚡ Inline Edit (Ctrl+K) ║
+║ ⚡ Composer actie (Ctrl+I) ║
+║ ║
+║ TIPS OM REQUESTS TE BESPAREN: ║
+║ 1. Denk EERST, prompt DAARNA ║
+║ 2. Combineer taken in 1 prompt ║
+║ ✗ "Maak een button" → "Maak het blauw" ║
+║ → "Voeg hover toe" = 3 requests ║
+║ ✓ "Maak een blauwe button met hover effect" ║
+║ = 1 request! ║
+║ 3. Gebruik Tab Completion voor kleine dingen ║
+║ 4. Lees error messages ZELF eerst ║
+║ 5. Gebruik @docs voor framework vragen ║
+╚════════════════════════════════════════════════════════╝
+```
+
+**Timing:** 5 minuten
+
+---
+
+## BLOK 5: LIVE DEMO - NIEUW PROJECT
+### *Duur: 15 minuten | Slide 17*
+
+---
+
+### **Slide 17: Demo - Nieuw Project Opzetten (blijft op scherm)**
+
+**Docent demonstreert de HELE workflow die studenten straks zelf doen:**
+
+```
+╔═════════════════════════════════════════════════════════╗
+║ LIVE DEMO: NIEUW PROJECT ║
+╠═════════════════════════════════════════════════════════╣
+║ ║
+║ STAP 1: Git Repository (2 min) ║
+║ ├─ $ mkdir my-cursor-project ║
+║ ├─ $ cd my-cursor-project ║
+║ ├─ $ git init ║
+║ └─ Open in Cursor: File → Open Folder ║
+║ ║
+║ STAP 2: npx Scaffold (3 min) ║
+║ ├─ Terminal in Cursor (Ctrl+`) ║
+║ ├─ $ npx create-next-app@latest . ║
+║ │ ├─ TypeScript? → Yes ║
+║ │ ├─ ESLint? → Yes ║
+║ │ ├─ Tailwind CSS? → Yes ║
+║ │ ├─ src/ directory? → Yes ║
+║ │ ├─ App Router? → Yes ║
+║ │ └─ Import alias? → @/* (default) ║
+║ └─ $ npm run dev → localhost:3000 ║
+║ ║
+║ STAP 3: Skills Check (1 min) ║
+║ ├─ Settings → Docs → Next.js, React, Tailwind ║
+║ └─ (al gedaan in Slide 14) ║
+║ ║
+║ STAP 4: .cursorrules via Chat (3 min) ║
+║ ├─ Ctrl+L → Chat ║
+║ ├─ "Genereer .cursorrules voor Next.js + Tailwind" ║
+║ ├─ Kopieer output → maak .cursorrules ║
+║ └─ Save (Ctrl+S) → 1 request gebruikt ║
+║ ║
+║ STAP 5: Component Bouwen (4 min) ║
+║ ├─ Ctrl+I → Composer ║
+║ ├─ "Maak een HeroSection component met: ║
+║ │ - Grote titel, subtitel ║
+║ │ - Gradient achtergrond ║
+║ │ - CTA button ║
+║ │ - Tailwind styling, responsive" ║
+║ ├─ Accept → component gemaakt ║
+║ ├─ Voeg toe aan page.tsx ║
+║ └─ Refresh browser → ZIE RESULTAAT! ║
+║ ║
+║ STAP 6: Git Commit (2 min) ║
+║ ├─ $ git add . ║
+║ ├─ $ git commit -m "Initial project with hero" ║
+║ └─ (Push naar GitHub komt later) ║
+║ ║
+╚═════════════════════════════════════════════════════════╝
+```
+
+**Kernboodschap:** "Van niks naar werkende website in 15 minuten!"
+
+**Timing:** 15 minuten (hele blok is demo)
+
+---
+
+## BLOK 6: HANDS-ON OPDRACHT
+### *Duur: 75 minuten + 15 minuten pauze | Slide 18*
+
+---
+
+### **Slide 18: Aan de Slag! (blijft op scherm)**
+
+```
+╔════════════════════════════════════════════════════════════╗
+║ LES 3 HANDS-ON OPDRACHT ║
+║ Bouw je eigen project met Cursor! ║
+╚════════════════════════════════════════════════════════════╝
+
+STAP 1: NIEUW PROJECT AANMAKEN
+═════════════════════════════════════════════════════════════
+
+□ Open Cursor Terminal (Ctrl+`)
+
+□ Maak een nieuwe map:
+ $ mkdir ~/projects/mijn-project
+ $ cd ~/projects/mijn-project
+
+□ Initialiseer Git:
+ $ git init
+
+□ Scaffold met npx:
+ $ npx create-next-app@latest .
+
+ Antwoorden op de vragen:
+ ┌────────────────────────────────────┐
+ │ TypeScript? → Yes │
+ │ ESLint? → Yes │
+ │ Tailwind CSS? → Yes │
+ │ src/ directory? → Yes │
+ │ App Router? → Yes │
+ │ Import alias @/*? → Yes (Enter) │
+ └────────────────────────────────────┘
+
+□ Start dev server:
+ $ npm run dev
+
+□ Open browser: http://localhost:3000
+ → Je ziet de Next.js welcome pagina!
+
+✓ CHECKPOINT 1: localhost:3000 toont Next.js default pagina
+
+
+STAP 2: CURSOR CONFIGUREREN
+═════════════════════════════════════════════════════════════
+
+□ Check dat je Docs/Skills hebt (Slide 14):
+ Settings → Features → Docs
+ → Next.js, React, Tailwind moeten erin staan
+
+□ Genereer .cursorrules via Chat:
+ Ctrl+L → Chat Panel
+ Typ: "Genereer een .cursorrules bestand voor dit project.
+ We gebruiken Next.js App Router, Tailwind CSS,
+ TypeScript, en functional components met hooks.
+ Nederlandse comments. Geef regels voor
+ file structure, naming, en styling."
+
+□ Maak .cursorrules bestand:
+ - File → New File → naam: .cursorrules
+ - Plak de output van Chat
+ - Save (Ctrl+S)
+
+ ⚡ Dit kostte 1 request - goed besteed!
+
+✓ CHECKPOINT 2: .cursorrules staat in project root
+
+
+STAP 3: BOUW EEN COMPONENT (de fun part!)
+═════════════════════════════════════════════════════════════
+
+⚠️ LET OP: Combineer taken in 1 prompt om requests te sparen!
+
+TAAK 1: HERO COMPONENT (Composer, 1 request)
+─────────────────────────────────────────────
+□ Druk Ctrl+I → Composer
+□ Typ: "Maak een HeroSection component in
+ src/components/HeroSection.tsx.
+ Met grote titel, subtitel, gradient achtergrond,
+ CTA button, responsive Tailwind styling.
+ Voeg de HeroSection toe aan src/app/page.tsx
+ (vervang de default Next.js content)."
+□ Review de preview
+□ Click Accept
+□ Refresh localhost:3000 → ZIE JE HERO!
+
+→ DOEL: 1 Composer prompt = werkend component!
+
+
+TAAK 2: STYLING TWEAKEN (Inline Edit, 1 request)
+─────────────────────────────────────────────────
+□ Open src/components/HeroSection.tsx
+□ Selecteer de hele component code
+□ Druk Ctrl+K → Inline Edit
+□ Typ: "Voeg een hover animatie toe aan de button.
+ Maak de gradient mooier met meer kleuren.
+ Zorg voor goede spacing op mobiel."
+□ Accept (Enter)
+□ Refresh browser → Verbeterd!
+
+→ DOEL: Quick styling fix met 1 request
+
+
+TAAK 3: EXTRA FEATURE (Composer, 1 request)
+────────────────────────────────────────────
+□ Druk Ctrl+I → Composer
+□ Kies EEN van deze:
+ A) "Maak een FeatureCards component met 3 cards.
+ Elke card heeft een icon (emoji), titel, en tekst.
+ Responsive grid: 1 kolom mobiel, 3 kolommen desktop.
+ Tailwind styling. Voeg toe onder de Hero op page.tsx."
+
+ B) "Maak een ContactForm component met naam, email,
+ en bericht velden. Tailwind styling.
+ Voeg toe op een nieuwe /contact pagina."
+
+ C) "Maak een Footer component met links, copyright,
+ en social media icons (emoji). Voeg toe aan layout.tsx."
+
+□ Accept → Refresh browser
+
+→ DOEL: 2e component gemaakt = project groeit!
+
+✓ CHECKPOINT 3: Minimaal 2 componenten werken op je site
+
+
+STAP 4: GIT COMMIT
+═════════════════════════════════════════════════════════════
+
+□ Terminal (Ctrl+`) in Cursor:
+ $ git add .
+ $ git commit -m "Add hero and feature components"
+
+□ (Optioneel) Maak GitHub repo en push:
+ $ gh repo create mijn-project --public --source=. --push
+ OF:
+ Ga naar github.com → New Repository → volg instructies
+
+✓ CHECKPOINT 4: Code gecommit!
+
+
+═════════════════════════════════════════════════════════════
+☕ PAUZE: 10:15 - 10:30 (15 minuten)
+═════════════════════════════════════════════════════════════
+
+Na pauze: Verder bouwen! Voeg meer componenten toe.
+Gebruik je overige requests SLIM.
+
+
+═════════════════════════════════════════════════════════════
+NA PAUZE: VERDER BOUWEN
+═════════════════════════════════════════════════════════════
+
+□ Voeg nog 1-2 componenten toe met Composer
+ (let op: je requests zijn beperkt!)
+
+□ Gebruik Tab Completion voor kleine code (GRATIS!)
+
+□ Gebruik Inline Edit voor styling fixes (1 request per fix)
+
+□ Probeer @docs te gebruiken:
+ Chat: "Hoe werkt de App Router? @docs Next.js"
+
+
+═════════════════════════════════════════════════════════════
+DOELEN BEREIKT?
+═════════════════════════════════════════════════════════════
+
+✓ Nieuw project gescaffold met npx
+✓ Cursor Skills/Docs geïnstalleerd
+✓ .cursorrules gegenereerd met Chat
+✓ Minimaal 2 componenten gebouwd
+✓ Alles werkt op localhost:3000
+✓ Git commits gemaakt
+✓ Requests slim gebruikt! 🎉
+
+
+═════════════════════════════════════════════════════════════
+HELP NODIG?
+═════════════════════════════════════════════════════════════
+
+npx create-next-app faalt:
+→ Check Node versie: node -v (moet v18+)
+→ Probeer: npx create-next-app@latest mijn-project
+
+npm run dev faalt:
+→ Check of je in de juiste map staat: pwd
+→ $ rm -rf node_modules && npm install
+
+Cursor Chat/Composer reageert niet:
+→ Check internet
+→ Check requests: cursor.com/account
+→ Restart Cursor
+
+Git problemen:
+→ $ git status → check wat er mis is
+→ $ git add . && git commit -m "message"
+```
+
+**Timing:** 75 minuten + 15 minuten pauze
+
+---
+
+## BLOK 7: AFSLUITING
+### *Duur: 15 minuten | Slides 19-22*
+
+---
+
+### **Slide 19: Resultaten Delen**
+
+**Show & Tell (5 minuten)**
+
+```
+╔═══════════════════════════════════════════════════════╗
+║ TOON JE PROJECT AAN DE KLAS ║
+║ (3-4 studenten, ~1 minuut per project) ║
+╚═══════════════════════════════════════════════════════╝
+```
+
+**Wat we kijken naar:**
+- Welke componenten heb je gemaakt? ✓
+- Werkt het op localhost? ✓
+- Hoe veel requests heb je gebruikt? ✓
+- Hoe ziet je .cursorrules eruit? ✓
+
+**Timing:** 5 minuten
+
+---
+
+### **Slide 20: Samenvatting**
+
+```
+╔════════════════════════════════════════════════════════╗
+║ CURSOR - WAT HEBBEN WE GELEERD? ║
+╠════════════════════════════════════════════════════════╣
+║ ║
+║ SETUP ║
+║ ├─ Cursor installeren + Hobby/Student account ║
+║ ├─ Skills/Docs toevoegen (Next.js, React, Tailwind) ║
+║ └─ .cursorrules genereren met AI Chat ║
+║ ║
+║ AI FEATURES ║
+║ ├─ Chat (Ctrl+L) → vragen, analyse, genereren ║
+║ ├─ Composer (Ctrl+I) → grote taken, meerdere files ║
+║ ├─ Inline Edit (Ctrl+K) → kleine aanpassingen ║
+║ ├─ Tab Completion → gratis code suggesties ║
+║ └─ @mentions → context geven (@file, @docs) ║
+║ ║
+║ WORKFLOW ║
+║ ├─ npx create-next-app → scaffold ║
+║ ├─ .cursorrules → AI kent je regels ║
+║ ├─ Composer → componenten bouwen ║
+║ └─ git commit → code opslaan ║
+║ ║
+║ REQUEST MANAGEMENT ║
+║ ├─ Tab Completion = GRATIS ║
+║ ├─ Combineer taken in 1 prompt ║
+║ └─ Denk EERST, prompt DAARNA ║
+║ ║
+╚════════════════════════════════════════════════════════╝
+```
+
+**Timing:** 3 minuten
+
+---
+
+### **Slide 21: Huiswerk - Debug Challenge!**
+
+**Download het huiswerk-zipbestand van Teams**
+
+```
+╔════════════════════════════════════════════════════════╗
+║ LES 3 HUISWERK: DEBUG CHALLENGE ║
+╚════════════════════════════════════════════════════════╝
+
+OPDRACHT:
+Download het zipbestand "les3-debug-challenge.zip" van Teams.
+Dit is een Next.js project met EXPRES FOUTEN erin!
+
+Jouw taak: Fix ALLE fouten met behulp van Cursor.
+
+FOUTEN DIE JE GAAT TEGENKOMEN:
+═════════════════════════════════════════════════════════
+
+1. MISSENDE DEPENDENCIES
+ → npm install zal FALEN
+ → Bekijk de error message
+ → Gebruik Cursor Chat: "Welke dependencies missen er?"
+ → Fix package.json en installeer opnieuw
+
+2. SYNTAX ERRORS
+ → npm run dev zal ERRORS geven
+ → Lees de error messages in de terminal
+ → Gebruik Cursor om de fouten te vinden en te fixen
+ → Tip: ESLint helpt hier ook!
+
+3. INLINE STYLES → TAILWIND
+ → Sommige componenten gebruiken inline styles
+ → Gebruik Inline Edit (Ctrl+K) om ze naar Tailwind
+ te converteren
+ → Selecteer de code, Ctrl+K:
+ "Converteer alle inline styles naar Tailwind classes"
+
+4. SKILL NODIG!
+ → Voor de Tailwind conversie heb je de Tailwind docs
+ nodig in Cursor
+ → Check dat je Tailwind docs hebt toegevoegd
+ (Settings → Docs)
+
+INLEVEREN (voor Les 4):
+═════════════════════════════════════════════════════════
+
+□ Werkend project (npm run dev zonder errors)
+□ Alle inline styles omgezet naar Tailwind
+□ Push naar GitHub
+□ Vercel deployment (optioneel maar aanbevolen)
+
+POST OP TEAMS:
+→ GitHub link
+→ Screenshot van werkende site
+→ Kort: "Dit waren de fouten die ik tegenkwam en
+ hoe ik ze heb opgelost"
+```
+
+**Tips:**
+- Lees ERROR MESSAGES - ze vertellen je precies wat fout is
+- Gebruik de terminal in Cursor (niet een losse terminal!)
+- Chat is je vriend: "Wat betekent deze error: [plak error]"
+- Tab Completion is gratis - gebruik het!
+
+**Timing:** 5 minuten
+
+---
+
+### **Slide 22: Volgende Les - Effectief Prompting**
+
+```
+╔════════════════════════════════════════════════════════╗
+║ LES 4: EFFECTIEF PROMPTING & ║
+║ ITERATIEF WERKEN MET AI ║
+╚════════════════════════════════════════════════════════╝
+
+Onderwerpen:
+├─ Prompt engineering 101 (betere vragen stellen)
+├─ Iteratief refinement (prompt → review → verbeter)
+├─ Debugging met AI (errors → fixes)
+├─ Code reviews met AI
+└─ .cursorrules verfijnen
+
+Voorbereiding:
+└─ Huiswerk debug challenge MOET af zijn!
+```
+
+**Tot ziens volgende week! 🚀**
+
+**Timing:** 2 minuten
+
+---
+
+## BIJLAGE: TROUBLESHOOTING CHEAT SHEET
+
+### Common Issues & Solutions
+
+**TERMINAL ISSUES**
+
+```
+ERROR: "command not found: npx"
+→ Node.js niet geïnstalleerd of te oude versie
+→ FIX: nvm install 20 && nvm use 20
+
+ERROR: "EACCES: permission denied"
+→ File permissions probleem
+→ FIX: gebruik nvm (geen sudo nodig)
+
+ERROR: "create-next-app faalt"
+→ Node versie te oud
+→ FIX: node -v (moet v18+), anders nvm install 20
+```
+
+**CURSOR ISSUES**
+
+```
+Chat/Composer not responding
+→ Check internet connection
+→ Restart Cursor
+→ Check requests: cursor.com/account
+
+.cursorrules wordt niet gelezen
+→ Check: bestand in project ROOT (niet in src/)
+→ Check: bestandsnaam exact ".cursorrules" (met punt)
+
+Extensions not loading
+→ Command Palette → Reload Window
+```
+
+**GIT ISSUES**
+
+```
+"fatal: not a git repository"
+→ $ git init (in project folder)
+
+"nothing to commit"
+→ Alle files al gecommit, maak eerst wijzigingen
+```
+
+---
+
+## TIMING SUMMARY
+
+| Blok | Onderdeel | Duur |
+|------|-----------|------|
+| 1 | Welkom & Mededeling | 10 min |
+| 2 | Installatie & Setup | 20 min |
+| 3 | Cursor Features | 15 min |
+| 4 | Skills, Rules & Requests | 15 min |
+| 5 | Live Demo: Nieuw Project | 15 min |
+| **PAUZE** | | **15 min** |
+| 6 | Hands-On Opdracht | 75 min |
+| 7 | Afsluiting | 15 min |
+| **TOTAAL** | | **180 min** |
+
+---
+
+## NOTITIES VOOR TIM
+
+- **Voorbereiding:**
+ - Test npx create-next-app op eigen machine
+ - Cursor Skills/Docs vooraf toevoegen (Next.js, React, Tailwind)
+ - .cursorrules genereren als demo
+ - Maak het huiswerk zipbestand klaar met fouten (les3-debug-challenge.zip)
+
+- **Huiswerk zip moet bevatten:**
+ - Next.js project met:
+ - package.json met missende dependency (bijv. `lucide-react` used maar niet in deps)
+ - Syntax error in een component (missing closing tag of typo)
+ - 3-4 componenten met inline styles (style={{...}}) i.p.v. Tailwind
+ - Een component die een import mist
+
+- **Tijdens les:**
+ - Terminal checks (Slide 8) zijn KRITISCH
+ - Benadruk request management VOOR hands-on begint
+ - npx create-next-app duurt 1-2 min, laat iedereen wachten
+ - Loop rond tijdens hands-on, help met npx/npm issues
+
+- **Request bewust:**
+ - Demo gebruikt ~3 requests (cursorrules + hero + feature)
+ - Studenten moeten ~5-7 requests in de les gebruiken
+ - Tab Completion benadrukken als gratis alternatief
+
+---
+
+**Einde Slide-Overzicht Les 3**
diff --git a/Les03-Cursor-Basics/les3-debug-challenge-hard.zip b/Les03-Cursor-Basics/les3-debug-challenge-hard.zip
new file mode 100644
index 0000000..6a39d03
Binary files /dev/null and b/Les03-Cursor-Basics/les3-debug-challenge-hard.zip differ
diff --git a/Les03-Cursor-Basics/les3-debug-challenge.zip b/Les03-Cursor-Basics/les3-debug-challenge.zip
new file mode 100644
index 0000000..8b2b92f
Binary files /dev/null and b/Les03-Cursor-Basics/les3-debug-challenge.zip differ
diff --git a/Les03-Cursor-Basics/zi4PuQhg b/Les03-Cursor-Basics/zi4PuQhg
new file mode 100644
index 0000000..809a42d
Binary files /dev/null and b/Les03-Cursor-Basics/zi4PuQhg differ
diff --git a/readme.md b/readme.md
index 9431971..bb16672 100644
--- a/readme.md
+++ b/readme.md
@@ -19,26 +19,28 @@ Een 18-weekse cursus die studenten meeneemt van AI-beginner naar AI-powered deve
## Overzicht
+> **Let op:** Curriculum v2 - geherstructureerd na feedback les 1-2. Cursor vervangt OpenCode als primaire AI tool. Meer tijd voor Next.js en Supabase.
+
| Les | Onderwerp | Deel | Status |
|-----|-----------|------|--------|
-| 01 | [Introductie tot AI en Large Language Models](Samenvattingen/Les01-Samenvatting.md) | 1 | ✅ Uitgewerkt |
-| 02 | [AI Code Assistants en OpenCode](Samenvattingen/Les02-Samenvatting.md) | 1 | ✅ Uitgewerkt |
-| 03 | [AI Ethics, Privacy & Security + WebStorm](Samenvattingen/Les03-Samenvatting.md) | 1 | 📋 Samenvatting |
+| 01 | [Introductie tot AI en Large Language Models](Samenvattingen/Les01-Samenvatting.md) | 1 | ✅ Gegeven |
+| 02 | [AI Code Assistants (OpenCode → Cursor)](Samenvattingen/Les02-Samenvatting.md) | 1 | ✅ Gegeven |
+| 03 | [Cursor Setup & Basics](Samenvattingen/Les03-Samenvatting.md) | 1 | 🔨 In ontwikkeling |
| 04 | [Effectief Prompting, Iteratief Werken & Skills](Samenvattingen/Les04-Samenvatting.md) | 1 | 📋 Samenvatting |
| 05 | [TypeScript Basics](Samenvattingen/Les05-Samenvatting.md) | 2 | 📋 Samenvatting |
-| 06 | [Next.js Fundamentals 1: SSR & Routing](Samenvattingen/Les06-Samenvatting.md) | 2 | 📋 Samenvatting |
-| 07 | [Next.js Fundamentals 2: API Routes & Data Fetching](Samenvattingen/Les07-Samenvatting.md) | 2 | 📋 Samenvatting |
-| 08 | [Database Principles](Samenvattingen/Les08-Samenvatting.md) | 2 | 📋 Samenvatting |
-| 09 | [Supabase Basics](Samenvattingen/Les09-Samenvatting.md) | 2 | 📋 Samenvatting |
-| 10 | [Full-Stack Mini Project](Samenvattingen/Les10-Samenvatting.md) | 3 | 📋 Samenvatting |
-| 11 | [Hands-on: Van Idee naar Prototype](Samenvattingen/Les11-Samenvatting.md) | 3 | 📋 Samenvatting |
-| 12 | [Introduction to Cursor](Samenvattingen/Les12-Samenvatting.md) | 3 | 📋 Samenvatting |
-| 13 | [Prompt Engineering & Custom GPTs](Samenvattingen/Les13-Samenvatting.md) | 4 | 📋 Samenvatting |
-| 14 | [Project Setup & Repository Structure](Samenvattingen/Les14-Samenvatting.md) | 4 | 📋 Samenvatting |
-| 15 | [MCP & Context Management](Samenvattingen/Les15-Samenvatting.md) | 4 | 📋 Samenvatting |
-| 16 | [Mastering Cursor](Samenvattingen/Les16-Samenvatting.md) | 4 | 📋 Samenvatting |
-| 17 | [Vercel AI SDK, Tool Calling & Agents](Samenvattingen/Les17-Samenvatting.md) | 4 | 📋 Samenvatting |
-| 18 | [Deployment & Production](Samenvattingen/Les18-Samenvatting.md) | 4 | 📋 Samenvatting |
+| 06 | [Next.js 1: Pages, Routing & Layouts](Samenvattingen/Les06-Samenvatting.md) | 2 | 📋 Samenvatting |
+| 07 | [Next.js 2: Server Components & Data Fetching](Samenvattingen/Les07-Samenvatting.md) | 2 | 📋 Samenvatting |
+| 08 | [Next.js 3: API Routes & Server Actions](Samenvattingen/Les08-Samenvatting.md) | 2 | 📋 Samenvatting |
+| 09 | [Database Principles & Supabase Setup](Samenvattingen/Les09-Samenvatting.md) | 2 | 📋 Samenvatting |
+| 10 | [Supabase: Auth & CRUD](Samenvattingen/Les10-Samenvatting.md) | 2 | 📋 Samenvatting |
+| 11 | [Full-Stack Mini Project](Samenvattingen/Les11-Samenvatting.md) | 3 | 📋 Samenvatting |
+| 12 | [Styling: Tailwind CSS & shadcn/ui](Samenvattingen/Les12-Samenvatting.md) | 3 | 📋 Samenvatting |
+| 13 | [Hands-on: Van Idee naar Prototype](Samenvattingen/Les13-Samenvatting.md) | 3 | 📋 Samenvatting |
+| 14 | [Project Setup & AI Config (.cursorrules, claude.md)](Samenvattingen/Les14-Samenvatting.md) | 3 | 📋 Samenvatting |
+| 15 | [Vercel AI SDK, Tool Calling & Agents](Samenvattingen/Les15-Samenvatting.md) | 4 | 📋 Samenvatting |
+| 16 | [AI Chat Interface & Streaming](Samenvattingen/Les16-Samenvatting.md) | 4 | 📋 Samenvatting |
+| 17 | [Eindproject Werkdag](Samenvattingen/Les17-Samenvatting.md) | 4 | 📋 Samenvatting |
+| 18 | [Deployment, Presentaties & Evaluatie](Samenvattingen/Les18-Samenvatting.md) | 4 | 📋 Samenvatting |
---
@@ -46,12 +48,12 @@ Een 18-weekse cursus die studenten meeneemt van AI-beginner naar AI-powered deve
| Deel | Lessen | Tools | Kosten |
|------|--------|-------|--------|
-| Deel 1: AI Foundations | 1-4 | ChatGPT, v0.dev, OpenCode Desktop App, WebStorm | Gratis (WebStorm via school) |
-| Deel 2: Technical Foundations | 5-9 | TypeScript, Next.js, React Query, Supabase | Gratis |
-| Deel 3: Integration & AI Tooling | 10-12 | Next.js, Supabase, Cursor | Free tier beschikbaar |
-| Deel 4: Advanced AI Features | 13-18 | Cursor, Custom GPTs, Claude Projects, Vercel AI SDK, Tool Calling, Agents | Free tier beschikbaar |
+| Deel 1: AI Foundations | 1-4 | ChatGPT, v0.dev, OpenCode, **Cursor** | Gratis (Cursor Student Plan) |
+| Deel 2: Technical Foundations | 5-10 | TypeScript, Next.js, Supabase | Gratis |
+| Deel 3: Full-Stack Development | 11-14 | Next.js, Supabase, Tailwind, **shadcn/ui**, Cursor | Gratis |
+| Deel 4: Advanced AI & Deployment | 15-18 | Cursor, Vercel AI SDK, Vercel | Gratis (Cursor Student Plan) |
-**Eindopdracht:** Cursor (free tier voldoende)
+**Eindopdracht:** Cursor (Student Plan - gratis Pro voor 1 jaar)
---
@@ -59,7 +61,7 @@ Een 18-weekse cursus die studenten meeneemt van AI-beginner naar AI-powered deve
**4 lessen · 7 EC**
-Kennismaking met AI, LLMs en de basis van AI-assisted development.
+Kennismaking met AI, LLMs en de basis van AI-assisted development met Cursor.
---
@@ -98,30 +100,30 @@ Kennismaking met AI, LLMs en de basis van AI-assisted development.
---
-### Les 2: AI Code Assistants en OpenCode
+### Les 2: AI Code Assistants (OpenCode → Cursor)
-**Tools:** OpenCode Desktop App, OpenCode Zen (gratis AI), Git, Vercel
+**Tools:** OpenCode Desktop App, Cursor (Preview), Git, Vercel
**Docent vertelt:**
-- Wat is OpenCode? Open-source AI coding assistant met 60.000+ GitHub stars
-- Terminal versie (korte demo) vs Desktop App (wat we gebruiken)
-- OpenCode Zen: gratis AI modellen, geen API key nodig
-- Keyboard shortcuts: `Ctrl+K` (commands), `@` (file search), `Tab` (Build/Plan mode)
-- Build vs Plan mode: wanneer welke gebruiken
+- Recap: OpenCode workflow uit Les 1 huiswerk
+- Introduceer Cursor: professionele AI editor
+- Cursor vs OpenCode: krachten en zwakten
+- Installatie en configuratie
+- Keyboard shortcuts: `Tab` (autocomplete), `Ctrl+K` (inline edit), `Ctrl+L` (chat)
- De deployment workflow: git push → Vercel auto-deploy
**Studenten doen:**
-- Korte terugblik op Les 1 (v0 workflow)
-- OpenCode Desktop App installeren en OpenCode Zen configureren
-- Bestaand v0 project openen en lokaal draaien (in ingebouwde terminal)
-- Met OpenCode een nieuwe pagina maken + link op homepage
+- OpenCode Desktop App gebruiken voor continue integratie
+- Cursor installeren en eerste keer verkennen
+- Bestaand v0 project openen in Cursor
+- Met Cursor een nieuwe pagina maken + link op homepage
- Deployen via git push → Vercel
**Lesopdracht:** Maak een nieuwe pagina in je v0 project. Clone je repo, draai lokaal, maak een pagina (/about, /services, of /contact) met componenten, voeg link op homepage toe, deploy minimaal 2x naar Vercel.
**Huiswerk:**
- Maak nieuw project vanaf scratch met `create-next-app`
-- Bouw 3 componenten met OpenCode (navbar, hero, + keuze)
+- Bouw 3 componenten met Cursor (navbar, hero, + keuze)
- Push naar GitHub, koppel aan Vercel
- Schrijf reflectie (300 woorden)
@@ -137,27 +139,29 @@ Kennismaking met AI, LLMs en de basis van AI-assisted development.
---
-### Les 3: AI Ethics, Privacy & Security + WebStorm Integration
+### Les 3: Cursor Setup & Basics
-**Tools:** WebStorm (school licentie), OpenCode plugin, Git
+**Tools:** Cursor, Git, GitHub
**Docent vertelt:**
-- Privacy risico's: wat NOOIT te delen met AI (API keys, credentials, client data)
-- Data ownership bij AI services - waar gaat je code naartoe?
-- Security vulnerabilities in AI-generated code (SQL injection, XSS)
-- GDPR/AVG compliance basics
-- WebStorm als professionele IDE
+- Cursor overview: tab completion, inline edits, chat, composer
+- Free tier vs Student Plan vs Pro
+- Installatie en first-time setup
+- Keyboard shortcuts: `Tab` (autocomplete), `Ctrl+K` (inline), `Ctrl+L` (chat), `Ctrl+Shift+L` (composer)
+- AI model keuze: wanneer Haiku vs Sonnet?
+- Privacy & security: hoe Cursor data behandelt
+- `.cursorrules` introduceer: custom instructions voor je project
**Studenten doen:**
-- **Groepsdiscussie:** Bespreek klassikaal de blog posts uit Les 2 - wat waren de ervaringen met AI-assisted coding?
-- Security workshop: identificeer problemen in AI-generated code
-- Maak persoonlijke "AI Safety Checklist"
-- WebStorm installeren met school licentie
-- OpenCode plugin configureren in WebStorm
+- **Groepsdiscussie:** Bespreek klassikaal ervaringen van vorige les - wat vond je van Cursor vs OpenCode?
+- Cursor installeren en Student Plan activeren
+- Een van je Les 2 projecten openen in Cursor
+- Tab completion, Ctrl+K, en Ctrl+L uitproberen
+- Begint `.cursorrules` bestand voor je project
-**Lesopdracht:** Security audit van AI-generated code (vind 5 problemen), setup WebStorm met OpenCode plugin, maak je eerste project in WebStorm.
+**Lesopdracht:** Open je Les 2 project in Cursor, voeg 3 nieuwe features toe (elk met ander shortcut: Tab, Ctrl+K, Chat), test telkens of het werkt, noteer: welke shortcut voelt het nuttigst?
-**Huiswerk:** Bouw secure feature (contact form of auth flow), review met je Safety Checklist, schrijf uitgebreide README met gevonden issues en fixes.
+**Huiswerk:** Experimenteer met Cursor Composer (Ctrl+Shift+L) op een bestaande component, schrijf reflectie (300 woorden) vergelijk je Cursor/OpenCode ervaringen, maak start-`.cursorrules` voor je eindproject.
[→ Ga naar Les 3](Samenvattingen/Les03-Samenvatting.md)
@@ -191,7 +195,7 @@ Kennismaking met AI, LLMs en de basis van AI-assisted development.
# Deel 2: Technical Foundations
-**5 lessen · 8 EC**
+**6 lessen · 10 EC**
Stevige technische basis: TypeScript, Next.js, databases en Supabase.
@@ -228,7 +232,7 @@ Stevige technische basis: TypeScript, Next.js, databases en Supabase.
---
-### Les 6: Next.js Fundamentals 1 - SSR & Routing
+### Les 6: Next.js 1: Pages, Routing & Layouts
**Tools:** Next.js 14, OpenCode/WebStorm, Vercel
@@ -262,137 +266,167 @@ Stevige technische basis: TypeScript, Next.js, databases en Supabase.
---
-### Les 7: Next.js Fundamentals 2 - API Routes & Data Fetching
+### Les 7: Next.js 2: Server Components & Data Fetching
-**Tools:** Next.js 14, React Query (TanStack Query), OpenCode
+**Tools:** Next.js 14, React Query (TanStack Query), Cursor
**Docent vertelt:**
- Server Components vs Client Components
- 'use client' directive: wanneer en waarom
- Data fetching in Server Components (async/await)
-- API Routes: Route Handlers in App Router
-- GET, POST, PUT, DELETE requests
- React Query: waarom, installatie, basics
- useQuery en useMutation hooks
-- Caching en revalidation basics
+- Caching en revalidation strategies
**Studenten doen:**
- Server Component met data fetching maken
-- API route schrijven
-- Client Component met React Query
-- CRUD operations via API routes
+- Client Component met React Query maken
+- useQuery en useMutation implementeren
+- Caching strategieën testen
**Lesopdracht:**
-1. Maak `/api/products` route met GET en POST
-2. Bouw Server Component die products fetcht
-3. Installeer React Query, maak QueryClientProvider
-4. Bouw Client Component met useQuery
-5. Implementeer useMutation voor product toevoegen
+1. Maak Server Component met async data fetching
+2. Bouw Client Component met React Query
+3. Implementeer useQuery voor producten
+4. Voeg useMutation toe voor user interactions
+5. Test caching behavior
-**Huiswerk:** Voeg PUT en DELETE toe aan API, implementeer optimistic updates met React Query, bouw complete CRUD interface.
+**Huiswerk:** Experimenteer met revalidation strategies, voeg error boundaries toe, bouw loading states voor betere UX.
[→ Ga naar Les 7](Samenvattingen/Les07-Samenvatting.md)
---
-### Les 8: Database Principles
+### Les 8: Next.js 3: API Routes & Server Actions
-**Tools:** Diagramming tool (draw.io/Excalidraw), Supabase (ter voorbereiding)
+**Tools:** Next.js 14, Cursor, Supabase
**Docent vertelt:**
-- Wat is een relationele database?
-- Tabellen, rijen (records), kolommen (fields)
-- Primary Keys: unieke identificatie
-- Foreign Keys: relaties tussen tabellen
-- Relatie types: one-to-one, one-to-many, many-to-many
-- Normalisatie basics: waarom data niet dupliceren
-- Data types: text, integer, boolean, timestamp, uuid
-- NULL values en defaults
-- Indexen: waarom en wanneer
+- API Routes: Route Handlers in App Router
+- HTTP methods: GET, POST, PUT, DELETE
+- Server Actions: form actions en mutations
+- Request/response handling
+- Error handling in API routes
+- Middleware basics (authentication)
**Studenten doen:**
-- Database schema tekenen voor simpel project
-- Relaties identificeren en documenteren
-- Normalisatie oefening: slechte structuur verbeteren
-- Primary en Foreign Keys bepalen
+- API routes schrijven voor CRUD operaties
+- Server Actions implementeren voor forms
+- Request validation toevoegen
+- Error handling testen
+- Authentication middleware bouwen
**Lesopdracht:**
-1. Teken database schema voor "Blog met Comments" (users, posts, comments)
-2. Identificeer alle relaties en key types
-3. Normaliseer een "slechte" database structuur (gegeven)
-4. Schrijf data types en constraints op
-5. Bereid voor: welke tabellen heeft jouw eindproject nodig?
+1. Maak `/api/items` routes (GET, POST, PUT, DELETE)
+2. Bouw Server Actions voor form submissions
+3. Voeg request validation toe met Zod
+4. Implementeer error handling
+5. Test all CRUD operations
-**Huiswerk:** Maak volledig database schema voor je eindproject, documenteer alle relaties, bereid Supabase account aan voor volgende les.
+**Huiswerk:** Voeg authentication middleware toe, implementeer optimistic UI updates, schrijf API route tests.
[→ Ga naar Les 8](Samenvattingen/Les08-Samenvatting.md)
---
-### Les 9: Supabase Basics
+### Les 9: Database Principles & Supabase Setup
-**Tools:** Supabase, Next.js, OpenCode
+**Tools:** Diagramming tool (draw.io/Excalidraw), Supabase, Cursor
**Docent vertelt:**
+- Wat is een relationele database? Tabellen, rijen, kolommen
+- Primary Keys, Foreign Keys en relaties
+- Relatie types: one-to-one, one-to-many, many-to-many
+- Normalisatie basics
- Wat is Supabase? (database + auth in één)
-- Supabase project aanmaken (live demo)
+- Supabase project setup
- Table Editor: tabellen maken zonder SQL
-- Je database schema van vorige les implementeren
-- Environment variables: wat, waarom, hoe
-- Supabase client setup
-- CRUD operaties uitgelegd
-- Auth UI component (plug & play login)
+- Environment variables configuratie
**Studenten doen:**
-- **Groepsdiscussie:** Bespreek database schemas - wie heeft welke structuur gekozen en waarom?
+- Database schema tekenen voor eigen project
- Supabase account en project aanmaken
-- Tabellen maken via UI (gebaseerd op Les 8 schema)
+- Tabellen maken via UI (op basis van eigen schema)
- `.env.local` configureren
-- Supabase client maken
-- Data ophalen en tonen
-- Auth toevoegen
+- Supabase client instellen
**Lesopdracht:**
-1. Maak Supabase project
-2. Maak je tabellen via Table Editor (uit Les 8)
-3. Configureer `.env.local`
-4. Bouw Todo app: lijst tonen, toevoegen, afvinken, verwijderen
-5. Voeg login toe met Auth UI
+1. Teken database schema voor jouw eindproject
+2. Maak Supabase project
+3. Implementeer je tabellen in Table Editor
+4. Configureer `.env.local`
+5. Test connectie met Supabase client
-**Huiswerk:** Extend Todo app (filtering, user-specifieke todos), deploy naar Vercel met env vars, test in productie.
+**Huiswerk:** Refine je database schema, voeg meer relaties toe, dokumenteer decisions, bereid Les 10 vor.
[→ Ga naar Les 9](Samenvattingen/Les09-Samenvatting.md)
---
-# Deel 3: Integration & AI Tooling
+### Les 10: Supabase: Auth & CRUD
-**3 lessen · 5 EC**
+**Tools:** Supabase, Next.js, Cursor, React Query
-Integratie van alle geleerde technieken en introductie van professionele AI tools.
+**Docent vertelt:**
+- Supabase Authentication: email/password, OAuth basics
+- User sessions en JWT tokens
+- Row Level Security (RLS) policies
+- CRUD operaties in Supabase
+- Realtime subscriptions introduceer
+- Error handling en validation
+- Best practices: secrets, security
+
+**Studenten doen:**
+- **Groepsdiscussie:** Database schemas van vorige les - aanpassingen nodig?
+- Auth setup met email/password
+- User sessions implementeren
+- RLS policies schrijven
+- CRUD app bouwen (Todo, Notes, Bookmarks)
+- Realtime features testen
+
+**Lesopdracht:**
+1. Setup Supabase Auth (email/password)
+2. Maak login/signup forms
+3. Implementeer user sessions
+4. Schrijf RLS policies voor je tabellen
+5. Bouw complete CRUD app met auth
+
+**Huiswerk:** Add OAuth provider (Google/GitHub), implementeer logout en password reset, deploy naar Vercel met env secrets.
+
+[→ Ga naar Les 10](Samenvattingen/Les10-Samenvatting.md)
---
-### Les 10: Full-Stack Mini Project
+# Deel 3: Full-Stack Development
-**Tools:** VS Code, Supabase, Browser DevTools
+**4 lessen · 7 EC**
+
+Integratie van alle geleerde technieken, styling en voorbereiding op eindproject.
+
+---
+
+### Les 11: Full-Stack Mini Project
+
+**Tools:** Cursor, Supabase, Browser DevTools
**Docent vertelt:**
-- Je hebt nu alle bouwstenen: TypeScript, Next.js, Supabase
+- Je hebt nu alle bouwstenen: TypeScript, Next.js, Supabase, Auth
- Vandaag combineren we alles in een werkende mini-app
- Geen nieuwe concepten - alleen integratie en toepassing
+- Probleemoplossing in real time
**Studenten doen:**
-- **Groepsdiscussie:** Bespreek Supabase ervaringen uit Les 9 - welke uitdagingen bij auth en RLS?
-- Bookmark manager bouwen: login, bookmarks toevoegen/bekijken/verwijderen
-- Alle geleerde technieken combineren
-- Zelfstandig integratieproblemen oplossen
+- **Groepsdiscussie:** Bespreek auth & CRUD ervaringen uit Les 10
+- Mini-project kiezen: Bookmarks, Todo's, Notes, of Recipe Collection
+- Met Cursor alle onderdelen kombinieren: auth, database, API, UI
+- Zelfstandig problemen oplossen
+- Polish en afronden
-**Lesopdracht:** Bouw een Personal Bookmarks app met login, CRUD operaties, en RLS. Checkpoints: 30 min setup, 60 min auth, 90 min CRUD, 120 min delete, 150 min polish.
+**Lesopdracht:** Bouw een volledige mini-app met: login, CRUD operaties, RLS security. Checkpoints: 30 min setup, 60 min auth, 90 min CRUD, 120 min testing, 150 min polish.
-**Huiswerk:** Reflectie schrijven (200 woorden): wat ging goed, waar liep je vast. Maak lijst van 3 verbeterpunten voor je code.
+**Huiswerk:** Verbeterpunten toevoegen, reflectie schrijven (200 woorden), repo opruimen, voorbereiden op styling.
-[→ Ga naar Les 10](Samenvattingen/Les10-Samenvatting.md)
+[→ Ga naar Les 11](Samenvattingen/Les11-Samenvatting.md)
---
@@ -428,235 +462,258 @@ Integratie van alle geleerde technieken en introductie van professionele AI tool
---
-### Les 12: Introduction to Cursor
+### Les 12: Styling: Tailwind CSS & shadcn/ui
-**Tools:** Cursor
+**Tools:** Tailwind CSS, shadcn/ui, Cursor
**Docent vertelt:**
-- Waarom Cursor? De professionele AI editor
-- Free tier vs Pro: wat krijg je?
-- Core features: Tab completion, CMD+K, Chat, Composer
-- Cursor vs OpenCode: wanneer welke?
-- Live demo van Cursor workflow
+- Waarom Tailwind? Utility-first CSS approach
+- Tailwind setup in Next.js (meestal al aanwezig)
+- Basis utilities: flexbox, grid, spacing, colors
+- Tailwind components: buttons, cards, forms
+- Wat is shadcn/ui? High-quality component library
+- shadcn/ui installatie en configuratie
+- Theme customization
+- Dark mode setup
**Studenten doen:**
-- Cursor installeren
-- Bestaand project openen in Cursor
-- Tab completion ervaren
-- CMD+K voor inline edits
-- Chat voor vragen over code
-- Composer voor multi-file changes
+- Tailwind basix oefenen op bestaande components
+- shadcn/ui components installeren en gebruiken
+- Custom Tailwind themes making
+- Bestaande mini-project restylen met Tailwind + shadcn
+- Dark mode implementeren
**Lesopdracht:**
-1. Installeer Cursor (free tier)
-2. Open je Todo app in Cursor
-3. Voeg nieuwe feature toe met alleen Cursor (bijv. due dates)
-4. Gebruik elke feature minstens 3x: Tab, CMD+K, Chat, Composer
-5. Noteer: wat werkt goed, wat is wennen?
+1. Refactor je mini-project UI met Tailwind classes
+2. Installeer 5 shadcn/ui components (Button, Card, Input, etc.)
+3. Cre je eigen color theme in Tailwind
+4. Implementeer dark mode toggle
+5. Polish: zorg dat het er professioneel uitziet
-**Huiswerk:** Bouw complete mini-feature met Cursor, vergelijk ervaring met OpenCode, schrijf reflectie (400 woorden).
+**Huiswerk:** Refactor alle components, add animations met Tailwind, explore shadcn variations, dokumenteer styling decisions.
[→ Ga naar Les 12](Samenvattingen/Les12-Samenvatting.md)
---
-### Les 13: Prompt Engineering & Custom GPTs
+### Les 13: Hands-on: Van Idee naar Prototype
-**Tools:** ChatGPT (Custom GPTs), Claude (Projects)
+**Tools:** Cursor, ChatGPT (voor planning)
**Docent vertelt:**
-- Advanced prompt engineering: structured output, constraints, iterative refinement
-- Custom GPTs: hoe maak je ze, wanneer gebruiken
-- Claude Projects: custom instructions + project knowledge
-- Vergelijking: Custom GPT vs Claude Project
-- Prompt template library opbouwen
+- Hoe ga je van vaag idee naar concrete features?
+- Feature breakdown methode
+- Component thinking: UI opdelen in herbruikbare stukken
+- MVP (Minimum Viable Product) denken
+- User stories schrijven
+- Efficiënt met Cursor samenwerken voor iteratie
**Studenten doen:**
-- **Groepsdiscussie:** Bespreek Cursor reflecties - hoe verschilt het van OpenCode?
-- Custom GPT maken voor code review
-- Claude Project opzetten voor eigen project
-- Beide testen en vergelijken
-- Persoonlijke prompt library starten
+- **Groepsdiscussie:** Reflectie op styling - waar ben je tevreden mee?
+- Kiezen van eindproject idee (of voorgestelde opties)
+- Met AI feature breakdown maken
+- Component structuur ontwerpen
+- Start codebase met folder structure
+- Eerste components bouwen
-**Lesopdracht:**
-1. Maak Custom GPT "Code Reviewer" met specifieke checklist
-2. Maak Claude Project voor je project met context
-3. Test beide met dezelfde code
-4. Documenteer: welke is beter waarvoor?
+**Voorbeeld projecten:**
+- E-commerce product filter & search
+- Recipe planner met shoppinglist
+- Expense tracker met analytics
+- Blog platform met comments
-**Huiswerk:** Optimaliseer je AI assistants, maak persoonlijke prompt library, schrijf reflectie over Custom GPTs vs Claude Projects.
+**Lesopdracht:** Kies eindproject idee, maak feature breakdown met AI, ontwerp component tree, zet up codebase, bouw eerste 2-3 components.
+
+**Huiswerk:** Bouw meer components, integreer eerste data, documenteer architecture decisions, voorbereiding Les 14.
[→ Ga naar Les 13](Samenvattingen/Les13-Samenvatting.md)
---
-# Deel 4: Advanced AI Features
+# Deel 4: Advanced AI & Deployment
-**6 lessen · 10 EC**
+**4 lessen · 6 EC**
-Professionele workflows, advanced Cursor, AI features bouwen en deployment.
+AI-powered features, streaming, finale afronding en deployment.
---
-### Les 14: Project Setup & Repository Structure
+### Les 14: Project Setup & AI Config (.cursorrules, claude.md)
**Tools:** Cursor, Git, GitHub
**Docent vertelt:**
-- Waarom goede project structuur cruciaal is voor AI
-- De ideale folder structuur voor Next.js + Cursor
-- .cursorrules files: wat zijn ze, hoe schrijf je ze
-- docs/ folder: PROMPT-LOG, AI-DECISIONS, PROJECT-BRIEF
-- Environment variables: lokaal vs productie
-- README best practices
+- Waarom goede project structuur cruciaal is voor AI samenwerking
+- De ideale folder structuur voor Next.js + AI tools
+- `.cursorrules` files: syntax, best practices, examples
+- `claude.md`: project documentation voor Claude
+- `docs/` folder: AI-DECISIONS.md, ARCHITECTURE.md
+- Environment variables: lokaal vs productie setup
+- `.gitignore` en `.cursorignore` voor AI tools
+- README en documentatie best practices
**Studenten doen:**
-- Eindproject repository aanmaken
-- Folder structuur opzetten
-- .cursorrules files schrijven
-- docs/ templates invullen
-- Eerste commit en push
+- Eindproject repository aanmaken/opschonen
+- Folder structuur optimaliseren
+- Uitgebreide `.cursorrules` schrijven
+- Project documentatie in claude.md
+- docs/ folder vullen
+- Eerste commits pushen
**Lesopdracht:**
-1. `npx create-next-app` voor je eindproject
-2. Maak folder structuur aan (zie template)
-3. Schrijf `general.mdc` met jouw project regels
-4. Vul PROJECT-BRIEF.md volledig in
-5. Push naar GitHub
+1. Review folder structuur van je huidige project
+2. Schrijf comprehensive `.cursorrules` (50+ lines)
+3. Maak `claude.md` met project overview
+4. Vul `docs/AI-DECISIONS.md` in
+5. Push naar GitHub met cleane git history
-**Huiswerk:** Voeg extra .cursorrules files toe, start PROMPT-LOG.md, maak eerste components met Cursor.
-
-> 💡 **Eindopdracht:** Dit is een goed moment om te starten met deelopdracht 1. Je kunt de setup die je vandaag maakt direct gebruiken voor je eindproject.
+**Huiswerk:** Polish documentatie, add architecture diagrams, test .cursorrules in Cursor, prepare voor Deel 4.
[→ Ga naar Les 14](Samenvattingen/Les14-Samenvatting.md)
---
-### Les 15: MCP & Context Management
+### Les 15: Vercel AI SDK, Tool Calling & Agents
-**Tools:** Cursor, Claude Desktop, MCP servers
+**Tools:** Vercel AI SDK, Zod, Externe APIs, Cursor
**Docent vertelt:**
-- Wat is MCP (Model Context Protocol)?
-- MCP servers: filesystem, GitHub, databases
-- Claude Desktop + MCP configureren
-- Context windows: wat zijn tokens, waarom limiet?
-- Context strategieën: relevante files, pruning
-- .cursorignore voor grote projecten
+- Vercel AI SDK basics: useChat, streaming
+- Tool Calling: AI laat externe APIs aanroepen
+- Agents: AI voert autonome multi-step taken uit
+- Zod voor schema validation
+- System prompts schrijven
+- Error handling en best practices
+- Gratis APIs voor projecten
**Studenten doen:**
-- MCP servers configureren in Claude Desktop
-- Filesystem MCP testen
-- GitHub MCP verkennen
-- Context optimalisatie oefenen
-- .cursorignore opzetten
+- AI SDK + Zod installeren
+- Chat interface bouwen met streaming
+- Tools definiëren voor externe API
+- Tool calling implementeren
+- Simple agent bouwen
**Lesopdracht:**
-1. Configureer Claude Desktop met filesystem MCP
-2. Test: laat Claude je project analyseren
-3. Configureer GitHub MCP
-4. Maak .cursorignore voor je project
-5. Experimenteer: wat gebeurt er met grote vs kleine context?
+1. Installeer Vercel AI SDK en Zod
+2. Bouw chat interface met streaming
+3. Definieer minimaal 2 tools
+4. Implementeer tool calling
+5. Test met externe API
-**Huiswerk:** Voeg extra MCP server toe (naar keuze), optimaliseer je project voor AI context, documenteer in AI-DECISIONS.md.
+**Huiswerk:** Add more tools, implementeer agents met `maxSteps`, documenteer in AI-DECISIONS.md, integreer in eindproject.
[→ Ga naar Les 15](Samenvattingen/Les15-Samenvatting.md)
---
-### Les 16: Mastering Cursor
+### Les 16: AI Chat Interface & Streaming
-**Tools:** Cursor, Claude models
+**Tools:** Vercel AI SDK, Cursor, Browser APIs
**Docent vertelt:**
-- Model keuze: wanneer Haiku vs Sonnet vs Opus?
-- Composer Mode diepgaand: multi-file generatie
-- @ mentions: @Files, @Folders, @Code, @Docs, @Web
-- Codebase indexing optimaliseren
-- .cursorrules advanced: meerdere files, condities
-- Cost management: tokens monitoren
+- Streaming responses: hoe werkt het?
+- useChat hook: state management
+- Chat UI patterns: message history, loading states
+- Markdown rendering in chat
+- Error states en edge cases
+- User input handling en sanitization
+- Performance optimalisatie
**Studenten doen:**
-- Verschillende models testen op zelfde taak
-- Complexe feature bouwen met Composer
-- @ mentions effectief gebruiken
-- .cursorrules uitbreiden en testen
+- Chat UI bouwen met useChat
+- Streaming responses implementeren
+- Message history managen
+- Error handling toevoegen
+- Styling met Tailwind
+- In eindproject integreren
-**Lesopdracht:** Bouw complexe Multi-Step Form Wizard met Cursor Composer (4 stappen, progress indicator, validation, localStorage persistence).
+**Lesopdracht:**
+1. Bouw chat interface met Vercel AI SDK
+2. Implementeer streaming responses
+3. Maak message history persistent (localStorage of DB)
+4. Voeg error handling toe
+5. Style met Tailwind + shadcn/ui
-**Huiswerk:** Research .cursorrules voorbeelden online, schrijf uitgebreide .cursorrules voor jouw eindproject, test en itereer.
-
-> 💡 **Eindopdracht check-in:** Hoe gaat je eindproject? Loop je ergens tegenaan? Dit is een goed moment om vragen te stellen en feedback te krijgen.
+**Huiswerk:** Add chat features (clear history, export, favorites), deploy naar Vercel, gather user feedback.
[→ Ga naar Les 16](Samenvattingen/Les16-Samenvatting.md)
---
-### Les 17: Vercel AI SDK, Tool Calling & Agents
+### Les 17: Eindproject Werkdag
-**Tools:** Vercel AI SDK, Zod, Externe APIs (TheCocktailDB, TheMealDB, etc.)
+**Tools:** Cursor, Vercel, Supabase, alle vorige tools
**Docent vertelt:**
-- Vercel AI SDK basics: useChat, streaming
-- **Tool Calling:** AI laat externe APIs aanroepen
-- **Agents:** AI voert autonome multi-step taken uit met `maxSteps`
-- Gratis APIs voor projecten (TheCocktailDB, TheMealDB, Open Trivia DB)
-- Best practices voor tool design en system prompts
+- Q&A session: wat loop je tegen aan?
+- Cursor tips & tricks review
+- Debugging strategies
+- Performance optimization basics
+- Deployment troubleshooting
+- Final checklist review
**Studenten doen:**
-- AI SDK + Zod installeren
-- Tools definiëren voor externe API
-- Tool calling implementeren
-- Agent bouwen met `maxSteps`
-- Error handling toevoegen
+- **Volle dag werken aan eindproject**
+- Docent beschikbaar voor individuele hulp
+- Features afmaken
+- Testing en bug fixes
+- Voorbereiding voor presentatie
+- Code review voorbereiden
**Lesopdracht:**
-1. Kies een gratis API (cocktails, recepten, of quiz)
-2. Implementeer minimaal 3 tools
-3. Bouw een agent met `maxSteps: 5`
-4. Test: "Plan een menu voor..." of vergelijkbare complexe taak
+1. Alle features afmaken van je eindproject
+2. Testing: user flows doorlopen
+3. Bug fixes en edge cases
+4. Code cleanup en refactoring
+5. Deploy naar Vercel
-**Huiswerk:** Bouw agent voor eindproject met externe API, minimaal 3 tools, documenteer design in AI-DECISIONS.md.
-
-> 💡 **Eindopdracht:** Heb je al nagedacht over je AI feature? Bespreek je idee met de docent en klasgenoten.
+**Huiswerk:** Laatste fixes, presentatie voorbereiden, documentatie finaliseren, demo video opnemen (optioneel).
[→ Ga naar Les 17](Samenvattingen/Les17-Samenvatting.md)
---
-### Les 18: Deployment & Production
+### Les 18: Deployment, Presentaties & Evaluatie
**Tools:** Vercel, GitHub, Supabase
-**Eindopdracht kickoff (15 min):**
-- Eindopdracht requirements doornemen
-- Beoordelingscriteria uitleggen
-- Timeline en deadlines
-- Vragen beantwoorden
+**Deployment Setup (30 min):**
+- Vercel deployment flow
+- Environment variables setup
+- Supabase productie configuration
+- Custom domains (optioneel)
+- Performance optimization (Lighthouse)
+- Security checklist
+
+**Presentaties & Evaluatie (90 min):**
+- Iedereen presenteert eindproject (5 min per student)
+- Live demo
+- Vragen van docent en klasgenoten
+- Feedback ontvangen
+- Course evaluatie
**Docent vertelt:**
-- Vercel deployment flow
-- Environment variables in Vercel
-- Supabase productie setup
-- Custom domains
-- Performance basics (Lighthouse)
-- Security checklist voor productie
+- Best practices deployment
+- Performance monitoring
+- Error tracking en logging
+- Continuous deployment setup
+- Next steps: career paths, advanced topics
**Studenten doen:**
-- Eindproject deployen naar Vercel
-- Env vars configureren
-- Supabase redirect URLs instellen
-- Lighthouse audit runnen
+- Final deployment naar Vercel
+- Performance audit (Lighthouse)
- Security checklist doorlopen
+- Presentatie geven (5 min)
+- Course feedback geven
**Lesopdracht:**
-1. Deploy eindproject naar Vercel
-2. Configureer alle env vars
-3. Test volledige app in productie
-4. Run Lighthouse, fix issues tot score >80
-5. Doorloop security checklist
+1. Deploy eindproject productie
+2. Configure environment variables
+3. Run Lighthouse audit (score >80)
+4. Complete security checklist
+5. Present your project
-**Huiswerk:** Custom domain toevoegen (optioneel), performance optimaliseren, documentatie updaten met productie URL, werk aan eindopdracht.
+**Huiswerk:** N.A. - Course afgerond!
[→ Ga naar Les 18](Samenvattingen/Les18-Samenvatting.md)