Target Data models to build ER_Diagram
Documentation: Postman API Documentation
To Check api health condition GET: https://youtube-kanai.onrender.com/api/v1/healthcheck/
To use all the routes, go through Postman API Documentation
This is a comprehensive backend project for a YouTube clone with additional Twite features. It is built using JavaScript, Node.js, and various popular libraries and frameworks.
- Secure user authentication using JWT (JSON Web Tokens).
- Video Upload: Allows users to upload videos to the platform.
- Cloudinary Integration: Integrates with Cloudinary for efficient storage of video and image assets.
- User Authorization: Implements user roles and permissions for managing video content.
- Pagination: Utilizes mongoose-aggregate-paginate-v2 for seamless pagination of video content.
- Channel Subscription: Users can subscribe to their favorite channels to receive updates on new videos.
- Like and Comment: Users can express their appreciation by liking videos and leaving comments.
- Playlist Management: Allows users to create and manage playlists for organizing their favorite videos.
- User Dashboard: Provides a personalized dashboard where users can view statistics, such as video views, likes, and subscriber count.
- Tweet Creation: Users can compose and post tweets to share their thoughts or updates.
- Tweet Editing: Provides the ability for users to edit their tweets after posting.
- Tweet Deletion: Allows users to remove tweets they no longer wish to keep.
These features collectively create a comprehensive video-sharing platform with functionalities similar to YouTube, including video uploads, channel subscriptions, likes, comments, playlists, and a user dashboard. Additionally, the integration of Twitter-like features allows users to share and interact with short messages in a familiar social media style.
- Clone the repository:
git clone https://github.com/Kanai2003/youtube_clone
- Install dependencies:
npm install
- Set up environment variables:
Create a .env file in the root directory and provide the necessary variables
PORT= MONDODB_URI= CORS_ORIGIN= ACCESS_TOKEN_SECRET= ACCESS_TOKEN_EXPIRY=1d REFRESH_TOKEN_SECRET= REFRESH_TOKEN_EXPIRY=10d CLOUDINARY_CLOUD_NAME= CLOUDINARY_API_KEY= CLOUDINARY_API_SECRET=
- Run the development server:
npm run dev
Access the API endpoints locally at http://localhost:your_port
- bcrypt: Password hashing library.
- cloudinary: Cloudinary SDK for media storage.
- cookie-parser: Parse and set cookies in requests.
- cors: Enable Cross-Origin Resource Sharing.
- dotenv: Load environment variables from a file.
- express: Web application framework.
- jsonwebtoken: Generate and verify JSON web tokens.
- mongoose: MongoDB object modeling.
- mongoose-aggregate-paginate-v2: Paginate MongoDB aggregation results.
- multer: Middleware for handling multipart/form-data.
Contributions are welcome! Please follow the contribution guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
Kanailal Manna(Kanai2003) All thanks to Mr. Hitesh Choudhary