7.0 KiB
Les 18: Deployment & Production + Eindopdracht
Hoofdstuk
Deel 4: Advanced AI Features (Les 13-18)
Beschrijving
Deploy je eindproject naar productie. Leer environment variables, Vercel deployment, en basis performance optimalisatie. Bespreking van de eindopdracht requirements en afrondende werksessie.
Te Behandelen
Groepsdiscussie (15 min)
Bespreek klassikaal de AI feature ervaringen uit Les 17 - welke system prompts werkten goed en welke challenges kwamen jullie tegen?
Vercel Deployment Flow
Hoe Vercel werkt:
- Connect GitHub repository
- Push naar main → automatische deploy
- Push naar andere branch → preview URL
- Alles automatisch (build, SSL, CDN)
Waarom Vercel voor Next.js:
- Gemaakt door dezelfde makers
- Zero-config deployment
- Gratis tier ruim voldoende
- Automatische HTTPS
- Global CDN
Environment Variables in Vercel
Lokaal (.env.local) vs Productie (Vercel Dashboard):
| Waar | Bestand/Locatie | Voorbeeld |
|---|---|---|
| Lokaal | .env.local |
Development |
| Vercel | Dashboard → Settings → Env Vars | Production |
Stap voor stap:
- Ga naar je Vercel project
- Settings → Environment Variables
- Voeg toe:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYOPENAI_API_KEY
- Selecteer environment (Production, Preview, Development)
- Save & Redeploy
Let op:
NEXT_PUBLIC_prefix = zichtbaar in browser- Zonder prefix = alleen server-side (API routes)
Supabase Productie Setup
Redirect URLs configureren:
- Ga naar Supabase → Authentication → URL Configuration
- Voeg toe bij "Redirect URLs":
https://jouw-app.vercel.app/**https://jouw-app.vercel.app
Waarom:
- Auth redirects werken alleen naar toegestane URLs
- Wildcards (
**) voor sub-routes
Deployment Checklist
Voor deployment:
npm run buildwerkt lokaal- Geen TypeScript errors
- Environment variables gedocumenteerd in
.env.example .gitignorebevat.env*.local- README up-to-date
Na deployment:
- App laadt correct
- Auth werkt (login/logout)
- Data wordt opgehaald uit Supabase
- AI features werken (indien van toepassing)
- Geen console errors
Performance Basics
Lighthouse Audit:
- Open Chrome DevTools
- Tab "Lighthouse"
- Klik "Analyze page load"
- Aim for score >80 in elke categorie
Quick wins:
- Gebruik Next.js
Imagecomponent (niet<img>) - Lazy load components die niet direct nodig zijn
- Verwijder ongebruikte dependencies
Security Checklist
Belangrijk voor productie:
- API keys nooit in client-side code
- Supabase RLS enabled (Row Level Security)
- Error messages geven geen gevoelige info
- HTTPS (automatisch via Vercel)
Eindopdracht Overview
Wat is de eindopdracht?
- Bouw een AI-powered web applicatie
- Gebruik alle tools die je hebt geleerd
- Vrije keuze in implementatie
Drie voorbeeldprojecten:
- AI Recipe Generator - Recepten op basis van ingrediënten
- Smart Budget Buddy - Financieel overzicht met AI insights
- Travel Planner AI - Reisplanning met AI suggesties
Of: Eigen idee (met goedkeuring docent)
Technische Vereisten
Stack:
- Next.js 14 met App Router
- TypeScript
- Tailwind CSS
- Supabase (database + auth)
- Vercel AI SDK (chat of completion feature)
- Deployed op Vercel
Documentatie vereisten:
docs/PROJECT-BRIEF.md- Project beschrijvingdocs/PROMPT-LOG.md- Minimaal 10 promptsdocs/AI-DECISIONS.md- Minimaal 5 beslissingen- Complete README met setup instructies
Beoordelingscriteria
| Criterium | Weging |
|---|---|
| Technische uitvoering | 40% |
| AI integratie | 25% |
| Documentatie (PROMPT-LOG, AI-DECISIONS) | 20% |
| Code kwaliteit & organisatie | 15% |
Minimale vereisten:
- App werkt in productie
- Auth + CRUD werkt
- AI feature werkt
- Documentatie compleet
Veelvoorkomende Problemen
AI Chat Werkt Niet:
- API key correct in
.env.local? - API key ook in Vercel env vars?
- Correct model gekozen?
- API route syntax correct?
Auth Werkt Niet in Productie:
- Redirect URLs in Supabase toegevoegd?
- Beide URLs: met en zonder trailing slash?
- Wildcard (
**) voor sub-routes?
Deployment Faalt:
npm run buildlokaal succesvol?- Alle TypeScript errors gefixed?
- Alle env vars in Vercel?
Tools
- Vercel
- GitHub
- Supabase
- Chrome DevTools (Lighthouse)
- Cursor
Lesopdracht (2 uur)
Deploy Je Eindproject
Deel 1: Pre-Deployment Check (30 min)
Run door de checklist:
npm run build- fix eventuele errors- Check TypeScript errors
- Maak/update
.env.example - Update README met project info
Deel 2: Vercel Deployment (30 min)
- Ga naar vercel.com
- "Add New Project"
- Import je GitHub repository
- Voeg environment variables toe
- Deploy!
Deel 3: Supabase Config (20 min)
- Voeg Vercel URL toe aan Supabase redirect URLs
- Test auth in productie
- Verifieer data access
Deel 4: Testing & Lighthouse (40 min)
- Test alle features in productie:
- Login/logout
- CRUD operaties
- AI chat (indien aanwezig)
- Run Lighthouse audit
- Fix issues tot score >80
- Screenshot resultaat
Deliverable
- Werkende productie URL
- Lighthouse screenshot (score >80)
- Test rapport: wat werkt, wat niet
Huiswerk (Eindopdracht Afronden)
Rond Je Eindproject Af
Dit is de laatste les. Gebruik deze tijd om je eindopdracht af te ronden.
Deel 1: Bug Fixes (1 uur)
- Test je app grondig in productie
- Fix gevonden bugs
- Test edge cases:
- Lege states
- Error states
- Loading states
- Redeploy
Deel 2: Performance Optimization (30 min)
- Run Lighthouse opnieuw
- Fix top 3 performance issues
- Document wat je hebt verbeterd
Deel 3: Documentatie Afronden (30 min)
Update je README.md:
- Werkende productie URL
- Features lijst
- Tech stack
- Setup instructies
- Screenshots
Complete docs/:
- PROMPT-LOG.md (minimaal 10 entries)
- AI-DECISIONS.md (minimaal 5 entries)
Checklist voor inleveren:
- App werkt op productie URL
- Login/logout werkt
- CRUD operaties werken
- AI feature werkt
- PROMPT-LOG.md heeft 10+ entries
- AI-DECISIONS.md heeft 5+ entries
- README is compleet
- Code is opgeruimd
Tips:
- Test alles als "nieuwe gebruiker"
- Vraag iemand anders om te testen
- Check of alles in productie werkt (niet alleen lokaal)
Deliverable
- Complete eindopdracht
- Deployed en werkend
- Alle documentatie compleet
- Ingeleverd voor deadline
Leerdoelen
Na deze les kan de student:
- Een Next.js app deployen naar Vercel
- Environment variables configureren in Vercel
- Supabase redirect URLs instellen voor productie
- Een deployment checklist doorlopen
- Lighthouse gebruiken voor performance audit
- Basis security checks uitvoeren
- De eindopdracht requirements begrijpen
- Een project afronden en inleveren
- Documentatie voltooien volgens de vereisten