A free video conferencing app made with React, Typescript, Express.js, Redis, and Agora SDK which uses webRTC protocol under the hood.
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
GET /api/get-room-id
Generate room ID and add it to database.
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 /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 /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 /api/delete-username/${username}
Parameter | Type | Description |
---|---|---|
username |
string |
Required. Username of client |
Delete username of the client from database when leaving room.
Client: React, Redux, SCSS, Typescript, Vite.
Server: Node, Express, Typescript, Redis.
- 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)
Clone the project
git clone https://github.com/rohitman47/relay.git
Go to the project directory
cd relay
Install dependencies
npm install
Start the server
npm run dev