A full-stack YouTube clone featuring user authentication via Google, video upload and playback, search functionality, subscriptions, comments, likes/dislikes, and more. Built to replicate the core experience of YouTube with modern tech and search indexing support.
- Google OAuth 2.0 login for seamless user authentication
- Video Upload & Playback with custom player controls
- Like/Dislike System on videos
- Commenting System with replies
- Subscriptions & Notifications
- Search Functionality powered by full-text indexing
- User Profiles showing uploaded videos and subscriptions
- Responsive Design across desktop and mobile
| Layer | Technologies |
|---|---|
| Frontend | React, Zustand , Tailwind CSS |
| Backend | Node.js, Express.js |
| Database | MongoDB (+ Mongoose ODM) |
| Authentication | Google OAuth 2.0 |
| Deployment | Vercel, Render |
- Client (React SPA) authenticates using Google OAuth.
- API Server receives requests for uploading, liking, commenting, subscribing, searching.
- Database & Storage: metadata in MongoDB, media files in S3 (or local).
- Search Indexing: videos and captions indexed for fast query with Elasticsearch (or MongoDB).
- Real-time: Subscriptions using Web Sockets or Polling notifications.
Ensure you have the following installed:
- Node.js (v16+)
- npm or yarn
- MongoDB instance
- Google OAuth credentials (Client ID/Secret)
- Elasticsearch (optional; only if using external indexing)
- Docker (optional)
# Clone the repository
git clone https://github.com/HarshitSharma14/Youtube.git
cd Youtube
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install