This project is a backend implementation of a video hosting platform, equipped with robust authentication, video management, and interaction functionalities such as likes, dislikes, and comments. It leverages technologies like Node.js, Express.js, MongoDB, and various other tools to ensure secure and efficient operation.
-
Authentication: Implemented robust authentication using JWT tokens and bcrypt encryption to ensure secure user authentication.
-
Video Management: Engineered features for managing videos, including uploading, updating, and deleting videos.
-
Interaction Functionality: Provided functionalities such as likes, dislikes, and comments on videos to enhance user engagement and interaction.
-
File Uploads: Utilized Cloudinary and Multer for both local and cloud file uploads, resulting in a significant cost reduction and faster upload times.
-
Node.js: A JavaScript runtime environment for building scalable network applications.
-
Express.js: A web application framework for Node.js, providing a robust set of features for web and mobile applications.
-
MongoDB: A NoSQL database for storing and managing data in a scalable and flexible manner.
-
Mongoose: An Object Data Modeling (ODM) library for MongoDB and Node.js, providing a higher level of abstraction for managing MongoDB databases.
-
JWT (JSON Web Tokens): A compact, URL-safe means of representing claims to be transferred between two parties securely.
-
bcrypt: A password hashing function designed to securely hash passwords.
-
Cloudinary: A cloud-based image and video management solution, offering powerful features for storing, managing, and delivering media files.
-
Multer: A middleware for handling
multipart/form-data
, primarily used for file uploads.
-
Clone the repository from GitHub.
-
Install dependencies using npm or yarn:
npm install
-
Set up environment variables, including MongoDB connection string, Cloudinary credentials, and JWT secret.
-
Start the server:
npm start
- Contributions to this project are welcome. If you have any suggestions, bug reports, or feature requests, please open an issue or submit a pull request following the contribution guidelines.