Skip to content

this is final project where we'll create youtube clone with dummy data for better understanding of mern stack and tailwind css

Notifications You must be signed in to change notification settings

utkrisht25/YouTube_Clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 

Repository files navigation

🎥 YouTube Clone

A full-stack YouTube clone application built with the MERN stack (MongoDB, Express.js, React.js, Node.js) that replicates core YouTube functionalities.

🌐 Live Demo

View Live DemoView GitHub RepositorySample Video Demo

✨ Features

User Management

  • 🔐 User authentication (Register/Login)
  • 🔑 Google OAuth integration
  • 👤 User profile management
  • 🎨 Customizable user avatars

Channel Features

  • ✍️ Create and manage channels
  • 📝 Edit channel details
  • 🎯 Channel analytics
  • 👥 Subscribe/Unsubscribe functionality

Video Features

  • 📤 Upload videos
  • 🎬 Video playback
  • 📊 View count tracking
  • 👍 Like/Dislike functionality
  • 💬 Comment system
  • 🏷️ Category-based filtering
  • 🔍 Search functionality

UI/UX Features

  • 📱 Fully responsive design
  • 🌙 Intuitive user interface
  • ⚡ Fast loading times
  • 🎯 Category-based navigation
  • 🔄 Real-time updates

🛠️ Tech Stack

Frontend

  • ⚛️ React.js
  • 🎨 Tailwind CSS
  • 🔄 Redux Toolkit
  • 🛣️ React Router
  • 📦 Vite

Backend

  • 🖥️ Node.js
  • 🚂 Express.js
  • 🗄️ MongoDB
  • 🔐 JWT Authentication
  • 📦 Mongoose

Additional Tools

  • 🔄 Git & GitHub
  • 📦 npm
  • 🎨 Shadcn UI
  • 🖼️ React Icons

📥 Installation & Setup

  1. Clone the repository

    git clone https://github.com/yourusername/youtube-clone.git
    cd youtube-clone
  2. Install dependencies for both client and server

    # Install client dependencies
    cd client
    npm install
    
    # Install server dependencies
    cd ../server
    npm install
  3. Set up environment variables

    Create .env files in both client and server directories:

    Client (.env):

    VITE_API_BASE_URL=http://localhost:8080/api
    VITE_GOOGLE_CLIENT_ID=your_google_client_id

    Server (.env):

    MONGODB_URI=your_mongodb_uri
    JWT_SECRET=your_jwt_secret
    PORT=8080
  4. Start the development servers

    In the client directory:

    npm run dev

    In the server directory:

    npm run dev

📱 Responsive Design

The application is fully responsive and optimized for:

  • 📱 Mobile devices
  • 💻 Tablets
  • 🖥️ Desktop screens
  • 📺 Large screens

🔐 Authentication Flow

  1. Traditional email/password registration and login
  2. Google OAuth integration
  3. JWT-based authentication
  4. Secure cookie handling
  5. Protected routes implementation

🎯 Core Functionalities

Video Management

  • Upload with progress tracking
  • Automatic thumbnail generation
  • Video processing
  • View count tracking
  • Like/Dislike system

User Interaction

  • Comment system
  • Real-time notifications
  • Channel subscriptions
  • Video sharing

Search & Discovery

  • Video search
  • Category filtering
  • Trending videos section
  • Recommended videos

🔄 State Management

  • Redux Toolkit for global state
  • Context API for theme and sidebar state
  • Local storage for user preferences
  • JWT for authentication state

🔜 Upcoming Features

  • Video quality selection
  • Playlist creation
  • Watch later functionality
  • Video download option
  • Dark mode toggle

🤝 Contributing

Contributions are welcome! Please read our contributing guidelines to get started.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

👥 Author

🙏 Acknowledgments

  • Inspiration from YouTube
  • Icons from React Icons
  • UI Components from Shadcn UI
  • All contributors and supporters

Made with ❤️ and JavaScript

About

this is final project where we'll create youtube clone with dummy data for better understanding of mern stack and tailwind css

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published