Welcome to Thunder Tube! This project is a YouTube clone designed to replicate core features of YouTube, such as video subscriptions, likes, playlists, comments, channel profiles, and more. Thunder Tube is built using modern web technologies including React.js, Node.js, HTML, CSS, JavaScript, and MongoDB.
Try it out at - https://thunder-tube.vercel.app/
- User Registration and Login (JWT Authentication)
- Video Upload and Playback
- Subscribe to Channels
- Like and Dislike Videos
- Create and Manage Playlists
- Comment on Videos
- View Channel Profiles
- Frontend: React.js, HTML, CSS, JavaScript
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: JWT (JSON Web Tokens)
-
Clone the repository:
git clone https://github.com//thunder-tube.git
-
Navigate to the project directory:
cd thunder-tube
-
Install dependencies for both frontend and backend:
npm install cd client npm install cd ..
-
Set up environment variables by creating a
.env
file in the root directory and adding the following:MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key
-
Start the development server:
npm run dev
- Navigate to
http://localhost:3000
in your web browser. - Register a new account or log in with an existing account.
- Explore features like uploading videos, subscribing to channels, creating playlists, and more.
- POST /api/auth/register - Register a new user
- POST /api/auth/login - Login a user
- GET /api/videos - Get all videos
- POST /api/videos - Upload a new video
- GET /api/videos/:id - Get a video by ID
- GET /api/videos/:videoId/comments - Get comments for a video
- POST /api/videos/:videoId/comments - Add a comment to a video
- GET /api/playlists - Get all playlists
- POST /api/playlists - Create a new playlist
- GET /api/playlists/:id - Get a playlist by ID
- POST /api/subscriptions/:channelId - Subscribe to a channel
- DELETE /api/subscriptions/:channelId - Unsubscribe from a channel
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
Parag Ghatage - [email protected]
Project Link: https://github.com/ParagGhatage/Thunder-Tube