ZombieLand
Amusement park booking platform — 4 repositories, Stripe payments, QR code tickets, and a centralized logging microservice.

Context
Final project for the CDA certification (RNCP Level 6). Built in a team of 4 over ~1 month.
A fictional French amusement park needed to digitize its manual ticketing system to reduce operational load and improve user experience.
My role
Product Owner · Lead Back-end
I managed the team daily — standups, sprint planning, prioritization — while designing and building the entire back-end architecture. I also set up Redux Toolkit for the team and built the full admin back-office.
What I built
Design
conception- Architecture of a 4-repository system (API, frontend, logging service, upload service)
- Database schema modeled with Merise (MCD, MLD, MPD)
- Sequence diagrams for key flows — auth, payment, QR scan (PlantUML)
- Agile methodology — 4 sprints, daily standups, sprint planning, prioritization
- Led a team of 4 to deliver all features within the deadline
Frontend
- Redux Toolkit setup for the team
- Admin back-office for full park management
Backend
- Prisma ORM setup — schema design, migrations, seeding
- JWT auth — access + refresh tokens, HTTP-only cookies, automatic token rotation
- QR code generation per confirmed order (signed JWT, scannable at entry)
- Email flows — registration confirmation and password reset (Nodemailer)
- Base controller with reusable CRUD routes, rate limiting, input sanitization, centralized error handling
- Global test setup for integration tests — real PostgreSQL instance, full HTTP lifecycle
Microservices
- Upload service — AdonisJS 6 + Lucid ORM + Japa tests, handles all activity image management
- Logging service — Express + Elasticsearch 8.15 + Kibana, receives Winston transports, persists NDJSON daily files, indexed and visualized in Kibana behind Traefik Basic Auth
DevOps
- Multi-stage Alpine Docker builds on all 4 services
- Deployed on VPS via Dokploy — git push triggers auto-deploy
- Unit + integration tests (Node.js built-in runner, Vitest 3.2 + Testing Library)
- Husky hooks — pre-commit: lint + unit, pre-push: integration + frontend
Deployment
Deployed on VPS via Dokploy — git push triggers auto-deploy on all 4 services simultaneously. Multi-stage Dockerfiles (Alpine, non-root users) on every service. Kibana exposed via HTTPS through Traefik with Basic Auth (htpasswd, dynamic config).
CDA title obtained — confirmed April 2026. Project validated by jury. Demonstrates team leadership, full back-end architecture design, and delivery under deadline with a team of 4.