https://github.com/bhuvantenguria/movie_api
https://github.com/bhuvantenguria/movie_api
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/bhuvantenguria/movie_api
- Owner: Bhuvantenguria
- Created: 2025-02-27T12:58:22.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-27T16:40:22.000Z (over 1 year ago)
- Last Synced: 2025-02-27T20:55:43.424Z (over 1 year ago)
- Language: Java
- Size: 89.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚀 **Spring Boot MovieAPI Backend**
---
The Spring Boot MovieAPI Backend is a robust Java 17 application designed to manage movie data efficiently. It incorporates a well-structured database schema backed by MySQL, along with essential REST APIs for CRUD operations, search, filtering, sorting, and pagination. The application also prioritizes security using JWT-based authentication. 🎥🍿
## 🚀 **Technology Stack**
---
- ☕ Java 17
- 🍃 Spring Boot
- 🌐 Spring MVC
- 🛢️ Spring Data JPA
- 📑 Pagination and Sorting
- 🔐 JWT Authentication
- 🐬 MySQL Database
## 🌟 **Key Features**
---
### **CRUD Operations:**
- Create, Read, Update, and Delete (CRUD) operations for movies.
- Ensures data integrity with efficient database interactions.
### **Search and Filtering:**
- 🔍 Search movies by **name**.
- 🎭 Filter movies by **director, cast, release year, and genre**.
- 📅 Sort movies by **release date or name**.
### **Pagination and Sorting:**
- 📑 Efficient pagination for large datasets.
- 📊 Sorting support for better data retrieval and organization.
### **JWT Authentication:**
- 🔐 Secure access to APIs using JSON Web Token (JWT) authentication.
- 🛡️ Ensures only authorized users can perform sensitive operations.
### **Three-Layered Architecture:**
- 🏗️ Separation of concerns with presentation, business logic, and data access layers.
- 📂 Enhances maintainability, scalability, and testing.
## 📌 **MovieAPI Endpoints**
---
### **Movie Management:**
- 🔗 **Add Movie:**
- `POST http://localhost:8080/api/v1/movie/add-movie`
- 🔍 **Get All Movies:**
- `GET http://localhost:8080/api/v1/movie/all`
- 🔍 **Get Movie by ID:**
- `GET http://localhost:8080/api/v1/movie/{id}`
- 🔄 **Update Movie by ID:**
- `PUT http://localhost:8080/api/v1/movie/update/{id}`
- ❌ **Delete Movie by ID:**
- `DELETE http://localhost:8080/api/v1/movie/delete/{id}`
### **Search, Filter, and Sort:**
- 🔍 **Search Movies by Name:**
- `GET http://localhost:8080/api/v1/movie/search?name={movieName}`
- 🎭 **Filter by Director, Cast, Year, or Genre:**
- `GET http://localhost:8080/api/v1/movie/search?director={directorName}`
- `GET http://localhost:8080/api/v1/movie/search?cast={castName}`
- `GET http://localhost:8080/api/v1/movie/search?year={releaseYear}`
- `GET http://localhost:8080/api/v1/movie/search?genre={genre}`
- 📊 **Sort by Release Date or Name:**
- `GET http://localhost:8080/api/v1/movie/allMoviesPageSort?sortBy=releaseDate`
- `GET http://localhost:8080/api/v1/movie/allMoviesPageSort?sortBy=name`
- 📑 **Get Movies with Pagination:**
- `GET http://localhost:8080/api/v1/movie/allMoviesPage?pageNumber=0&pageSize=2`
### **User Authentication:**
- 📝 **User Registration:**
- `POST http://localhost:8080/api/v1/auth/register`
- 🔒 **User Login:**
- `POST http://localhost:8080/api/v1/auth/login`
## 🚀 **Cloning and Running the Project**
---
To get started with the MovieAPI project, follow these steps:
### **1. Clone the Repository:**
```bash
git clone https://github.com/Bhuvantenguria/Movie_Api_Backend.git
```
### **2. Navigate to the Project Directory:**
```bash
cd Movie_Api_Backend
```
### **3. Configure Application Properties:**
- Open `src/main/resources/application.properties`.
- Modify the database connection details to match your MySQL setup.
### **4. Create MySQL Database:**
- Execute the SQL script provided in `src/main/resources/sql-scripts` to set up the necessary database tables.
```bash
mysql -u your_username -p < create_database.sql
```
### **5. Build and Run the Application:**
- Using Maven:
```bash
./mvnw clean install
./mvnw spring-boot:run
```
### **6. Access API Endpoints:**
- Once the application is running, explore the MovieAPI by accessing the defined endpoints.
---
### 📢 **Contributions & Feedback:**
Feel free to contribute, suggest improvements, or report issues via GitHub!
---
Happy Coding! 🚀🎬