Skip to content

TOTEM-ABU/CineIQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FullStack Netflix Clone

A full-stack Netflix clone built with the MERN stack (MongoDB, Express.js, React, Node.js) that allows users to browse, search, and watch movies and TV shows.

Netflix Clone Demo

Table of Contents

Features

  • User authentication (signup, login, logout)
  • Browse trending movies and TV shows
  • Search for movies and TV shows
  • View detailed information about movies and TV shows
  • Watch trailers and videos
  • Responsive design for all device sizes
  • User profile with avatar selection
  • Search history tracking

Technologies Used

Frontend

  • React 18
  • React Router v7
  • Tailwind CSS
  • Zustand (State Management)
  • Axios (HTTP Client)
  • React Player (Video Playback)
  • Lucide React (Icons)
  • React Hot Toast (Notifications)

Backend

  • Node.js
  • Express.js
  • MongoDB with Mongoose
  • JSON Web Tokens (JWT) for authentication
  • Bcrypt.js for password hashing
  • TMDB API for movie/TV show data
  • Cookie Parser for handling cookies

Prerequisites

Before you begin, ensure you have met the following requirements:

  • Node.js >= 14.x
  • MongoDB instance (local or cloud)
  • TMDB API Key (get it from The Movie Database)

Project Structure

.
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ config/          # Configuration files
β”‚   β”œβ”€β”€ controllers/     # Request handlers
β”‚   β”œβ”€β”€ middleware/      # Custom middleware
β”‚   β”œβ”€β”€ models/          # Database models
β”‚   β”œβ”€β”€ routes/          # API routes
β”‚   β”œβ”€β”€ services/        # External services (TMDB API)
β”‚   β”œβ”€β”€ utils/           # Utility functions
β”‚   └── server.js        # Entry point
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/  # React components
β”‚   β”‚   β”œβ”€β”€ hooks/       # Custom hooks
β”‚   β”‚   β”œβ”€β”€ pages/       # Page components
β”‚   β”‚   β”œβ”€β”€ store/       # State management (Zustand)
β”‚   β”‚   β”œβ”€β”€ utils/       # Utility functions
β”‚   β”‚   β”œβ”€β”€ App.jsx      # Main App component
β”‚   β”‚   └── main.jsx     # Entry point
β”‚   └── ...
β”œβ”€β”€ .env.sample          # Environment variable template
β”œβ”€β”€ package.json         # Backend dependencies
└── README.md

API Endpoints

Authentication

  • POST /api/v1/auth/signup - User signup
  • POST /api/v1/auth/login - User login
  • POST /api/v1/auth/logout - User logout
  • GET /api/v1/auth/authCheck - Check if user is authenticated

Movies

  • GET /api/v1/movie/trending - Get trending movies
  • GET /api/v1/movie/:id - Get movie details
  • GET /api/v1/movie/:id/videos - Get movie videos
  • GET /api/v1/movie/:id/similar - Get similar movies

TV Shows

  • GET /api/v1/tv/trending - Get trending TV shows
  • GET /api/v1/tv/:id - Get TV show details
  • GET /api/v1/tv/:id/videos - Get TV show videos
  • GET /api/v1/tv/:id/similar - Get similar TV shows

Search

  • GET /api/v1/search/:query - Search for movies/TV shows
  • GET /api/v1/search/history - Get user search history
  • DELETE /api/v1/search/history - Clear user search history

About

🎬CineIQ – A modern movie explorer with backend (Express + MongoDB) and frontend with React, featuring authentication, movie/TV browsing, user profiles, video playback integration, and responsive design. Built with clean architecture, scalable setup. Not sure what to watch? Visit CineIQ and discover your destination before pressing play🎬

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors