Personal / R&D
Real-Time Event Ticketing System
Full-stack real-time ticketing platform with WebSocket-based live availability, secure authentication, versioned schema, Swagger-documented REST APIs, and a responsive Angular UI, proving that the engineer who tests systems can also design and ship them.
Problem
Concurrent ticket sales are one of the honest tests of a distributed system: inventory truth has to survive multiple buyers competing for the same seat at the same millisecond. This project was my sandbox for engineering that truth end-to-end, not just testing someone else's implementation.
Architecture
- Backend: Spring Boot service exposing RESTful APIs, documented with Swagger, backed by MySQL with Liquibase-managed schema migrations. Domain services model tickets, inventory, and booking transitions explicitly.
- Realtime layer: WebSocket channels broadcasting availability updates as bookings commit, so every connected client sees the same truth without polling.
- Frontend: Angular SPA with authentication, live availability, and a responsive UI that stays usable on slower connections.
- Auth: Secure sign-in / session handling, request-scoped identity through to the domain layer.
What I built
- Full-stack architecture and implementation covering backend, frontend, database, realtime sync, and API documentation.
- WebSocket-based synchronisation for concurrent booking management.
- Versioned schema migrations via Liquibase so database change is a first-class deploy artifact.
- Swagger-documented REST endpoints so the contract is legible without reading code.
Why it's in this portfolio
An SDET who has only ever tested other people's systems is a limited SDET. This project is my evidence that when I say "the architecture should look like this", I've built and shipped an equivalent system myself, navigating the same tradeoffs around consistency, concurrency, and API design that I later hold production code to.
TODO: link the public repo and a short demo capture once ready.