Welcome to Prime Reel β a sleek, responsive movie app built with React, leveraging TMDB API for movie data and OpenAI GPT API for AI-powered search recommendations. Whether youβre here to browse trending movies, play trailers, or explore AI-powered suggestions, Prime Reel offers it all with a smooth user experience!
Check it out live: Prime Reel
GitHub Repository: Prime Reel GitHub
Welcome to Prime Reel β a sleek, responsive movie app built with React, leveraging TMDB API for movie data and OpenAI GPT API for AI-powered search recommendations. Whether youβre here to browse trending movies, play trailers, or explore AI-powered suggestions, Prime Reel offers it all with a smooth user experience!
Check it out live: Prime Reel
GitHub Repository: Prime Reel GitHub
- Prime Reel may not work on the Jio network in India due to certain network restrictions. Please try accessing the site using a different network if you encounter issues.
-
User Authentication
- Login & Signup Forms with Form Validation
- User authentication powered by Firebase
- Redux store integration for managing user sessions
- Update user profile with display name and profile picture
- Auto-redirect: If not logged in, users are sent to the login page
-
Movie Browsing
- Displays Now Playing, Popular, and Trending Movies using custom React hooks
- Embedded YouTube trailers with autoplay and mute for a cinematic experience
- TailwindCSS-based design for a clean, responsive UI
-
AI Search Recommendations
- AI-powered Search Page using OpenAI GPT API
- Get movie suggestions based on your input
- Auto-redirect: If not logged in, users are sent to the login page
-
Movie Browsing
- Displays Now Playing, Popular, and Trending Movies using custom React hooks
- Embedded YouTube trailers with autoplay and mute for a cinematic experience
- TailwindCSS-based design for a clean, responsive UI
-
AI Search Recommendations
- AI-powered Search Page using OpenAI GPT API
- Get movie suggestions based on your input
- Fetch and display recommended movies in a reusable movie list component
- Clone the Repository:
=======
-
Clone the Repository:
git clone https://github.com/chaitu1969/Prime-Reel.git cd Prime-Reel -
Install Dependencies:
npm install-
Configure TailwindCSS:
Set up Tailwind usingpostcss.config.jsandtailwind.config.js. -
Firebase Setup:
- Create a Firebase project.
- Add Firebase configuration to
.envfile. - Deploy with:
npm run build firebase deploy
- TMDB API Setup:
- Register at TMDB and get an API key.
- Add the API key to
constant.js.
-
TMDB API Setup:
- Register at TMDB and get an API key.
- Add the API key to
constant.js.
-
OpenAI GPT Setup:
- Get your OpenAI API key and configure it in the
.envfile. - Use it to fetch AI-powered movie recommendations.
- Get your OpenAI API key and configure it in the
/src
βββ components/
β βββ Header.js
β βββ LoginForm.js
β βββ MovieCard.js
β βββ MovieList.js
β βββ AIRecommendation.js
βββ hooks/
β βββ useNowPlayingMovies.js
β βββ usePopularMovies.js
β βββ useTrendingMovies.js
βββ redux/
β βββ userSlice.js
β βββ movieSlice.js
β βββ gptSlice.js
βββ constants/
β βββ constant.js
=======
Prime-Reel/
β
βββ src/
β βββ components/ # UI components of the application
β β βββ Body.js # Main body of the homepage
β β βββ Browse.js # Browse page to explore movies
β β βββ gptMovieSuggestion.js # GPT-based movie suggestion logic
β β βββ GptSearch.js # Search component powered by GPT
β β βββ gptSearchBar.js # Input bar for GPT movie search
β β βββ Header.js # Header component with navigation links
β β βββ Login.js # Login page
β β βββ MainContainer.js # Primary container for the app layout
β β βββ MovieCard.js # Component displaying a movie card
β β βββ MovieList.js # Component rendering a list of movies
β β βββ SecondaryContainer.js # Secondary section container
β β βββ VideoBackground.js # Component for video background
β β βββ VideoTitle.js # Component for video title display
β β
β βββ hooks/ # Custom hooks for stateful logic
β β βββ useMovieTrailer.js # Hook to fetch movie trailers
β β βββ useNowPlayingMovies.js # Hook to fetch now-playing movies
β β βββ usePopularMovies.js # Hook to fetch popular movies
β β βββ useTopRatingMovies.js # Hook to fetch top-rated movies
β β
β βββ utils/ # Utility functions and configs
β β βββ appStore.js # Redux store configuration
β β βββ auth.js # Firebase authentication logic
β β βββ constants.js # Application-wide constants
β β βββ firebase.js # Firebase initialization
β β βββ gptSlice.js # Redux slice for GPT data
β β βββ movieSlice.js # Redux slice for movie data
β β βββ openai.js # OpenAI API configuration
β β βββ userSlice.js # Redux slice for user data
β β βββ validate.js # Validation utilities
β β
β βββ App.css # Global CSS for the app
β βββ App.js # Root component of the React app
β βββ index.css # Base styles for the app
β βββ index.js # Entry point of the React app
β
βββ .env # Environment variables
βββ .firebaserc # Firebase project configuration
βββ .gitignore # Ignored files for Git
βββ firebase.json # Firebase hosting configuration
βββ package-lock.json # Dependencies lock file
βββ package.json # Project dependencies and scripts
βββ tailwind.config.js # TailwindCSS configuration
βββ README.md # Project documentation
>>>>>>> f85647b2090ed0a79757b770e1fc91e6da934bb7
-
Redux Store:
- Manage user sessions using userSlice.
- Store movie and trailer data efficiently using Redux slices.
-
Routing and State Management:
- Use
react-router-domfor seamless routing. - Implemented memoization to optimize component re-renders.
- Use
-
Custom Hooks:
useNowPlayingMovies,usePopularMovies, anduseTrendingMoviesfor fetching movie data.- Subscriptions handled properly with
unsubscribeon component unmount (inHeader.js).
-
Redux Store:
- Manage user sessions using userSlice.
- Store movie and trailer data efficiently using Redux slices.
-
Routing and State Management:
- Use
react-router-domfor seamless routing. - Implemented memoization to optimize component re-renders.
- Use
-
Custom Hooks:
useNowPlayingMovies,usePopularMovies, anduseTrendingMoviesfor fetching movie data.- Subscriptions handled properly with
unsubscribeon component unmount (inHeader.js).
-
YouTube Embedding:
- Fetch trailer data from TMDB.
- Play trailers seamlessly with embedded YouTube players.
- Frontend: React, Redux, TailwindCSS
- Authentication & Hosting: Firebase
- API Integrations:
- TMDB API for movie data
- OpenAI GPT API for AI-based recommendations
- State Management: Redux Toolkit
- Frontend: React, Redux, TailwindCSS
- Authentication & Hosting: Firebase
- API Integrations:
- TMDB API for movie data
- OpenAI GPT API for AI-based recommendations
- State Management: Redux Toolkit
- Routing: React Router
- Enhance the Main Container for better movie organization.
- Add user preferences to personalize movie recommendations.
- Implement offline caching for better performance.
- Enhance the Main Container for better movie organization.
- Add user preferences to personalize movie recommendations.
- Implement offline caching for better performance.
-
Don't forget to create a
.envfile with the following keys:REACT_APP_FIREBASE_API_KEY=<your-firebase-api-key> REACT_APP_TMDB_API_KEY=<your-tmdb-api-key> REACT_APP_OPENAI_API_KEY=<your-openai-api-key> -
Add
.envto.gitignoreto avoid exposing sensitive information.
Add relevant screenshots or GIFs here to visually represent the app!
=======
REACT_APP_FIREBASE_API_KEY=<your-firebase-api-key>
REACT_APP_TMDB_API_KEY=<your-tmdb-api-key>
REACT_APP_OPENAI_API_KEY=<your-openai-api-key>
- Add
.envto.gitignoreto avoid exposing sensitive information.
Contributions are welcome! Feel free to submit a pull request or open an issue to improve the app.
This project is licensed under the MIT License. See the LICENSE file for more details.
Developed by Chaitanya Karle. Feel free to connect for collaboration opportunities!
LinkedIn: Chaitanya Karle
Email: chaitanya.karle@gmail.com
Enjoy exploring movies with Prime Reel! πΏ