This application implements functionality for a cinema with several halls. It is possible to register visitors who will be able to purchase tickets for a certain time in the selected hall The project is built using Java and popular frameworks such as Spring and Hibernate. Includes authentication/authorization, REST, and a global wait handler.
-
Registration and authorization (POST: /register, GET: /login)
- Viewing:
- cinema halls (GET: /cinema-halls)
- movies (GET: /movies)
- available movie sessions (GET: /movie-sessions/available)
-
Add new:
- cinema halls (POST: /cinema-halls)
- movies (POST: /movies)
- movie sessions (POST: /movie-sessions). "showTime" should be passed as a list: [YYYY,m,d,HH,mm,ss]
-
Update and delete movie session (PUT: /movie-sessions/{id}, DELETE: /movie-sessions/{id})
-
Get some user by email (GET: /users/by-email)
-
Logout (GET: /logout)
- Registration and authorization (POST: /register, GET: /login)
- Viewing:
- cinema halls (GET: /cinema-halls)
- movies (GET: /movies)
- available movie sessions (GET: /movie-sessions/available)
- Get orders and shopping carts (GET: /orders, GET: /shopping-carts/by-user)
- Complete orders (POST: /orders/complete)
- Add tickets to shopping cart for some movie session (PUT: /shopping-carts/movie-sessions)
- Logout (GET: /logout)
- Registration and authorization (POST: /register, GET: /login)
- Java 11
- Hibernate
- Spring Framework
- REST
- MySQL
- Apache Tomcat 9.0.54 (to run app locally)
- Download and install Java 11 SDK.
- Download and install Tomcat (version 9.0.63).
- Download and install MySQL.
- Create schema (cinema)
- Clone project to your IDE.
- Add your username, password and DB url in db.properties file.
- Use Postman to send requests.
- Admin
- Login: admin@i.ua
- Password: admin123
- User
- Login: regular@i.ua
- Password: regular321
This project is also deployed to Heroku. AWS RDS MySQL instance is used as a DB. You can click it via this link: Heroku Link