Skip to content

Repository files navigation

Doctor Vinyl Records

Een full-stack webapplicatie voor een vinylwinkel in Brussel. Bevat een publieke shop, specials, winkelwagen, bestellingen, gebruikersbeheer en een adminpanel.

Functionaliteit

Frontend (HTML/CSS/JS)

  • 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.

Backend (Spring Boot, Java 17)

  • 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.

Overige

  • 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.html in browser (of serve via static server).

Snelstart

  1. Backend starten

    cd doctorvinylrecords
    mvn clean install
    mvn spring-boot:run
  2. Frontend openen

    • Open frontend-files/index.html in je browser.
  3. Adminpanel

    • Ga naar /admin.html (alleen zichtbaar voor admin users).

Belangrijk

  • 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.

API Endpoints (voorbeeld)

  • GET /api/vinyls — Alle records ophalen
  • GET /api/specials — Specials ophalen
  • GET/POST/DELETE /api/cart/{userId} — Cart ophalen, opslaan, legen
  • POST /api/orders — Nieuwe order plaatsen
  • GET /api/orders — Orders ophalen (admin)
  • POST /api/users/register — Registreren
  • POST /api/users/login — Inloggen

Developer notes

  • Frontend: pure HTML/CSS/JS, geen buildstap nodig.
  • Backend: Java 17, Spring Boot, Maven.
  • Zie pom.xml voor dependencies.
  • Zie admin.html, orders.html, index.html voor UI-structuur.

Gemaakt door Tom Lamers © 2025

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages