This project marks a significant milestone in my backend development journey, where I've delved into various technologies and frameworks to build a comprehensive video hosting website enriched with tweet functionalities. Using Node.js, Express.js, MongoDB, Mongoose, JWT, Multer, Bcrypt, Cloudinary, and many more, i have create a robust backend for a feature-rich video hosting website with tweet functionalities.
- Sign up and login functionalities for users.
- Secure user authentication using JWT and bcrypt.
- Upload videos seamlessly.
- Like, dislike, and comment on videos.
- Advanced features like comment likes, dislikes, and replies.
- Allow users to subscribe and unsubscribe from channels.
- Users can post tweets, like, and dislike them.
Node.js & Express.js: The core of the backend development. MongoDB & Mongoose: Database management for storing user data, videos, and tweets. JWT & Bcrypt: Ensuring secure user authentication. Multer & Cloudinary: Handling video uploads and storage. And Many More.
Configure your application using the following environment variables:
- PORT: Set to your desired port number.
- MONGODB_URI: Set to your MongoDB connection URI.
- CORS_ORIGIN: Set to the allowed CORS origin (e.g.,
*
for all or specify your frontend domain). - ACCESS_TOKEN_SECRET: Set to a secure string for generating access tokens.
- ACCESS_TOKEN_EXPIRY: Set to the desired expiration time for access tokens (e.g.,
1d
for one day). - REFRESH_TOKEN_SECRET: Set to a secure string for generating refresh tokens.
- REFRESH_TOKEN_EXPIRY: Set to the desired expiration time for refresh tokens (e.g.,
10d
for ten days).
We use a combination of session and cookies. The ACCESS_TOKEN
is not stored in the database, while the REFRESH_TOKEN
is stored for a specific duration.
For Cloudinary integration:
- CLOUDINARY_CLOUD_NAME: Set to your Cloudinary cloud name.
- CLOUDINARY_API_KEY: Set to your Cloudinary API key.
- CLOUDINARY_API_SECRET: Set to your Cloudinary API secret.
Make sure to set these environment variables in your deployment environment or provide a .env
file for local development.
(upload in upcoming days because project is ongoing!)
https://app.eraser.io/workspace/YtPqZ1VogxGy1jzIDkzj
This is not the end; I plan to continually enhance this project with additional functionalities based on user feedback and evolving needs. Moreover, if time permits, I aspire to delve into frontend development to create a seamless user experience.
I express my gratitude to Hitesh Sir for providing valuable insights and guidance throughout this learning journey. I've dedicated substantial time to reading, watching tutorials, and building upon the provided assignments to shape this project into a feature-rich backend.
Thank you for being part of my learning journey!
This project is licensed under the MIT License - Chai Aur backend, @hiteshchoudhary and @KuntalRathod