← Terug naar alle projecten

Case 02 · 2025 · Eigen oefenproject

Van Hoecke Webshop

  • PHP
  • MySQL
  • HTML & CSS
Rol
Full-stack development (PHP, MySQL, OOP)
Niche
Van Hoecke, keuken- & interieurwebshop
Type
Oefenproject, volledige webapplicatie
Homepage van de Van Hoecke webshop met categorie- en prijsfilter

Voor dit oefenproject ging ik tewerk voor Van Hoecke, waar ik ook mijn studentenjob doe. Ik merkte dat hun webshop nog niet uitgebouwd was, dus besloot ik mezelf daarin uit te dagen: een veilige webshop from scratch bouwen, met alle functies die een professionele webshop heeft, met gebruik van backend PHP en MySQL.

Proces

Van database tot checkout

Vijf stappen, van het uittekenen van de database tot reviews die zonder herladen verschijnen.

01 Backend & Database

De ruggengraat van de webshop

Een webshop valt of staat met een goede databasestructuur. Ik ben begonnen met het visueel uittekenen van de database via ChartDB, voor ik ook maar één tabel aanmaakte. Vervolgens heb ik de database in MySQL opgezet met gekoppelde tabellen voor gebruikers, producten, categorieën en bestellingen.

  • Database eerst visueel uitgetekend, dan pas gebouwd
  • Gekoppelde tabellen voor gebruikers, producten, categorieën en bestellingen
  • Alle queries via PDO prepared statements
  • CRUD-operaties (Create, Read, Update, Delete)
02 Accounts & beveiliging

Registreren, inloggen, veilig blijven

Een gebruiker kan een account maken, inloggen, en later zijn wachtwoord wijzigen. Elke actie toont duidelijke feedback. Bij registratie check ik of de gebruikersnaam of e-mail al bestaat. Een nieuw account krijgt meteen 1.000 units digitale currency. Wachtwoorden sla ik nooit leesbaar op, maar gehasht met password_hash().

03 Winkelmandje & currency

Van mandje tot afrekenen

Ik gebruik PHP-sessies ($_SESSION) om bij te houden welke producten iemand toevoegt, met de juiste hoeveelheden en prijzen. Bij afrekenen check ik het saldo tegen het totaalbedrag. Is er niet genoeg saldo, dan krijgt de gebruiker meteen een duidelijke foutmelding.

04 Admin-paneel

Producten beheren, met controles

Enkel een admin-account kan producten toevoegen, bewerken of verwijderen binnen een categorie, inclusief een afbeelding uploaden. Elk formulier wordt server-side gecheckt. Een prijs kan niet negatief zijn en een titel kan niet leeg zijn.

05 Reviews via AJAX

Reageren zonder te herladen

Een gebruiker kan een review of rating achterlaten, maar enkel voor een product dat die zelf kocht. Dat check ik server-side. De review wordt via AJAX opgeslagen en meteen getoond, zonder dat de pagina herlaadt.

Eindresultaat

Zo ziet de shop eruit

Homepage van de Van Hoecke webshop met categorie- en prijsfilter
Productpagina met kleurkeuze en reviewveld

Functies

Alles wat de webshop kan

Zes functies, opgedeeld in drie groepen: account, winkelen & afrekenen, en beheer.

Account & beveiliging

01

Account & login

Registreren, inloggen en wachtwoord wijzigen. Wachtwoorden worden nooit leesbaar opgeslagen, maar altijd gehasht.

02

Beveiliging

Prepared statements tegen SQL-injectie, rolgebaseerde rechten, en bescherming tegen dubbele accounts.

Winkelen & afrekenen

03

Eigen digitale currency

Elke gebruiker start met 1.000 units. Het saldo wordt bijgehouden en gecontroleerd bij elke aankoop.

04

Winkelmandje & afrekenen

Producten toevoegen met de juiste hoeveelheden en prijzen, en een saldo-check bij het afrekenen.

05

Reviews & ratings

Enkel mogelijk voor producten die je zelf kocht. Reviews verschijnen via AJAX, zonder dat de pagina herlaadt.

Beheer

Admin-paneel

Producten beheren per categorie, afbeeldingen uploaden en validatie op elk formulier.

Wat ik hieruit meenam

Platformen zoals Webflow of Shopify verbergen veel techniek voor je. Dit project dwong me om elke stap zelf te bouwen: een veilig inlogsysteem, een eigen betaalsysteem, een admin-paneel met validatie. Ik snap nu precies hoe frontend en backend communiceren, en waarom beveiliging nooit een bijzaak mag zijn.

Volgend project

3D-werkplaats elektromechanica

Alle projecten →