Videotube is a complex backend project built with Node.js, Express.js, MongoDB, Mongoose, JWT, bcrypt, and more. It serves as the backbone for a video hosting website similar to YouTube, equipped with features like user authentication, video upload, like/dislike, comments, subscriptions, and more.
The Videotube project includes a powerful aggregation pipeline designed to extract relevant information from the MongoDB database. This pipeline is crafted to efficiently process and transform data, providing valuable insights for various functionalities within the video hosting platform.
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT (JSON Web Tokens)
- bcrypt
- 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)
- Tweet creation and publishing
- Viewing user tweets
- Updating and deleting tweets
- Subscribing to channels
- Viewing subscriber and subscribed channel lists
- Creating, updating, and deleting playlists
- Adding and removing videos from playlists
- Viewing user playlists
- Liking and unliking videos, comments, and tweets
- Viewing liked videos
- Adding, updating, and deleting comments on videos
- Viewing channel statistics (views, subscribers, videos, likes)
- Accessing uploaded videos
- Endpoint to verify the backend's health
-
Clone the repository:
git clone https://github.com/Hruthik-28/youtube-twitter.git
-
Install dependencies:
cd youtube-twitter npm install
-
Set up environment variables: Create a .env in root of project and fill in the required values in the .env file using .env.sample file
-
Start the server:
npm run dev
If you wish to contribute to this project, please feel free to contribute.