Terug naar geselecteerd werk

The Impenetrable 2

Een end-to-end IoT-prototype waarin een fysieke ESP32-kluis, een beveiligde webapplicatie, realtime events, database-integriteit en cloud deployment samenkomen.

Security Engineer, Data Engineer en integratieondersteuning

  • Next.js
  • React
  • TypeScript
  • Java 21
  • Spring Boot
  • PostgreSQL
  • Flyway
  • Socket.IO
  • ESP32
  • Docker
  • OpenShift
  • OWASP ZAP
Kluisdetail · toegang, eigenaarschap en hardware-events komen samen in één beveiligde flow.
Context
Bachelor integratieproject aan UCLL
Team
Team van zes
Mijn rol
Security Engineer, Data Engineer en integratieondersteuning
Stack
Next.js, Spring Boot, PostgreSQL, Socket.IO, ESP32, Docker en OpenShift
Ervaring
OAuth2, TOTP-MFA, CSRF/CORS, Flyway, WebSockets en security scans

Project en context

The Impenetrable 2 was een bachelorintegratieproject waarin we met zes studenten een fysieke kluis koppelden aan een full-stack webplatform. Gebruikers konden een kluis pairen, toegang delen, aanvragen beheren, pincodes wijzigen en beveiligingsgebeurtenissen realtime volgen.

Van fysieke kluis naar werkende demo

Het project was geen losse website of hardwaredemo. De demonstratie bracht een ESP32-opstelling met keypad, display en statusleds samen met de webapplicatie die de kluisstatus en gebeurtenissen zichtbaar maakte.

Fysiek prototype · keypad, display en statusleds maken de IoT-laag tastbaar.
Eventdemo · de fysieke opstelling en webapp werden samen gedemonstreerd.

Toegang, eigenaarschap en realtime events

De kluisdetailpagina toont de kern van het product: openstaande toegangsaanvragen, actieve sleuteldragers, hardware-ID, pincodebeheer en een chronologische eventlog met meldingen vanuit de fysieke kluis.

Kluisdetail · toegang, eigenaarschap en hardware-events komen samen in één beveiligde flow.
Eigendomsoverdracht · gedeelde toegang kan uitmonden in nieuw eigenaarschap.

Veilige koppeling tussen account en hardware

Een eigenaar koppelt een nieuwe kluis via een hardware-ID en tijdelijke schermcode. De backend bewaakt de vervaltijd, valideert de aanvraag en verbindt de fysieke kluis met het juiste account.

Pairing · een tijdelijke code koppelt de fysieke kluis aan het juiste account.

Beheer en data-inzicht

Het admin-dashboard visualiseert gebruikers, geregistreerde hardware, meldingstypes, meldingen met hoge prioriteit en activiteit doorheen de tijd. Zo werd de ruwe eventstroom bruikbaar voor controle en analyse.

Admin-dashboard · events worden bruikbaar als KPI's, filters en visualisaties.

Mijn rol

Mijn focus lag vooral op security en data-engineering. Ik werkte onder andere aan Google OAuth2, TOTP-MFA, JWT-cookies, CSRF/CORS, security headers, Flyway, PostgreSQL-productieconfiguratie, een stored procedure voor atomair toegangsbeheer en OWASP ZAP-scans in CI/CD.

Belangrijkste uitdaging

De grootste uitdaging was dat meerdere lagen tegelijk correct moesten samenwerken: hardware-events, WebSockets, API-security, database-integriteit, toestand in de frontend en OKD-deployment. Ik hielp problemen afbakenen, pull requests reviewen, merge conflicts oplossen en fixes opnieuw in de gedeelde omgeving verifiëren.

Resultaat

Het resultaat was een uitgebreid werkend prototype met fysieke hardware, realtime monitoring, gedeelde toegang, admininzichten en geautomatiseerde securitycontroles. De case toont vooral dat ik verder kijk dan losse features en betrouwbaarheid over het hele systeem belangrijk vind.