A scalable real-time web application that allows users to watch YouTube videos synchronously, instant message, and have voice conversations using WebSockets and WebRTC. It is built with the following technologies:
Purpose | Software Technology |
---|---|
Frontend Development | Reactjs, TypeScript, Antd |
End-to-End Testing | Cypress |
WebSocket Service | Socket.io |
Render YouTube Videos | YouTube IFrame Player API |
Voice Streaming | Mediasoup |
Server | Express |
In-memory Database | Redis |
Containerization | Docker |
Deployment | NGINX, S3, CloudFront, AWS EC2 |
Session Server:
On one terminal
$ cd server
$ npm install
$ docker-compose up --build
On another terminal
$ cd server
$ npm run dev
Voice Server:
$ cd rtc-server
$ npm install
$ npm run dev
Frontend:
$ cd client
$ npm install
$ npm start
- University: San Jose State University
- Course: CMPE 195E/F
- Contributors: William Nguyen, Gary Chang, Hamsika Pongubala, Emanuel Ypon