This is the repo for BE final year project Team No. 30
StreamSync is a livestreaming platform that allows users to stream directly form their browser.
Team Members :
- Parth Bhattad
- Sahil Dahekar
- Prathamesh Kirad 🍐
- Latest NodeJS version -
v20.10.0 (lts/iron) - IDE ( VSCode recommended )
- Fork the repo
Note : Remeber to uncheck the box saying fork only main branch
- Clone the repo locally
git clone https://github.com/<username>/FinalYearProject.git
- Change directory to
backend
cd backend
- Install packages and dependencies
npm i
- Create a new
.envfile and fill all fields as per.env.samplefile
touch .env
- Create a MongodB instance either locally or using MongodB Atlas
You can also use docker mongo container to spin up a local mongodB instance.
- Start the server
npm start
- Change directory to
frontend
cd ../frontend
- Install packages and dependencies
npm i
- Start the frontend
npm run dev
- Display Single User Stream with Screen Share , cam , mic controls.
- Write Backend to Stream this to
Youtubeusing backend ( usewebsocketsandffmpeg) . - Create Landing and Dashboard Pages in Frontend .
- Add Auth Functionality Keeping in mind different API integration optimization (
OAuth,Clerk,Custom using Jwt and cookies) . - Add Support for other Streming platforms (
Twitch,Facebook Live) . - Find alternatives for
MediaRecorderto reduce lag ( current lag is12 secwhen expected is5 - 10 seconTwitch) . - Add Canvas and stream it to backend via WebSockets.
- Add Custom Layout Controls Functionality.
- Add Support for Multi User Stream via
MediaSoupwith a main Stream been admin host. - Migrate to
NextJsand containerize the project. - Deploy
- Create a Branch of your first name that will be used to make pull requests.
- Be comfortable with merge conflicts.
- Use proper commits while pushing code.
- Create issues if found in the issues section
