PlayTube (YOUTUBE + TWITTER) is a project designed that have functionality of a video hosting platform similar to YouTube and micro-blogging feature similar to twitter. This project is built using Node.js, Express.js, React.js, MongoDB and incorporates various other technologies to ensure a robust system. The project aims to provide a complete features for a video hosting website, featuring essential functionalities such as user authentication, video uploading, liking/disliking, commenting, subscribing/unsubscribing, admin panel, watch history, liked videos etc. It includes features that utilizing standard practices such as JWT, bcrypt, access tokens, and refresh tokens for security. Find more about this project in the documentation below.
| Content | Link |
|---|---|
| Live Link | click here |
| API Documentation | click here |
| Model | click here |
| Frontend | click here |
- Registration, login, logout, change password
- Profile management (avatar, cover image, other details)
- Watch history tracking and Clearing Watch History
- Liked videos tracking
- Video upload
- Canceling Video upload with all resources cleaned up on backend.
- Visibility control (publish/un-publish)
- Video editing and deletion
- Video Search and pagination
- Tweet creation and publishing
- Viewing user tweets
- Updating and deleting tweets
- Liking-disliking tweets
- Subscribing to channels
- Viewing Channel subscriber
- Viewing Subscribed channel lists
- Creating, updating, and deleting playlists
- Adding videos to playlists
- Removing videos from playlists and undoing them
- Viewing user playlists
- Liking and Un-liking videos, comments, and tweets
- Viewing liked videos
- Adding, updating, and deleting comments on videos
- Viewing channel statistics (views, subscribers, videos, likes)
- Accessing uploaded videos and Controls
- Viewing Video statistics (PublishStatus, VideoName, DateUploaded, Views, TotalComments, LikeRatings)
- Endpoint to verify the server's health
- Node.js: The runtime environment for executing JavaScript code server-side.
- Express.js: A web application framework for Node.js.
- MongoDB: A NoSQL database used for storing application data.
- Mongoose: An Object Data Modeling (ODM) library for MongoDB and Node.js.
- JWT: JSON Web Tokens for securely transmitting information between parties as a JSON object.
-
Clone the repository:
git clone https://github.com/Yash-Zanzarukiya/PlayTube.git
-
Install dependencies:
cd PlayTube 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
For any questions or suggestions, please contact me at my socials.
Thanks to all my Instructors.