This project is a feature-rich YouTube clone developed using the MERN stack, JWT for authentication, and Firebase Storage for video and file storage. The aim of this project is to replicate the core functionalities of YouTube, providing users with the ability to upload, view, like, comment, and interact with videos in a seamless manner.
A demonstration of the project can be found here.
- User Authentication: Utilizing JWT for secure user authentication.
- User Registration and Login: Seamless registration and login processes for users.
- Video Management: Enables uploading and viewing of videos.
- Channel Creation: Users can create channels and upload their own content.
- Interaction Features: Including liking, commenting, saving, and sharing videos.
- Playlist Creation: Users can create playlists and share them with others.
- Cloud Storage: Utilizes Firebase Storage for efficient video storage.
- YouTube Studio: Provides a platform for managing channels and content.
- Responsive Design: Ensures a consistent user experience across mobile and desktop devices.
- MongoDB: A robust database solution for storing user data and video metadata.
- Express.js: A minimalist web application framework for handling API requests.
- React.js: A powerful frontend library for building the user interface.
- Node.js: A JavaScript runtime environment for server-side development.
- Firebase Storage: Cloud-based storage solution for efficient video uploads.
- JSON Web Tokens (JWT): Used for secure user authentication.
- React Icons & MUI: Libraries for incorporating icons and UI components.
- Create
.envFile: Start by creating a.envfile in the root directory of the project. - Add Environment Variables: Populate the
.envfile with necessary environment variables such as database connection URLs and API keys. Ensure sensitive information is securely stored. - MongoDB URI Configuration: Insert your MongoDB Atlas URI in the
databasefile located within thebackendfolder.
SECRET_KEY=your-secret-key
EMAIL=email-to-use-as-nodemailer-service
PASSWORD=google-app-password
- Install Dependencies: Begin by installing the server dependencies:
npm install
- Start the Server: Initiate the server by running:
npm start
- Install Dependencies: Install client dependencies using:
npm install
- Start the Client Application: Launch the client application with:
npm run dev
Access the application by navigating to http://localhost:5173 in your web browser.