Welcome to the VideoTube
project! 🌐
This project seamlessly integrates the functionalities of YouTube
with the tweeting capabilities of Twitter.
Explore more about this exciting project in the detailed documentation below.
- 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
- Node.js
- Express.js
- MongoDB
- Cloudinary (must have an account)
-
Clone the repository:
git clone [email protected]:Theyashsawarkar/VideoTube-BackEnd.git
-
Install dependencies:
cd VideoTube-BackEnd npm install
-
Set up environment variables: Create a .env in the root of the project and fill in the required values using .env.sample file.
-
Start the server:
npm run dev
For the deployment of the backend application, it is crucial to deploy it on Render. Render maintains the state of the file system between builds and redeployments, which is essential for using disk storage with Multer.
If you choose to deploy the app using other services, consider these options:
- Serverless Deployment: Use Multer's memory storage since serverless platforms don't retain file system state between deployments.
- Serverful Deployment: Render is recommended to ensure the file system state is preserved, but other platforms might work if they support persistent storage.
If you wish to contribute to this project, feel free to join in and make it even better!