https://github.com/saif-gitreps/ReelDash-Backend
A Node.js API server for a short video sharing app where users can sign up, and log in securely. Users can upload videos for others to watch, subscribe to channels, and create, read, update, and delete and customize their own video content and many other features.
https://github.com/saif-gitreps/ReelDash-Backend
aggregation-pipleline cloudinary-api express-js jsonwebtoken mongodb mongoose multer mvc-architecture
Last synced: 5 months ago
JSON representation
A Node.js API server for a short video sharing app where users can sign up, and log in securely. Users can upload videos for others to watch, subscribe to channels, and create, read, update, and delete and customize their own video content and many other features.
- Host: GitHub
- URL: https://github.com/saif-gitreps/ReelDash-Backend
- Owner: saif-gitreps
- Created: 2024-02-03T13:39:35.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-29T12:39:51.000Z (12 months ago)
- Last Synced: 2025-03-28T20:44:33.104Z (10 months ago)
- Topics: aggregation-pipleline, cloudinary-api, express-js, jsonwebtoken, mongodb, mongoose, multer, mvc-architecture
- Language: JavaScript
- Homepage:
- Size: 333 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ReelDash Short Video App Backend
Backend API server for **ReelDash**, a short-video sharing social media application. Built with **Express.js** and **MongoDB**, it leverages **Mongoose** for data modeling and follows the **MVC pattern** to ensure a scalable and secure backend architecture for seamless frontend integration.
## 🚀 Features
### **API Endpoints**
- **Authentication:** Sign up, log in, refresh access token, get CSRF token, get current user details, log out, and update user profile.
- **Videos:** Fetch all videos with query parameters, get a video by ID, publish, delete, update, and fetch random short videos.
- **Users:** Update cover image and avatar, manage user details, and handle watch history.
- **Subscriptions:** Toggle subscriptions, check subscription status, and fetch subscribed channels.
- **Stats:** Retrieve user channel and video stats.
- **Comments:** Add, delete, and update comments on videos and posts.
- **Posts:** CRUD operations for update posts.
- **Likes:** Toggle likes on videos and posts, get like count, and check like status.
### 🔐 Authentication & Security
- **Stateless JWT authentication** with **refresh and access tokens** stored in secure **HTTP-only cookies**.
- **Password hashing & encryption** before storing in the database, with decryption for verification.
- **Role-based access control** (RBAC) for securing endpoints.
- **Route protection** to prevent unauthenticated access.
### 💻 Tech Stack
- **Node.js** with **Express.js** for a high-performance API server.
- **MongoDB** with **Mongoose** ORM, including **aggregation pipeline queries**.
- **MVC architecture** for maintainability and modularity.
- **Multer & Cloudinary** for media file uploads and storage.
- **Custom API response handling** with **structured error** messages.
- **Paginated queries** for optimized data fetching.
- **Detailed logging & error tracking** for debugging in development.
### 🎁 Additional Features
- 🔄 **Highly customizable** and extendable for future features.
- 📊 **Optimized queries** with efficient indexing for fast data retrieval.
- 📜 **Comprehensive documentation** for API integration.