/cinema-app

Cinema REST API for tickets reservation

Primary LanguageJava

Logo
📽️ Cinema app 📽️

Cinema REST API for tickets reservation

📣 Project description 📣

This is a Cinema REST API for tickets reservation, that exposes several resources end-points: movies, cinema-halls, movie sessions, users, orders etc. It supports CRUD operations, has embedded authentication and authorization. Also, it follows SOLID principles and is built up using N-tier architectural principle.

Features

- Registration and login/logout options
- Authorization with two roles: user and admin
- CRUD operations
- Saving data to the database
- 3-layer architecture: Controllers, Services and Repositories

🧱Project structure🧱

- Controllers - take main part in request/response cycle, receive data from users and invoke business logic of services to process it and store in database. Send back data to users, when they request it.
- Services - this layer coordinates work of all application, process commands and performs calculations.
- Data access objects - here information is stored and retrieved.

⚙️Technologies⚙️

Java Spring Spring-Security Maven Hibernate Liquibase Lombok TomCat MySQL






💣Instructions for launching the project💣

To run this project locally, follow these steps:

1️⃣ You should install TomCat, MySQL and Maven

2️⃣ Clone this project from GitHub

git clone https://github.com/PavloPolovyi/taxi-service

3️⃣ Configure app.properties in resources folder: set db.user and db.password
4️⃣ Run command

mvn build

5️⃣ Configure TomCat for this project and run it

6️⃣ You need tool like Curl or other utility that can send http requests to see how Cinema app works. You can use default user (email: admin@i.ua, password: admin123) or create your own by calling POST http method on "/register" endpoint and providing json object in format '{email:your email or whatever, password:your password}'.