Skip to content

AdithyaRao07/netflix-clone-fullstack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

🎬 Netflix Clone — Full Stack (Spring Boot + React + MySQL)

A fully functional Netflix Clone built end-to-end with:

Backend: Spring Boot, Spring Security, JWT, MySQL, JPA

Frontend: React (Vite), Context API, Axios

Features: Authentication, Watchlist, Movie Details, Admin Movie Management

🚀 Features 👤 User Features

Register & Login (JWT Authentication)

Search movies

Watch trailers (YouTube embed)

Add/remove movies from My List

View complete movie details

👨‍💻 Admin Features

Add Movies

Delete Movies

Manage Movie Catalog

🔐 Authentication

Secure JWT login

Role-based access (USER / ADMIN)

Protected routes in frontend

Token sent via Authorization header

🛠 Tech Stack Backend (Spring Boot)

Spring Boot

Spring Security

JWT Authentication

JPA + Hibernate

MySQL

Maven

Frontend (React)

React + Vite

Axios

React Router DOM

Context API

Custom CSS

📁 Project Structure netflix-clone-fullstack/ │ ├── backend/ │ ├── src/main/java/com/adithya/netflixclone/ │ ├── src/main/resources/application.properties │ └── pom.xml │ └── frontend/ ├── src/pages/ ├── src/components/ ├── App.jsx ├── package.json └── vite.config.js

⚙️ Run the Project Locally 1️⃣ Backend Setup Requirements:

Java 17+

Maven

MySQL installed & running

Commands cd backend mvn clean install mvn spring-boot:run

Backend will run at:

👉 http://localhost:8080

2️⃣ Frontend Setup cd frontend npm install npm run dev

Frontend will run at:

👉 http://localhost:5173

🔥 API Documentation (Postman) 1️⃣ Login → Get JWT Token

POST http://localhost:8080/auth/login

Body (JSON) { "email": "test@gmail.com", "password": "1234" }

Response { "token": "eyJhbGciOiJIUzI1NiJ9....", "message": "Login successful" }

2️⃣ Get All Movies (Protected)

GET http://localhost:8080/movies

Headers Authorization: Bearer <your_token>

3️⃣ Admin – Add Movie

POST http://localhost:8080/admin/movies/add

Headers Authorization: Bearer <admin_token> Content-Type: application/json

Body { "title": "Dunkirk", "description": "War drama", "genre": "Action", "rating": 7.9, "year": 2017, "thumbnailUrl": "https://dummyimage.com/600x400/dunkirk", "videoUrl": "https://youtube.com/dunkirk_trailer" }

4️⃣ Add Movie to My List

POST http://localhost:8080/mylist/add/{movieId}

Headers:

Authorization: Bearer

5️⃣ Get My List

GET http://localhost:8080/mylist

Headers:

Authorization: Bearer

📸 Screenshots

🔐 Login Page LoginPage

📝 Register Page image

🏠 Home Page HomePage

🎬 Movie Details image

⭐ My Watchlist Watchlist

🎥 Backend Running (Spring Boot Console) BackendConsole

Frontend Running image

👨‍🎓 Author

Adithya Rao Student & Java Developer

🔗 GitHub: https://github.com/AdithyaRao07

🔗 Project Repo: https://github.com/AdithyaRao07/netflix-clone-fullstack

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors