/MovieVerse

Welcome to MovieVerse, a comprehensive MERN (MongoDB, Express, React, Node.js) application that provides an immersive movie experience similar to IMDb. Discover, engage, and interact with movies, TV series, and their creators in a user-centric environment.

Primary LanguageJavaScript

MovieVerse - Your Ultimate Movie App


Demo

demo.mp4

Introduction


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.

Technologies


React Node.js Express.js MongoDB Material UI SwiperJS Formik Yup Express Validator Jsonwebtoken Axios

Front-end


  • 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.

Back-end


  • 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.

Features


  • 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.

Usage


  1. Clone or download this repository to your local machine.

      git clone
  2. Navigate to the project directory:


   cd movie-verse
   ```
  1. Install dependencies for the server:

cd server
    npm install
  1. 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

Rescources for getting API keys:

TMDB
MongoDB

  1. Install dependencies for the client:
    cd client
    npm install

Run the app


  1. Run the server:

cd server
npm start
  1. Run the client:

cd client
npm start
  1. Open http://localhost:3000 to view it in the browser.

Contributing


Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.