A feature-rich YouTube clone built using the MERN stack, JWT for authentication, and Firebase Storage for video and file storage. This project aims to replicate the core functionalities of YouTube, allowing users to upload, view, like, comment, and interact with videos.
Youtube.Clone.MERN.mp4
Or watch the demo here.
- User Authentication using JWT.
- User Registration and Login.
- Uploading and viewing videos.
- Create a channel and upload content.
- Like, comment, save, and share videos.
- Create playlists and share them with others.
- Video storage using Firebase Storage.
- YouTube studio to manage channel and content.
- Responsive design for mobile and desktop.
- And much more...
- MongoDB: Database for storing user data and video metadata.
- Express.js: Server framework for handling API requests.
- React.js: Frontend library for building the user interface.
- Node.js: JavaScript runtime for the server.
- Firebase Storage: Cloud storage for video uploads.
- JSON Web Tokens (JWT): For user authentication.
- React Icons & MUI: For icons.
- Create a
.env
file in the root directory of your project. - Add necessary environment variables to the
.env
file, such as database connection URLs, API keys, or other sensitive data. - Add your own MongoDB Atlas URI in the datbase file inside the backend folder.
SECRET_KEY=your-secret-key
EMAIL=email-to-use-as-nodemailer-service
PASSWORD=google-app-password
Install server dependencies:
npm install
Start the server:
npm start
Install client dependencies:
npm install
Start the client application:
npm run dev
Open your web browser and visit http://localhost:5173
to access the application.