Een full-stack webapplicatie voor een vinylwinkel in Brussel. Bevat een publieke shop, specials, winkelwagen, bestellingen, gebruikersbeheer en een adminpanel.
- Meertalige interface: Nederlands, Engels, Frans, Duits (i18n via models.js).
- Homepagina: Intro, logo, animaties, navigatie.
- Records-overzicht: Blader, zoek, filter en voeg vinylplaten toe aan de winkelwagen.
- Specials: Aparte sectie voor aanbiedingen en speciale releases.
- Winkelwagen:
- Gast- en gebruikerscart (localStorage of backend).
- Producten toevoegen/verwijderen, aantal aanpassen.
- Afrekenen (dummy, popup).
- Zoekfunctie: Direct zoeken in records en specials.
- Accountbeheer: Registreren, inloggen, wachtwoord wijzigen, profiel aanpassen.
- Adminpanel:
- Records beheren (CRUD, foto-upload, voorraad, prijs, categorie, YouTube-link).
- Specials beheren (CRUD, sales, voorraad, foto).
- Orders beheren (status, verzending, CSV-export, labels printen).
- Gebruikersbeheer (accounts aanmaken, rollen toewijzen).
- Responsive design: Werkt op desktop en mobiel.
- Toegankelijkheid: ARIA, alt-teksten, toetsenbordnavigatie.
- REST API:
/api/vinyls- Alle vinyl records ophalen./api/specials- Specials ophalen./api/cart/{userId}- Cart ophalen, opslaan, legen./api/orders- Orders plaatsen, ophalen, status wijzigen./api/users- Registratie, login, gebruikersbeheer.
- Beveiliging: Spring Security, rollen (user/admin).
- Dataopslag: H2 (dev) of MySQL (prod), JPA.
- Bestandsupload: Foto’s van platen/specials via adminpanel.
- In-memory cart: Cart wordt per userId in geheugen opgeslagen (geen persistente DB voor cart).
- Admin-only endpoints: Voor beheer van records, specials, users, orders.
- Assets: Veel afbeeldingen, logo’s, animaties, favicon.
- Stijlen: CSS met animaties, dark mode, custom fonts/icons.
- Installatie:
- Backend:
cd doctorvinylrecords && mvn clean install && mvn spring-boot:run - Frontend: Open
frontend-files/index.htmlin browser (of serve via static server).
- Backend:
-
Backend starten
cd doctorvinylrecords mvn clean install mvn spring-boot:run -
Frontend openen
- Open
frontend-files/index.htmlin je browser.
- Open
-
Adminpanel
- Ga naar
/admin.html(alleen zichtbaar voor admin users).
- Ga naar
- Cart en orders zijn in-memory (niet persistent na server restart, tenzij je MySQL activeert).
- Voor productie: pas databaseconfiguratie aan in
application.properties. - Zie code en comments voor meer details over endpoints en logica.
GET /api/vinyls— Alle records ophalenGET /api/specials— Specials ophalenGET/POST/DELETE /api/cart/{userId}— Cart ophalen, opslaan, legenPOST /api/orders— Nieuwe order plaatsenGET /api/orders— Orders ophalen (admin)POST /api/users/register— RegistrerenPOST /api/users/login— Inloggen
- Frontend: pure HTML/CSS/JS, geen buildstap nodig.
- Backend: Java 17, Spring Boot, Maven.
- Zie
pom.xmlvoor dependencies. - Zie
admin.html,orders.html,index.htmlvoor UI-structuur.
Gemaakt door Tom Lamers © 2025