A free video conferencing app made with React, Typescript, Express.js, Redis, and Agora SDK which uses webRTC protocol under the hood.
Environment Variables
To run this project, you will need to add the following environment variables to your .env file
AGORA_APP_ID
AGORA_APP_CERTIFICATE
DB_URL
API Reference
Get room ID
Generate room ID and add it to database.
Verify room ID
GET /api/verify-room-id/${roomId}| Parameter | Type | Description |
|---|---|---|
roomId |
string |
Required. Room ID to be verified |
Check if the room ID is valid by querying the database.
Get access token
GET /api/get-access-token?roomId=${roomId}&username=${username}| Parameter | Type | Description |
|---|---|---|
roomId |
string |
Required. Room ID |
username |
string |
Required. Username of client |
Get access token for the given room ID and also add username to database.
Get username
GET /api/get-username/${uid}| Parameter | Type | Description |
|---|---|---|
uid |
string |
Required. UID of the user |
Get username of the remote user with the given UID.
Delete username
DELETE /api/delete-username/${username}| Parameter | Type | Description |
|---|---|---|
username |
string |
Required. Username of client |
Delete username of the client from database when leaving room.
Authors
Tech Stack
Client: React, Redux, SCSS, Typescript, Vite.
Server: Node, Express, Typescript, Redis.
Features
- Video conferencing with upto 20 people in a call
- Switch cameras on supported devices
- Screen sharing with audio on supported devices
- Floating client video in 2 user call
- Fullscreen mode
- Progressive Web App (PWA)
Screenshots
Run Locally
Clone the project
git clone https://github.com/rohitman47/relay.git
Go to the project directory
Install dependencies
Start the server


