9.1 KiB
Les 9 Huiswerk: Bouw je eigen app met de 5 Cursor-technieken
Vak: AI-Assisted Development
Opleiding: NOVI Hogeschool Utrecht
Deadline: Voor de volgende les
Overzicht
In de les heb je 5 Cursor-technieken geleerd en toegepast op LinkVault. Nu is het tijd om te laten zien dat je deze technieken zelfstandig kunt toepassen. Je gaat een eigen app bouwen van scratch -- geen LinkVault!
Kies je app
Kies een van de volgende projecten (of bedenk er zelf een):
| Optie | Omschrijving |
|---|---|
| Recepten app | Recepten opslaan met ingredienten, bereidingswijze en tags |
| Film tracker | Films bijhouden met rating, genre en watchlist |
| Notitie app | Notities met categorieen en zoekfunctie |
| Eigen idee | Overleg dit eerst met Tim voordat je begint! |
Tech stack: Next.js 16, TypeScript, Tailwind CSS (net als in de les).
Checklist: Wat moet je opleveren?
Gebruik deze checklist om te controleren of je alles hebt gedaan. Elk punt is verplicht (tenzij anders aangegeven).
- 1. Cursor Rules --
.cursor/rules/map aangemaakt met minimaal 2 rule bestanden (met YAML frontmatter!) - 2. Plan Mode -- Plan Mode gebruikt om je app te plannen (maak een screenshot van je plan)
- 3. Agent Mode -- Agent Mode gebruikt om minimaal 2 features te bouwen
- 4. Debug Mode -- Debug Mode gebruikt voor minstens 1 bug (maak een screenshot van je debug sessie)
- 5. Tests -- Tests geschreven met de agent (minimaal 3 unit tests)
- 6. Code Review -- "Find Issues" gedraaid en eventuele issues gefixt
- 7. Semantic Commits -- Semantic commits gemaakt (feat:, fix:, docs:, etc.)
- 8. GitHub -- Alles gepusht naar een GitHub repository
- 9. (Bonus) -- Pull Request aangemaakt en door Cursor laten reviewen
Wat lever je in?
- GitHub repository link -- Zorg dat de repo public is (of nodig Tim uit als collaborator)
- Korte reflectie (200 woorden) -- Beantwoord deze vragen:
- Welke Cursor-technieken werkten het beste voor jou?
- Waar liep je vast?
- Wat doe je de volgende keer anders?
- Screenshots van:
- Je Plan Mode plan
- Een Debug Mode sessie
- Je test resultaten (terminal output)
Tips
- Begin met Plan Mode! Laat Cursor eerst een plan maken voordat je gaat bouwen.
- Commit vroeg en vaak. Gebruik semantic commits vanaf het begin.
- Loop je vast? Gebruik Debug Mode -- beschrijf de fout en laat Cursor helpen.
- Houd je prompt requests in de gaten. Je hebt 500 fast requests per maand op het Student Plan.
Appendix A: Keyboard Shortcuts Reference
Alle belangrijke Cursor sneltoetsen op een rij:
| Actie | Windows / Linux | macOS |
|---|---|---|
| Chat openen | Ctrl+L |
Cmd+L |
| Plan Mode toggle | Shift+Tab |
Shift+Tab |
| Inline Edit | Ctrl+K |
Cmd+K |
| Composer | Ctrl+I |
Cmd+I |
| Autocomplete accepteren | Tab |
Tab |
| Terminal openen | Ctrl+` |
Ctrl+` |
| Command Palette | Ctrl+Shift+P |
Cmd+Shift+P |
Appendix B: .cursor/rules Templates
Maak een .cursor/rules/ map in je project root en voeg daar .mdc bestanden toe. Hieronder staan templates die je kunt kopieren en aanpassen voor je eigen project.
project.mdc (algemene projectregels)
---
description: Algemene projectregels en conventies
alwaysApply: true
---
# Project Regels
## Tech Stack
- Next.js 16 met App Router
- TypeScript (strict mode)
- Tailwind CSS voor styling
## Conventies
- Gebruik functionele componenten met TypeScript interfaces
- Bestandsnamen in kebab-case
- Componenten in PascalCase
- Gebruik `async/await` in plaats van `.then()` chains
## Mappenstructuur
- `src/app/` -- App Router pagina's en layouts
- `src/components/` -- Herbruikbare componenten
- `src/lib/` -- Utility functies en types
- `src/types/` -- TypeScript type definities
components.mdc (componentregels)
---
description: Regels voor React componenten
globs:
- "src/components/**/*.tsx"
- "src/app/**/*.tsx"
---
# Component Regels
## Structuur
- Elke component heeft een eigen map met index.tsx
- Props worden gedefinieerd als TypeScript interface boven de component
- Gebruik `"use client"` alleen wanneer nodig (interactieve componenten)
## Styling
- Gebruik Tailwind utility classes
- Geen inline styles
- Gebruik `cn()` helper voor conditionele classes
## Toegankelijkheid
- Alle images hebben een alt attribuut
- Interactieve elementen hebben aria-labels
- Gebruik semantische HTML elementen
styles.mdc (styling regels)
---
description: Regels voor styling en Tailwind gebruik
globs:
- "src/**/*.css"
- "src/**/*.tsx"
---
# Styling Regels
## Tailwind CSS
- Gebruik de standaard Tailwind kleurenpalet
- Definieer custom kleuren in `tailwind.config.ts`
- Gebruik `dark:` variant voor dark mode support
- Responsive design: mobile-first (`sm:`, `md:`, `lg:`)
## CSS Bestanden
- Gebruik `globals.css` alleen voor CSS variabelen en base styles
- Geen component-specifieke CSS bestanden -- gebruik Tailwind classes
Appendix C: Prompt Templates
Goede prompts maken het verschil. Hieronder staan templates die je kunt gebruiken voor elke techniek.
1. Plan Mode prompt
Ik wil een [app naam] bouwen met Next.js 16, TypeScript en Tailwind CSS.
De app moet het volgende kunnen:
- [Feature 1]
- [Feature 2]
- [Feature 3]
Maak een gedetailleerd plan met:
1. Mappenstructuur
2. Benodigde componenten
3. Data model / types
4. Stappen om te bouwen (in volgorde)
Gebruik de App Router en server components waar mogelijk.
2. Agent Mode feature prompt
Bouw de [feature naam] feature voor mijn app.
Wat het moet doen:
- [Beschrijving van de feature]
- [Verwacht gedrag]
- [Edge cases]
Gebruik bestaande types uit src/types/ en componenten uit src/components/.
Volg de regels in .cursor/rules/.
3. Debug Mode prompt
Ik krijg de volgende fout:
[Plak hier de foutmelding of beschrijf het onverwachte gedrag]
Wat ik verwacht: [beschrijf het verwachte gedrag]
Wat er gebeurt: [beschrijf wat er daadwerkelijk gebeurt]
Het relevante bestand is [bestandsnaam]. Kun je de bug vinden en fixen?
4. Test writing prompt
Schrijf unit tests voor [component/functie naam].
Test minimaal:
- Het happy path (normaal gebruik)
- Edge cases (lege input, lange strings, etc.)
- Error handling
Gebruik de bestaande test setup in het project.
5. Semantic commits prompt
Maak een semantic commit message voor de huidige wijzigingen.
Gebruik dit formaat:
- feat: voor nieuwe features
- fix: voor bugfixes
- docs: voor documentatie
- style: voor opmaak (geen code wijzigingen)
- refactor: voor code refactoring
- test: voor tests
- chore: voor overige taken
Houd de message kort en beschrijvend in het Engels.
6. Code review prompt
Review de code in [bestandsnaam of map].
Let op:
- TypeScript best practices
- Performance issues
- Security problemen
- Toegankelijkheid
- Code duplicatie
Geef concrete suggesties voor verbeteringen.
Appendix D: Troubleshooting
Plan Mode verschijnt niet
| Probleem | Oplossing |
|---|---|
| Plan Mode optie niet zichtbaar | Zorg dat je Cursor versie up-to-date is (Help > Check for Updates) |
| Toggle doet niets | Probeer Shift+Tab in het chat venster, niet in de editor |
| Plan wordt niet gegenereerd | Zorg dat je prompt duidelijk genoeg is -- geef context over wat je wilt bouwen |
Agent Mode voert niets uit
| Probleem | Oplossing |
|---|---|
| Agent maakt geen bestanden aan | Controleer of Agent Mode actief is (niet Ask Mode) in de chat dropdown |
| Agent stopt halverwege | Druk op "Continue" of geef een follow-up prompt |
| Agent maakt fouten | Wees specifieker in je prompt, verwijs naar bestaande bestanden |
.cursor/rules worden niet opgepikt
| Probleem | Oplossing |
|---|---|
| Rules hebben geen effect | Controleer dat de map .cursor/rules/ heet (niet .cursor/rule/) |
| YAML frontmatter fout | Controleer de --- blokken bovenaan elk .mdc bestand |
| Globs matchen niet | Check je glob patronen -- src/**/*.tsx matcht alles onder src/ |
| Bestanden staan verkeerd | De .cursor/ map moet in je project root staan |
Tests draaien niet
| Probleem | Oplossing |
|---|---|
npm test geeft fout |
Controleer of Vitest of Jest is geinstalleerd: npm install -D vitest |
| Tests worden niet gevonden | Bestandsnaam moet eindigen op .test.ts of .test.tsx |
| Import errors in tests | Controleer je tsconfig.json paths en test configuratie |
| Module not found | Voer npm install uit om dependencies te installeren |
Git / GitHub problemen
| Probleem | Oplossing |
|---|---|
git push geeft permission denied |
Controleer of je SSH key of personal access token is ingesteld |
| Repo niet gevonden op GitHub | Maak eerst een repo aan op github.com en volg de instructies |
| Merge conflicts | Gebruik git status om conflicten te zien, los ze op in Cursor |
| Vergeten te committen | git add . en daarna git commit -m "feat: beschrijving" |
Veel succes en plezier met bouwen! Kom je er niet uit, stel je vraag in het les-kanaal.