TicketSpring is a Spring Boot web application for online booking of cinema tickets.
It allows users to browse movies, select sessions, choose seats, and confirm bookings – all online.
Administrators can manage movies, sessions, and users through a dedicated dashboard.
- User registration & login (with role-based security).
- Browse available movies & sessions.
- Interactive seat selection with real-time availability.
- Booking confirmation with persistence in the database.
- Admin dashboard to manage movies, sessions, and users.
- Create, update, and delete entities (CRUD).
- User management (roles & permissions).
- Spring Boot application entry point (CinemaReservationsApplication).
- MVC pattern: Controllers, Services, Repositories.
- Security: Configured with Spring Security.
- Database: Configurable (H2/MySQL/Postgres).
- Templating: Thymeleaf templates.
- API documentation with Swagger/OpenAPI.
- Java 17+
- Maven 3.8+
- A database (H2/MySQL/PostgreSQL).
# Clone the repository
git clone https://github.com/pgerasymchuk/TicketSpring.git
cd TicketSpring
# Build with Maven
mvn clean install
# Run the app
mvn spring-boot:runBy default, the app runs at:
👉 http://localhost:8080
http://localhost:8080/→ Homepagehttp://localhost:8080/admin→ Admin dashboard
The REST API is documented with Swagger/OpenAPI.
You can find definitions in resources/api-docs/.
Edit src/main/resources/application.properties to match your DB:
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=updateFor MySQL/Postgres, replace spring.datasource.url and credentials accordingly.
- Add payment gateway integration.
- Seat availability locking mechanism for concurrent booking.
- Email notifications for successful bookings.
- Containerization with Docker.
- Frontend SPA (React/Angular) consuming the REST API.
⭐ If you like this project, don’t forget to star the repo!