A scalable backend application built with Node.js, Express.js, MongoDB, and JWT authentication. The project simulates the backend architecture of a video-sharing platform and implements industry-standard authentication, user management, media handling, and engagement features.
- JWT-based Authentication
- Access Token & Refresh Token Flow
- Password Hashing using bcrypt
- Protected Routes & Authorization
- User Registration & Login
- Profile Management
- Avatar & Cover Image Uploads
- Account Updates
- Upload Videos
- Update Video Details
- Delete Videos
- Publish / Unpublish Videos
- Like / Unlike Videos
- Comment System
- Reply Support
- Subscribe / Unsubscribe Channels
- Cloudinary Integration
- Image Upload Management
- Video Asset Management
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT
- bcrypt
- Cloudinary
- Postman
- Git
- GitHub
The application follows a modular backend architecture:
src/
├── controllers/
├── models/
├── routes/
├── middlewares/
├── utils/
├── services/
└── database/
- REST API Design
- Authentication & Authorization
- Token Management
- MongoDB Data Modeling
- Backend Scalability Practices
- File Upload Handling
- Production-Ready Project Structure
git clone <repository-url>
cd video-stream-backend
npm install
npm run devPORT=
MONGODB_URI=
ACCESS_TOKEN_SECRET=
ACCESS_TOKEN_EXPIRY=
REFRESH_TOKEN_SECRET=
REFRESH_TOKEN_EXPIRY=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=- Video Streaming Optimization
- Notifications System
- Watch History
- Recommendation Engine
- Analytics Dashboard
Anupam Choubey