Full-Stack: Pizza Builder

Doel van de oefening

Je gaat een webapplicatie bouwen in twee delen:

  1. Pizza Builder

    • Met dit formulier kan je een nieuwe pizza samenstellen.

    • De ingredienten worden ingeladen vanuit de database.

    • Je kan meerdere soorten kaas en meerdere soorten toppings selecteren.

    • Je kan slechts één soort saus selecteren.

  2. Pizza Overview

    • Een overzicht van alle opgeslagen pizza's.

    • Elke pizza heeft een verwijder-knop. Hiermee wordt de pizza verwijdert uit het systeem.

      • Bekijk de database-structuur aandachtig! Een pizza bestaat enerzijds uit een record uit de pizzas tabel, maar ook uit records uit de pizza_ingredients tabel!

Functionaliteiten

1. Front-end (Vite + TypeScript)

  • Haal de ingredienten op via uit je database

  • Splits de lijst op volgens type:

    • sauzen

    • kazen

    • toppings

  • Toon elk ingredient in het juiste <select> element.

    • Gebruik het multiple attribute om een multi-select te maken.

2. Back-end (Express + MySQL)

Je maakt endpoints aan om pizza's terug te geven en aan te maken:

Endpoints

  • GET /pizzas: Geeft een lijst terug van alle pizza's

  • POST /pizzas: Maak een nieuwe pizza aan, en link de pizza aan de juiste ingredienten in de pizza_ingredients tabel

  • DELETE /pizzas: Verwijdert een pizza, en verwijdert ook alle records van die pizza uit de pizza_ingredients tabel

  • GET /ingredients: Geeft een lijst terug van alle ingredienten

Stappenplan

1. Voorbereiding

  • Zet je Frontend-project op met Vite

  • Zet je backend project op met Express

  • Configureer een lokale MySQL-database

Database SQL init

2. Front-end implementatie

  • Maak een module pizzabuilder.ts om de data voor je pokédex op te vragen

  • Bouw componenten voor:

    • Pokedex lijst

    • Party overzicht

3. Back-end implementatie

  • Schrijf de nodige Express-routes

  • Verbind je server met MySQL en implementeer de CRUD-logica

  • Zorg ervoor dat alle routes JSON teruggeven

Last updated