demo.mp4
MovieVerse is a comprehensive MERN (MongoDB, Express, React, Node.js) application that offers an immersive movie experience similar to IMDb. With features such as detailed movie information, cast details, trailers, user accounts, reviews, and more, Movie-verse brings the world of movies to your fingertips.
- Create React App: Building user interfaces with React.
- Material UI: A popular React UI framework for creating visually appealing interfaces.
- SwiperJS: A swiper/slider component for images and other content.
- React Router v6: For handling navigation within the app.
- Formik: For building and validating forms in React.
- Yup: A schema validation library for form validation.
- Axios: For making HTTP requests to APIs.
- Express: A fast and minimalist web application framework for Node.js.
- Express Validator: Middleware for express that provides validation and sanitation of incoming data.
- Jsonwebtoken: For handling user authentication and authorization.
- Mongoose: An elegant MongoDB object modeling for Node.js.
- Axios: For making HTTP requests from the server.
- Sign up and Sign in functionality for user accounts.
- Save movies to the Favorite list (with the ability to remove items).
- Write and manage reviews for movies (including the ability to delete reviews).
- Search functionality for movies, TV series, and people.
- Light and Dark theme for personalized user experience.
-
Clone or download this repository to your local machine.
git clone
-
Navigate to the project directory:
cd movie-verse
```
- Install dependencies for the server:
cd server
npm install
- Create a
.env
file in the server directory and add the following environment variables:
MONGODB_URL= # Your MongoDB connection string
PORT=5000
TOKEN_SECRET_KEY= # Your secret key for JWT it can be any string
TMDB_BASE_URL=https://api.themoviedb.org/3/
TMDB_KEY= # Your TMDB API key
- Install dependencies for the client:
cd client npm install
- Run the server:
cd server
npm start
- Run the client:
cd client
npm start
- Open http://localhost:3000 to view it in the browser.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.