93 lines
2.2 KiB
Markdown
93 lines
2.2 KiB
Markdown
# Les 7 — Huiswerk
|
|
## Supabase verkennen
|
|
|
|
**Deadline:** Voor Les 8
|
|
**Inleveren:** GitHub repo via Teams
|
|
|
|
---
|
|
|
|
## Opdracht 1 — Pak Supabase Dashboard erbij
|
|
|
|
Klik door deze tabs in je Supabase project:
|
|
- **Table Editor** — visueel polls en options
|
|
- **SQL Editor** — query historie
|
|
- **Database → Tables** — schema diagram
|
|
- **Authentication** — preview (komt in Les 9)
|
|
- **Settings → API** — keys
|
|
- **Settings → Database** — connection string
|
|
|
|
Maak in `SUPABASE.md` een korte lijst van wat elke tab doet (2 zinnen per tab).
|
|
|
|
---
|
|
|
|
## Opdracht 2 — Voeg eigen polls toe via SQL
|
|
|
|
Niet via Dashboard knopjes — via SQL Editor. Schrijf 3 INSERT statements voor eigen polls (met opties).
|
|
|
|
```sql
|
|
insert into polls (title) values ('Jouw vraag hier');
|
|
-- Vervolgens 3-4 opties voor die poll
|
|
```
|
|
|
|
Hint: gebruik `returning id` om de nieuwe poll-id te krijgen.
|
|
|
|
Plak je SQL in `SUPABASE.md`.
|
|
|
|
---
|
|
|
|
## Opdracht 3 — Query een aggregate
|
|
|
|
Bedenk een query die iets niet-triviaals doet. Voorbeelden:
|
|
- Totaal aantal opties per poll
|
|
- Polls van vandaag (`where created_at > now() - interval '1 day'`)
|
|
- Top 3 polls met meeste opties
|
|
|
|
Plak query + screenshot van resultaat in `SUPABASE.md`.
|
|
|
|
---
|
|
|
|
## Opdracht 4 — Bonus: Type generation
|
|
|
|
Genereer TypeScript types vanuit je Supabase schema:
|
|
|
|
```bash
|
|
pnpm add -D supabase
|
|
pnpm dlx supabase login
|
|
pnpm dlx supabase link --project-ref <jouw-project-id>
|
|
pnpm dlx supabase gen types typescript --linked > types/database.ts
|
|
```
|
|
|
|
Gebruik types in je code:
|
|
|
|
```typescript
|
|
import type { Database } from "@/types/database";
|
|
import { createClient } from "@supabase/supabase-js";
|
|
|
|
export const supabase = createClient<Database>(...);
|
|
```
|
|
|
|
Voordeel: autocomplete + type-safe queries.
|
|
|
|
---
|
|
|
|
## Opdracht 5 — Reflectie (200 woorden)
|
|
|
|
In `REFLECTIE.md`:
|
|
- Wat snap je nu beter over relaties tussen tabellen?
|
|
- Waar zit het verschil tussen Postgres en wat je eerder kende (Excel, MongoDB, ...)?
|
|
- Welk onderdeel van Supabase zou je willen uitproberen?
|
|
|
|
---
|
|
|
|
## Inleveren
|
|
|
|
GitHub repo URL via Teams. Werkende app + SUPABASE.md + REFLECTIE.md.
|
|
|
|
---
|
|
|
|
## Tips
|
|
|
|
- **Eerst SQL begrijpen** — Postgres is een vaardigheid die jaren meegaat
|
|
- **Type generation** scheelt veel bugs later — bonus aanrader
|
|
- **Tijd:** ~2 uur
|