Files
novi-lessons/Samenvattingen/Les10-Samenvatting.md

219 lines
5.6 KiB
Markdown

# 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`:**
```markdown
# 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
- `.gitignore` correct 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@latest` met 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.example` met alle benodigde variabelen
- Maak `.env.local` met 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.mdc` toe met component conventies
- Voeg `api.mdc` toe met API/Supabase regels
- Test of Cursor de regels oppikt
**Deel 2: Documentatie (45 min)**
- Vul `PROJECT-BRIEF.md` volledig in:
- Projectnaam en tagline
- Probleem dat je oplost
- Target audience
- Core features (3-5)
- Nice-to-have features
- Tech stack keuzes
- Start `AI-DECISIONS.md` met 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