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

