5.6 KiB
5.6 KiB
Les 10: Project Setup & Repository Structure
📋 Lesmateriaal nog niet uitgewerkt
De volgende bestanden worden gegenereerd wanneer deze les wordt uitgewerkt:
- Les10-Slide-Overzicht.md
- Les10-Lesplan.md
- Les10-Bijlage-A-Lesopdracht.md
- Les10-Bijlage-B-Huiswerkopdracht.md
Hoofdstuk
Hoofdstuk 3: Advanced (Les 10-18)
Beschrijving
Leer hoe je een professioneel project opzet met goede folder structuur, documentatie, en AI-configuratie files. Dit vormt de basis voor je eindopdracht.
Te Behandelen
Waarom Project Structure Belangrijk Is
- AI tools werken beter met duidelijke structuur
- Makkelijker samenwerken
- Sneller nieuwe features toevoegen
- Professionele uitstraling
Ideale Folder Structuur
project/
├── .cursor/
│ └── rules/ # Cursor instructies
│ ├── general.mdc # Algemene project regels
│ └── components.mdc # Component-specifieke regels
├── docs/
│ ├── PROMPT-LOG.md # Belangrijke AI prompts
│ ├── AI-DECISIONS.md # Architectuur beslissingen
│ └── PROJECT-BRIEF.md # Project beschrijving
├── src/
│ ├── app/ # Next.js App Router
│ ├── components/
│ │ ├── ui/ # Basis UI components
│ │ └── features/ # Feature-specifieke components
│ ├── lib/ # Utilities en helpers
│ └── types/ # TypeScript types
├── .env.local # Environment variables
├── .env.example # Template voor env vars
├── .gitignore
└── README.md
.cursorrules Files
Wat zijn .cursorrules?
- Markdown files met instructies voor Cursor
- Project-specifieke regels en conventies
- Worden automatisch meegenomen in context
Voorbeeld general.mdc:
# Project Rules
## Tech Stack
- Next.js 14 met App Router
- TypeScript (strict mode)
- Tailwind CSS voor styling
- Supabase voor backend
## Code Conventies
- Gebruik functionele components
- Prefer named exports
- Destructure props
- Gebruik async/await (geen .then())
## Styling
- Tailwind classes, geen inline styles
- Mobile-first approach
- Gebruik design tokens waar mogelijk
docs/ Folder
PROMPT-LOG.md
- Log van belangrijke prompts die tot goede code leidden
- Minimaal 10 prompts documenteren
- Format: doel → prompt → resultaat
AI-DECISIONS.md
- Architectuur beslissingen gemaakt met AI hulp
- Waarom bepaalde keuzes gemaakt
- Trade-offs en alternatieven
PROJECT-BRIEF.md
- Wat doet het project?
- Wie is de doelgroep?
- Welke features zijn er?
Environment Variables
.env.example (commit naar Git):
NEXT_PUBLIC_SUPABASE_URL=your-supabase-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
OPENAI_API_KEY=your-openai-key
.env.local (NOOIT committen):
NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
OPENAI_API_KEY=sk-...
README.md Best Practices
- Project titel en korte beschrijving
- Screenshots of demo GIF
- Installatie instructies
- Environment variables uitleg
- Beschikbare scripts (
npm run dev, etc.)
Git Best Practices
- Kleine, focused commits
- Duidelijke commit messages
- Feature branches
.gitignorecorrect ingesteld
Tools
- Cursor
- Git & GitHub
- Next.js
- VS Code / WebStorm
Lesopdracht (2 uur)
Richt je Eindproject Repository In
Deel 1: Repository Setup (30 min)
- Maak nieuwe GitHub repository
- Clone lokaal
- Run
npx create-next-app@latestmet TypeScript + Tailwind - Push initial commit
Deel 2: Folder Structuur (30 min)
- Maak
docs/folder met:PROJECT-BRIEF.md(beschrijf je eindproject idee)PROMPT-LOG.md(lege template)AI-DECISIONS.md(lege template)
- Maak
.cursor/rules/folder met:general.mdc(project regels)
- Reorganiseer
src/folder
Deel 3: Environment Setup (20 min)
- Maak
.env.examplemet alle benodigde variabelen - Maak
.env.localmet echte waarden - Controleer
.gitignore(env files moeten erin staan!)
Deel 4: README & Git (40 min)
- Schrijf complete README.md
- Maak eerste feature branch
- Commit alle changes met goede messages
- Push en maak PR (voor jezelf)
Deliverable
- GitHub repository met complete structuur
- Alle docs files aanwezig
- .cursorrules file geschreven
- README compleet
Huiswerk (2 uur)
Verfijn je Project Setup
Deel 1: .cursorrules Uitbreiden (45 min)
- Voeg
components.mdctoe met component conventies - Voeg
api.mdctoe met API/Supabase regels - Test of Cursor de regels oppikt
Deel 2: Documentatie (45 min)
- Vul
PROJECT-BRIEF.mdvolledig in:- Projectnaam en tagline
- Probleem dat je oplost
- Target audience
- Core features (3-5)
- Nice-to-have features
- Tech stack keuzes
- Start
AI-DECISIONS.mdmet eerste beslissing
Deel 3: Basis Components (30 min)
- Maak
src/components/ui/met basic components:- Button.tsx
- Card.tsx
- Input.tsx
- Gebruik Cursor met je nieuwe .cursorrules
Deliverable
- Uitgebreide .cursorrules (minimaal 2 files)
- Volledig ingevulde PROJECT-BRIEF.md
- Basis UI components gemaakt met Cursor
- Screenshot van Cursor die je rules gebruikt
Leerdoelen
Na deze les kan de student:
- Een professionele project structuur opzetten
- .cursorrules files schrijven voor project-specifieke AI instructies
- Documentatie files maken (PROMPT-LOG, AI-DECISIONS, PROJECT-BRIEF)
- Environment variables correct beheren
- Git best practices toepassen
- Een README schrijven die anderen kunnen volgen