Skip to content

Latest commit

 

History

History
117 lines (87 loc) · 3.37 KB

File metadata and controls

117 lines (87 loc) · 3.37 KB

VidTwit - Video Platform

VidTwit is a full-featured backend and frontend for a YouTube-style video sharing platform. It supports authentication, video uploads, comments, subscriptions, and more..., Along with posting like X(twitter), built using Node.js, Express.js, MongoDB, Cloudinary, JWT on the backend, and React.js, Tailwind CSS, Axios on the frontend.


Preview

click to check live

Features

Backend

  • JWT-based Authentication (Register, Login, Refresh, Logout)
  • Profile Management (avatar, cover image, password update)
  • Video CRUD (upload, get, update, delete, publish toggle)
  • Tweet CRUD (upload, get, update, delete)
  • Comments System (create, read, update, delete, paginated)
  • Likes System (toggle likes on videos)
  • Subscriptions (subscribe/unsubscribe, channels, fetch subscribers)
  • Playlists (create, update, delete, add/remove videos)
  • Channel Stats (views, likes, total videos/subscribers)
  • Cloudinary Integration (for image/video uploads)
  • Async handlers, custom API response/error utilities
  • Pagination support via Mongoose plugins
  • Modular code structure & middleware system

Frontend (excluding Likes and Playlists)

  • User Authentication (Login/Register, logout)
  • Profile Management (avatar, cover image, password) and also updation
  • Video Upload, Watch, and Browse Pages (update, delete, publish)
  • Tweet Upload, Watch, and Browse Pages (update, delete)
  • Comment Section with Live Updates
  • Subscriptions (subscribe/unsubscribe channels, view subscribers)
  • Channel Pages with Statistics
  • Responsive UI (mobile and desktop)
  • API integration with backend services

Tech Stack

Layer Technologies
Backend Node.js, Express.js, MongoDB, Mongoose, Cloudinary, JWT, Multer
Frontend React.js, Tailwind CSS, Axios, React Router
Database MongoDB


Table of Contents


Environment Variables

Backend

Create a .env file with the following keys:

PORT=3000

MONGO_URI=your_mongodb_connection_string

ACCESS_TOKEN_SECRET=your_jwt_secret
ACCESS_TOKEN_EXPIRY=1d
REFRESH_TOKEN_SECRET=your_refresh_token_secret
REFRESH_TOKEN_EXPIRY=10d

MY_CLOUD_NAME=your_cloud_name
MY_CLOUD_API_KEY=your_api_key
MY_CLOUD_SECRET_KEY=your_api_secret

# Email Service Configuration (Required for OTP functionality)
EMAIL_HOST=your_smtp_host
EMAIL_PORT=587
EMAIL_USER=your_email_address
EMAIL_PASS=your_email_password
EMAIL_FROM=your_sender_email

NODE_ENV=development

Frontend

Create a .env file with the following keys:

VITE_API_URL =http://localhost:3000/api/v1


Author

Muhammad Sohaib


Contributors

Thanks to all the amazing people who have contributed to this project!

Contributors