This project is a YouTube + Twitter inspired backend system that combines the core features of YouTube (video hosting, user subscriptions, comments, likes) with the micro-posting functionality of Twitter (tweets). It is a fully functional backend built using Node.js, Express.js, MongoDB, Mongoose, JWT, Bcrypt, and Cloudinary.
This is a complete backend project with all standard practices such as JWT authentication, Bcrypt for password security, Access & Refresh Tokens for session management, and scalable MongoDB database models.
It provides features like:
- User management with authentication
- Video hosting and management
- Tweet posting and management
- Playlist management
- Subscriptions, likes, comments, and replies
- Channel dashboard with analytics
Content | Link |
---|---|
Data Models | Click here |
- Registration, login, logout, password reset
- Profile management (avatar, cover image, details)
- Watch history tracking
- Video upload and publishing
- Video search, sorting, and pagination
- Video editing and deletion
- Visibility control (publish/unpublish)
- Create and publish tweets
- View user tweets
- Update and delete tweets
- Subscribe/unsubscribe to channels
- View subscriber and subscribed channel lists
- Create, update, and delete playlists
- Add/remove videos from playlists
- View user playlists
- Like/unlike videos, comments, and tweets
- View liked videos
- Add, update, and delete comments on videos
- View channel statistics (views, subscribers, videos, likes)
- Access uploaded videos
- Endpoint to verify backend status
- Node.js
- Express.js
- MongoDB + Mongoose
- JWT (Authentication)
- Bcrypt (Password hashing)
- Cloudinary (Media storage)
git clone https://github.com/adityashriwas/YouTube_backend.git
npm install
npm run dev
If you wish to contribute to this project, please feel free to contribute.