A full-featured backend system for managing music festivals and performance submissions using Java + Spring Boot + MySQL.
This project provides a RESTful API backend for the complete lifecycle of music festivals — from creation, through performance submissions and reviews, to the final lineup announcement. It implements role-based access control for ARTIST, ORGANIZER, STAFF, and VISITOR users.
- Java 21
- Spring Boot 3 (Spring Web, Spring Data JPA, Spring Security)
- MySQL 8 (via mysql-connector)
- Lombok (for reducing boilerplate code)
- Maven (for dependency management and build automation)
- JUnit / Spring Boot Test (for unit and integration testing)
- model: Entity classes representing Users, Festivals, Performances, etc.
- repository: Spring Data JPA repositories for database operations
- service: Business logic layer handling festival and performance operations
- controller: REST controllers exposing the API endpoints
- security: Spring Security configuration for authentication and role-based authorization
- resources: Configuration files (
application.properties) for database and server settings
Additional documentation (ER diagrams, component diagrams, use-case and sequence diagrams) is included for design reference.
- Clone the repository
git clone https://github.com/agrigoridou/MusicFestivalManagementSystem.git cd MusicFestivalManagementSystem