fix: vercel

This commit is contained in:
2026-06-09 18:02:04 +02:00
parent ee69da1665
commit c023192113
85 changed files with 10266 additions and 3008 deletions

View File

@@ -0,0 +1,78 @@
# Les 13 — Lesopdracht
## Bouw je eigen Polderfest-agent
**Vak:** AI-Assisted Development
**Opleiding:** NOVI Hogeschool Utrecht
**Werkvorm:** in-class, na de pauze (±1,5 uur)
**Status:** klaar = productie-URL in de chat delen
---
## Doel
Aan het einde van deze opdracht heb je een werkende Polderfest-agent
met zes nieuwe features bovenop Les 12: getWeather, addToFavorites,
finishPlan, hasToolCall, prepareStep, en een UI die tool-calls toont.
Live op je eigen Vercel-deployment.
---
## Wat je nodig hebt (zit allemaal al klaar uit Les 11/12)
- Je Polderfest-app uit Les 12, of `polderfest-original.zip` uit lesbestanden
- Supabase project met `bands` en `user_favorites` tabel
- OpenAI API key in `.env.local`
- Vercel account
- `Les13-Stap-voor-stap.md` als gids
---
## Stappenplan
Werk in jouw eigen tempo. Hierbij de hoofdlijn — voor de exacte code
per stap zie `Les13-Stap-voor-stap.md` en `polderfest-with-agent.zip`.
1. **Project klaarzetten** — Polderfest-original uitpakken of eigen versie gebruiken, `npm install && npm run dev`
2. **Nieuwe route**`app/api/agent/route.ts` aanmaken (kopie van chat-route)
3. **`addToFavorites`** — write-tool toevoegen (insert in `user_favorites`)
4. **`getWeather`** — externe API (Open-Meteo, geen key)
5. **`finishPlan`** — Zod-schema structured-output tool
6. **`hasToolCall`** — extra stop-conditie naast `stepCountIs(8)`
7. **`prepareStep`** — model switching (krachtig → goedkoop)
8. **UI**`app/agent/page.tsx` met tool-call-rendering
9. **Testen** — drie demo-prompts in de browser
10. **Deploy** — Vercel + env vars
---
## Op te leveren
Tijdens de les in de chat plaatsen:
- Productie-URL van je `/agent` pagina
- Screenshot van je Supabase Table Editor met minimaal één nieuwe
rij in `user_favorites` (gemaakt door de agent)
---
## Test-prompts (gebruik deze om te valideren)
| Prompt | Verwachte tools |
|--------|-----------------|
| "Plan een avond met indie en techno voor zaterdag." | searchBands × 2 + getDaySchedule + finishPlan |
| "Wat speelt er op zondag en hoe is het weer?" | getDaySchedule + getWeather + finishPlan |
| "Welke band moet ik NIET missen op vrijdag? Zet hem in mijn favorieten." | searchBands + addToFavorites + finishPlan |
Werkt prompt 3 niet (geen rij in `user_favorites`)? Check of de service-role-key
in `.env.local` staat en of de tool de `band_id` correct ophaalt.
---
## Vastgelopen?
- Open `polderfest-with-agent.zip` als spiekbriefje
- Zoek in de code op `// STEP N` voor de exacte plek per feature
- Vraag in de chat — ik loop rond
Veel succes!