Go Chat
Group video chatting app using Golang & Agora & websocket + webrtc & Firebase & React
Authors
Contributors & Special Thanks
- @tahsin-siad for helping me with React part.
🔗 Links
Tech Stack
Client:
Server:
Prerequisites
- Firebase project
- Firebase service account keys file which can be found on firebase project settings
service account
tab - Firebase web API key which can be found on firebase project settings
general
tab - Enable
Email/Password
based authentication in firebase which can be found onauthentication
tab - Agora project app key and app certificate which can be found on agora
project management
tab
Limitation
- Unable to share the link for another user to join the channel/room.
- If another user is not authenticated, redirect him to the login page that is missing.
- Web app routes need to be authenticated
Interactive API documentation (provided by Swagger UI, Redoc, Rapidoc)
- http://localhost:8080/docs/swagger
- http://localhost:8080/docs/redoc
- http://localhost:8080/docs/rapidoc
Current Working Procedure(Steps)
- Open two browser tabs (incognito tabs will not work for now)
- Login or Sign up with email and password.
- Create a Room
- Join the call
- Go to the 2nd browser tab and paste the 1st tabs link & press the join call button
Run Locally (Server)
Go to the project directory
cd gochat
Put the firebase service account key file
check the fb-svc-key.example.json file for reference
fb-svc-key.json
Install dependencies
go mod vendor
Start the server Locally
go run main.go serve
Start the server using Docker
make development
or
./run.sh
Run Locally (Web)
Go to the project directory
cd gochat/web
Put Agora App Id in settings.js
file in components folder
Install dependencies
npm i
Start the server Locally
npm run dev