fix: debug challenge

This commit is contained in:
Tim Rijkse
2026-02-24 21:16:03 +01:00
parent 35bbc50c06
commit db43842d51
13 changed files with 3933 additions and 253 deletions

563
readme.md
View File

@@ -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)