2.2 KiB
2.2 KiB
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).
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:
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:
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