A full-stack movie discovery web application where users can explore movies and TV shows, search content in real time, watch trailers, and manage their movie preferences.
This platform integrates the TMDB (The Movie Database) API for movie data and a custom backend for authentication, favorites, and watch history.
The project demonstrates building a production-level MERN-style application using modern technologies like React, Redux Toolkit, Node.js, Express, and MongoDB.
- Browse Trending Movies
- View Popular Movies
- Explore TV Shows
- Discover Actors / People
- View movie images and media
All movie data is fetched dynamically from the TMDB API.
Users can search for:
- Movies
- TV Shows
- Actors / People
Features include:
- Real-time search results
- Debounced API calls
- Fast and relevant results
- Watch movie trailers inside the app
- Trailer fetched via YouTube links
- Opens inside a modal video player
Fallback handling:
Trailer for this movie is currently unavailable.
The application safely handles missing trailers.
While data loads:
- Loader animations
- Skeleton UI
- Smooth user experience
Secure authentication using JWT tokens.
Users can:
- Sign Up
- Log In
- Log Out
Users can:
- Add movies to favorites
- Remove movies from favorites
- View favorite movies in a dedicated section
Favorites are stored in the backend database.
When a user:
- Opens a movie page
- Watches a trailer
That movie is automatically stored in Recent Watch History.
Admin can manage platform content.
- Add movies
- Edit movie details
- Delete movies
- View users
- Ban users
- Delete users
Admin must provide:
- Movie Title
- Poster Image URL
- Description
- Movie ID
- Release Date
- Trailer YouTube Link
- Genre
- Category
- React.js
- Redux Toolkit
- React Router
- Axios / Fetch
- Infinite Scroll
- Debouncing
- Responsive UI
- Node.js
- Express.js
- MongoDB
- JWT Authentication
| Operation | Description |
|---|---|
| Create | Admin adds movies |
| Read | Fetch movies and users |
| Update | Edit movie details |
| Delete | Remove movies |
The application works smoothly on:
- Desktop
- Mobile
- Tablet
- Debouncing for search
- Lazy loading
- Efficient API calls
- State management with Redux Toolkit
| Missing Data | Fallback |
|---|---|
| Poster | Placeholder Image |
| Description | "Description not available" |
| Trailer | "Trailer not available" |
The application never crashes due to missing API data.
git clone https://github.com/yourusername/movie-platform.git
cd movie-platformnpm installnpm startFrontend runs on:
http://localhost:3000
Navigate to backend folder:
cd backendInstall dependencies:
npm installStart backend server:
npm run devBackend runs on:
http://localhost:5000
Create a .env file inside the backend directory.
Example:
TMDB_API_KEY=your_tmdb_api_key
JWT_SECRET=your_secret_key
MONGO_URI=your_mongodb_connection_string
PORT=5000
movie-platform
│
├── frontend
│ ├── src
│ │ ├── components
│ │ ├── pages
│ │ ├── redux
│ │ ├── services
│ │ └── App.js
│
├── backend
│ ├── controllers
│ ├── models
│ ├── routes
│ ├── middleware
│ └── server.js
│
└── README.md
Add screenshots of:
- Home Page
- Movie Details Page
- Search Results
- Favorites Page
- Admin Dashboard
Sk Ramiz Raza
LinkedIn:
https://www.linkedin.com/in/sk-ramiz-raza/
⭐ If you like this project, consider giving it a star on GitHub.