# YouTube Clone ( MERN stack video sharing app ) ``` # ReactJS in the frontend # State management in the frontend using Redux & Redux Toolkit # Styled components with more emphasis on custom CSS & little bit of Material UI & Icons # Video & Image upload using firebase storage # Search, Like & Dislike, Subscribe a channel & Comment a video features # Video recommendations on the video page # Light / Dark Mode toggling # Axios http client # JWT cookie authentication # Hashed password saving in the MongoDB database # Login & Signup with custom Email & Password, Google OAuth using firebase authentication # RESTful API using ExpressJS and MongoDB with mongoose # Error handler & Protected routes ``` ## Usage Create .env file in the backend folder and add the following environment variables: ``` # PORT=5000 # MONGO_URI= your mongo uri connection string from mongodb # JWT_SECRET=your JWT secret ``` Create .env file in the frontend folder and add the following environment variables, values can be found from firebase project setup ``` # REACT_APP_API_KEY= # REACT_APP_AUTH_DOMAIN= # REACT_APP_PROJECT_ID= # REACT_APP_STORAGE_BUCKET= # REACT_APP_MESSAGING_SENDER_ID= # REACT_APP_APP_ID= ``` ### Install dependencies ``` # Backend deps cd backend npm install # Frontend deps cd frontend npm install ``` ### Run Server ``` # Backend Server (Local) cd backend npm start # Frontend Server (Local) cd frontend npm start ``` ## Demo can be found here https://mern-youtubeclone.herokuapp.com/