/in-sync

Primary LanguageTypeScript

👨‍💻👩‍💻▶️ in-sync

Build Status

Introduction

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

Install dependencies and spin up development environment:

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

High Level System Design

4 2 Interface and Component Design (1)

Production Environment

prod env

Course/Contributors

Project Information

References