A backend application for managing events and ticket purchases built with Spring Boot.
Users can browse events, purchase tickets, and validate tickets using QR codes.
This project demonstrates real-world backend architecture, REST API design, authentication, and ticket validation workflows.
Organizers (staff users) can:
- Create events
- Update event details
- Delete events
- Publish events
- Search events
- List available events
Each event contains:
- Title
- Description
- Location
- Event date
- Ticket types
- Pricing
Attendees can:
- Browse events
- Purchase tickets
- Receive QR code tickets
Ticket purchase flow:
- User selects an event
- Selects ticket type
- Ticket is created in database
- QR code is generated
- Ticket is linked to the user
At the event venue:
- Staff scans the QR code
- System validates the ticket
- Ticket status becomes VALIDATED
This prevents duplicate entry and ticket fraud.

Can:
- View events
- Purchase tickets
- View purchased tickets
- Access QR code
Can:
- Create events
- Manage events
- Validate tickets
Controller Layer
↓
Service Layer
↓
Repository Layer
↓
Database
Controller
Handles REST API requests and responses.
Service
Contains business logic such as ticket purchasing and event validation.
Repository
Handles database interaction using Spring Data JPA.
Backend
- Java
- Spring Boot
- Spring Security
- Spring Data JPA
Database
- PostgreSQL
Authentication
- Keycloak
Mapping
- MapStruct
Other Tools
- Docker
- QR Code Generator
Create Event
POST /events
List Events
GET /events
Purchase Ticket
POST /tickets/purchase
Validate Ticket
POST /tickets/validate
Requirements
- Java 17+
- PostgreSQL
- Docker
- Keycloak
Run the project
mvn spring-boot:run
This project demonstrates:
- Domain modeling
- REST API design
- Spring Security
- OAuth authentication with Keycloak
- DTO and MapStruct usage
- Clean backend architecture
- Ticket purchasing system
Anant Tiwary
Backend Developer | Java | Spring Boot | PostgreSQL
GitHub: https://github.com/annattiwary12
If you found this project helpful, please consider giving it a star ⭐ on GitHub.
It helps others discover the project and motivates further improvements.
This project was built for learning backend system design concepts including:
- REST API development
- Authentication and security
- Database modeling
- Ticket validation workflows
- Real-world backend architecture