Skip to content

jyoti1900/StreamSphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 StreamSphere

Enterprise-Grade Video Streaming Platform built with Full Stack TypeScript

TypeScript NestJS Next.js MongoDB AWS Docker

A scalable cloud-based video streaming platform featuring secure authentication, high-performance media delivery, AWS cloud integration, and modern full-stack architecture.


πŸ“‘ Table of Contents

  • Overview
  • Features
  • Tech Stack
  • Architecture
  • System Design
  • Folder Structure
  • Installation
  • Environment Variables
  • Running Locally
  • Docker Deployment
  • AWS Deployment
  • API Modules
  • Authentication
  • Cloud Storage
  • Security
  • Performance Optimizations
  • Future Improvements
  • Screenshots
  • Contributing
  • License

πŸš€ Overview

StreamSphere is a production-ready video streaming platform inspired by modern OTT applications. It allows users to securely upload, manage, stream, and organize video content while leveraging AWS cloud services for scalable media storage.

The project follows industry-standard backend architecture using NestJS, Next.js, MongoDB, AWS S3, Docker, and JWT Authentication.


✨ Features

Authentication

  • User Registration
  • Secure Login
  • JWT Authentication
  • Refresh Tokens
  • Protected APIs
  • Role-Based Authorization

Video Management

  • Upload Videos
  • Delete Videos
  • Edit Metadata
  • Categories
  • Thumbnail Upload
  • Video Details
  • Streaming Support

Media Storage

  • AWS S3 Upload
  • Secure File Storage
  • Signed URLs
  • Thumbnail Storage
  • Automatic File Removal

User Features

  • Profile Management
  • Watch History
  • Continue Watching
  • Search Videos
  • Responsive UI

Admin Features

  • Dashboard
  • User Management
  • Content Management
  • Analytics Ready

πŸ›  Tech Stack

Frontend

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Axios

Backend

  • NestJS
  • Node.js
  • TypeScript

Database

  • MongoDB
  • Mongoose

Cloud

  • AWS S3
  • IAM
  • EC2
  • CloudFront (Optional)

DevOps

  • Docker
  • Docker Compose
  • GitHub Actions

πŸ— Architecture

Client
     β”‚
     β–Ό
Next.js Frontend
     β”‚
 REST API
     β”‚
     β–Ό
NestJS Backend
     β”‚
 β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚               β”‚
 β–Ό               β–Ό
MongoDB       AWS S3
                 β”‚
                 β–Ό
          Video Storage

πŸ“ Project Structure

StreamSphere

β”œβ”€β”€ frontend
β”‚   β”œβ”€β”€ app
β”‚   β”œβ”€β”€ components
β”‚   β”œβ”€β”€ hooks
β”‚   β”œβ”€β”€ services
β”‚   └── utils
β”‚
β”œβ”€β”€ backend
β”‚   β”œβ”€β”€ src
β”‚   β”‚   β”œβ”€β”€ auth
β”‚   β”‚   β”œβ”€β”€ users
β”‚   β”‚   β”œβ”€β”€ videos
β”‚   β”‚   β”œβ”€β”€ uploads
β”‚   β”‚   β”œβ”€β”€ common
β”‚   β”‚   └── config
β”‚   β”‚
β”‚   └── Dockerfile
β”‚
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ README.md
└── .env.example

βš™ Installation

Clone Repository

git clone https://github.com/jyoti1900/StreamSphere.git

cd StreamSphere

Backend

cd backend

npm install

Frontend

cd frontend

npm install

πŸ”‘ Environment Variables

Backend

PORT=3000

MONGO_URI=

JWT_SECRET=

JWT_REFRESH_SECRET=

AWS_REGION=

AWS_ACCESS_KEY_ID=

AWS_SECRET_ACCESS_KEY=

AWS_BUCKET_NAME=

CLOUDFRONT_URL=

Frontend

NEXT_PUBLIC_API_URL=http://localhost:3000

β–Ά Running Locally

Backend

npm run start:dev

Frontend

npm run dev

🐳 Docker

Build

docker-compose build

Run

docker-compose up -d

Stop

docker-compose down

☁ AWS Deployment

The project supports deployment using

  • AWS EC2
  • AWS S3
  • IAM Roles
  • Docker
  • GitHub Actions CI/CD
  • CloudFront (Optional)

Deployment Flow

GitHub

↓

GitHub Actions

↓

AWS EC2

↓

Docker Container

↓

NestJS Server

↓

MongoDB

↓

AWS S3

πŸ” Authentication Flow

Register

↓

Login

↓

JWT Token

↓

Protected Routes

↓

Refresh Token

↓

Authenticated Session

πŸ“¦ API Modules

  • Authentication
  • Users
  • Videos
  • Uploads
  • Categories
  • Search
  • Dashboard

πŸ”’ Security

  • JWT Authentication
  • Password Hashing
  • Protected Routes
  • Environment Variables
  • AWS IAM Permissions
  • Secure File Upload
  • Input Validation
  • Request Validation

⚑ Performance Optimizations

  • Lazy Loading
  • Optimized MongoDB Queries
  • Image Compression
  • Efficient API Design
  • Modular Architecture
  • Cloud Storage
  • Dockerized Deployment
  • TypeScript Strict Mode

πŸ“ˆ Future Improvements

  • Live Streaming
  • Video Recommendations
  • Subscription Plans
  • Payment Gateway
  • AI Video Search
  • Notifications
  • Watch Together
  • Multi-language Support
  • Analytics Dashboard

πŸ“Έ Screenshots

Add screenshots here

/home

/login

/dashboard

/upload

/video player

🀝 Contributing

Contributions are welcome.

  1. Fork the repository

  2. Create your feature branch

git checkout -b feature/new-feature
  1. Commit changes
git commit -m "Add new feature"
  1. Push
git push origin feature/new-feature
  1. Create Pull Request

πŸ“„ License

This project is licensed under the MIT License.


πŸ‘¨β€πŸ’» Developed By

Team Member Contribution
Jyotipriya Das πŸš€ Project Lead, Backend Development, Cloud Infrastructure (AWS), CI/CD Pipeline, Docker, System Architecture
Sayan Pal πŸ’» Full Stack Development, Testing, Debugging, UI/UX Implementation
Indrajit Sahu 🎨 Frontend Development, UI Components, User Experience

⭐ If you found this project helpful, consider giving it a Star!

About

Enterprise-grade full-stack video streaming platform built with Next.js, NestJS, TypeScript, MongoDB, AWS S3, Docker, and JWT Authentication.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages