Case study · University project, TU Wien
Ticketline
A webshop for event tickets, built by a team of six in the Software Engineering project (SEPM) at TU Wien, on top of a project template from the course. I worked on the backend and the frontend: ticket purchase with an interactive seating plan, news, event creation and account security.
- Full-stack developer in a team of six
- Role
- Winter semester 2023/24 November 2023 – January 2024
- Timeline
- Java 17, Spring Boot 3, Spring Security (JWT), JPA, H2, MapStruct, iText, Angular 17, Angular Material, Cypress, GitLab CI
- Stack
- Completed university project
- Status

The project
Ticketline sells tickets for events. Customers search events, shows, artists and venues, pick their seats in a seating plan, reserve, buy and cancel tickets, and get PDF tickets and invoices. Admins manage artists, events, rooms with their seating plans, news and users. The team built it in one semester, starting from a project template the course provided.
My role
I worked in the Spring Boot backend and the Angular frontend, including tests. My parts were ticket purchase and reservation, news, event creation, account locking and user management, plus fixes to the CI and end-to-end pipeline. Search, the room and seating-plan editor, registration and email verification, and the PDF tickets and invoices were built by teammates. In the final code base, about 4,100 of roughly 28,500 lines are mine.
What I built
Ticket purchase & reservation
The show page with its interactive seating plan, and the purchase and reservation logic behind it in the backend. Purchases are validated on the server, and seats without a price are greyed out.
News with read status
Read and unread per user, news linked to events, an overview, a detail dialog and a creation form. The endpoint is covered by integration tests.
Event creation
Events with image upload and display. Tickets are generated when shows and sectors are created, and artists are found through a search with autocomplete.
Account security
Accounts lock after repeated failed logins. I extended the list of locked users into a full user administration with deleting, and fixed a bug that still let locked users log in.
CI & E2E fixes
Several fixes to the GitLab CI pipeline and the Cypress end-to-end job.
Architecture
Results
- 70 backend tests
- Integration tests with MockMvc and unit tests, all passing.
- From seat to PDF
- A seat picked in the plan ends as a bought ticket with a PDF ticket and an invoice.
- Public source
- The code is on GitLab.
Screenshots

Demo data · Start page 
Demo data · Event page 
Demo data · News with read status 
Demo data · User administration