A scalable cloud-based video streaming platform featuring secure authentication, high-performance media delivery, AWS cloud integration, and modern full-stack architecture.
- 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
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.
- User Registration
- Secure Login
- JWT Authentication
- Refresh Tokens
- Protected APIs
- Role-Based Authorization
- Upload Videos
- Delete Videos
- Edit Metadata
- Categories
- Thumbnail Upload
- Video Details
- Streaming Support
- AWS S3 Upload
- Secure File Storage
- Signed URLs
- Thumbnail Storage
- Automatic File Removal
- Profile Management
- Watch History
- Continue Watching
- Search Videos
- Responsive UI
- Dashboard
- User Management
- Content Management
- Analytics Ready
- Next.js
- React
- TypeScript
- Tailwind CSS
- Axios
- NestJS
- Node.js
- TypeScript
- MongoDB
- Mongoose
- AWS S3
- IAM
- EC2
- CloudFront (Optional)
- Docker
- Docker Compose
- GitHub Actions
Client
β
βΌ
Next.js Frontend
β
REST API
β
βΌ
NestJS Backend
β
βββββββββββββββββ
β β
βΌ βΌ
MongoDB AWS S3
β
βΌ
Video Storage
StreamSphere
βββ frontend
β βββ app
β βββ components
β βββ hooks
β βββ services
β βββ utils
β
βββ backend
β βββ src
β β βββ auth
β β βββ users
β β βββ videos
β β βββ uploads
β β βββ common
β β βββ config
β β
β βββ Dockerfile
β
βββ docker-compose.yml
βββ README.md
βββ .env.example
git clone https://github.com/jyoti1900/StreamSphere.git
cd StreamSpherecd backend
npm installcd frontend
npm installBackend
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:3000Backend
npm run start:devFrontend
npm run devBuild
docker-compose buildRun
docker-compose up -dStop
docker-compose downThe 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
Register
β
Login
β
JWT Token
β
Protected Routes
β
Refresh Token
β
Authenticated Session
- Authentication
- Users
- Videos
- Uploads
- Categories
- Search
- Dashboard
- JWT Authentication
- Password Hashing
- Protected Routes
- Environment Variables
- AWS IAM Permissions
- Secure File Upload
- Input Validation
- Request Validation
- Lazy Loading
- Optimized MongoDB Queries
- Image Compression
- Efficient API Design
- Modular Architecture
- Cloud Storage
- Dockerized Deployment
- TypeScript Strict Mode
- Live Streaming
- Video Recommendations
- Subscription Plans
- Payment Gateway
- AI Video Search
- Notifications
- Watch Together
- Multi-language Support
- Analytics Dashboard
Add screenshots here
/home
/login
/dashboard
/upload
/video player
Contributions are welcome.
-
Fork the repository
-
Create your feature branch
git checkout -b feature/new-feature- Commit changes
git commit -m "Add new feature"- Push
git push origin feature/new-feature- Create Pull Request
This project is licensed under the MIT License.
| 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!