CineMagic is a web application that allows users to discover movies and TV shows. It utilizes React, Redux, and the TMDB API to provide an engaging experience for movie enthusiasts. Users can explore various genres, search for specific titles, and watch trailers.
- Browse movies and TV shows by categories.
- Search functionality for specific titles.
- Detailed views of movies and TV shows, including descriptions, ratings, and genres.
- User authentication using Firebase.
- Responsive design for optimal viewing on all devices.
- Frontend: React, Redux, React Router
- Styling: SCSS, Bootstrap
- API: TMDB API
- Authentication: Firebase
- State Management: Redux Toolkit
To get started with the project, follow these steps:
-
Clone the repository:
git clone https://github.com/dipandhali2021/CineMagic.git
-
Navigate into the project directory:
cd CineMagic
-
Install the dependencies:
npm install
-
Configure the project with necessary API and configuration keys
Follow these steps:
- Visit The Movie Database (TMDb) Developer Page.
- Create a TMDb account if you don’t have one.
- After logging in, go to the 'API' section in your account settings.
- Copy the API Read Access Token from the available tokens.
- Go to the Firebase Console.
- Log in and create a new project, or select an existing one.
- In the project dashboard, go to Project Settings (click on the gear icon).
- Scroll down to the Your apps section and click Add app > Web to register a new web app.
- After the app is registered, you’ll see a Firebase config object with API keys and other settings. Copy the config values (e.g.,
apiKey
,authDomain
, etc.).
- In the Firebase Console, go to Realtime Database in the left sidebar.
- If you don’t have a database already, create a new one.
- Copy the Database URL from the database settings.
- It should look something like https://your-project-id.firebaseio.com
-
In your project directory, navigate to the
CineMagic
folder:cd CineMagic
-
Create a
.env
file in the project directory and paste the keys in it as follows.VITE_APP_TMDB_TOKEN=your_tmdb_api_read_access_token VITE_FIREBASE_API_KEY=your_firebase_api_key VITE_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain VITE_FIREBASE_DATABASE_URL=your_firebase_database_url VITE_FIREBASE_PROJECT_ID=your_firebase_project_id VITE_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket VITE_FIREBASE_MESSAGING_ID=your_firebase_messaging_id VITE_FIREBASE_APP_ID=your_firebase_app_id
Note: Make sure to replace each placeholder with the actual values from TMDb and Firebase.
- You can refer to
.env.template
for a sample layout of environment variables.
To run the development server, use the following command:
npm run dev
Contributions are welcome! If you would like to contribute to this project, please fork the repository and submit a pull request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.