https://github.com/vikashkatiyar/movie_api_backend
The Spring Boot MovieApi Backend, leveraging Java 17, integrates file handling, pagination, JWT authentication, and a three-layered architecture. This ensures efficient media storage, optimized data presentation, secure authentication, and a modular codebase for managing movie-related data reliably and securely.
https://github.com/vikashkatiyar/movie_api_backend
file-handling hibernate java jwt-authentication mysql-database pagination-library spring-boot spring-data-jpa spring-security
Last synced: 12 months ago
JSON representation
The Spring Boot MovieApi Backend, leveraging Java 17, integrates file handling, pagination, JWT authentication, and a three-layered architecture. This ensures efficient media storage, optimized data presentation, secure authentication, and a modular codebase for managing movie-related data reliably and securely.
- Host: GitHub
- URL: https://github.com/vikashkatiyar/movie_api_backend
- Owner: Vikashkatiyar
- Created: 2024-01-19T21:39:27.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-15T05:49:16.000Z (over 2 years ago)
- Last Synced: 2025-01-27T04:29:05.758Z (over 1 year ago)
- Topics: file-handling, hibernate, java, jwt-authentication, mysql-database, pagination-library, spring-boot, spring-data-jpa, spring-security
- Language: Java
- Homepage:
- Size: 2.59 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚀 **Spring Boot MoviePosterFetch (MovieAPI) Backend**
---
The Spring Boot MovieAPI Backend is a powerful Java 17 application crafted to manage movie data efficiently. It prioritizes performance, security, and modularity, incorporating features like file handling, pagination, JWT authentication, and a three-layered architecture. Explore a seamless movie data experience with this backend! 🎥🍿
# 🚀 **Technology Used:**
---
- ☕ Java
- 🍃 Spring Boot
- 🌐 Spring MVC
- 🛢️ Spring Data JPA
- 📑 Pagination and Sorting
- 📁 File Handling
- 🔐 JWT Authentication
- 🐬 MySQL Database
# 🌟 Key Features
---
- **File Handling:**
- 📁 Seamless media storage for efficient retrieval.
- 🖼️ Manages images and other movie-related assets.
- **Pagination:**
- 🔍 Enhances data presentation.
- 🚀 Optimizes resource usage.
- 📑 Retrieves data in manageable chunks for improved performance.
- **JWT Authentication:**
- 🔐 Prioritizes security.
- 🔑 Implements JSON Web Token (JWT) authentication.
- 🛡️ Ensures only authorized users access and interact with sensitive movie data.
- **Three-Layered Architecture:**
- 🏗️ Modular codebase for maintainability and scalability.
- 🎯 Separation into presentation, business logic, and data access layers.
- 🔍 Facilitates easier debugging, testing, and future enhancements.
## 🚀 **MovieAPI Endpoints**
---
- 🔗 **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/1`
- 📁 **Get Profile Picture:**
- `GET http://localhost:8080/file/profile-pic`
- 🔄 **Update Movie by ID:**
- `PUT http://localhost:8080/api/v1/movie/update/1`
- ❌ **Delete Movie by ID:**
- `DELETE http://localhost:8080/api/v1/movie/delete/2`
- 📑 **Get Movies with Pagination:**
- `GET http://localhost:8080/api/v1/movie/allMoviesPage?pageNumber=0&pageSize=2`
- 📑 **Get Movies with Sorting:**
- `GET http://localhost:8080/api/v1/movie/allMoviesPageSort?sortBy=title`
- 📝 **User Registration:**
- `POST http://localhost:8080/api/v1/auth/register`
- 🔒 **User Login:**
- `POST http://localhost:8080/api/v1/auth/login`
# 🚀 **Cloning the Project**
---
To kickstart your journey with the MovieAPI project, follow these simple steps:
1. **Clone the Repository:**
```bash
git clone https://github.com/Vikashkatiyar/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 the API Endpoints:**
- Once the application is running, explore the MovieAPI by accessing the defined endpoints.
Now you're all set! Dive into the MovieAPI project, manage movie-related data effortlessly, and feel free to contribute or report issues. Happy coding! 🎬🍿
# 🌟 **Project Author**
## **Vikash Katiyar**
📧 **Email:** vikashktr018@gmail.com
Feel free to reach out to the author for any inquiries, feedback, or collaboration opportunities related to the MovieAPI project. Your input is valuable! 🚀