/Gochat

Group video chating app using golang & agora as a webrtc client & firebase

Primary LanguageGoMozilla Public License 2.0MPL-2.0

Go Chat

Group video chatting app using Golang & Agora as webrtc client & Firebase & React

Authors

Contributors & Special Thanks

🔗 Links

Tech Stack

Client:

Server:

Prerequisites

  1. Firebase project
  2. Firebase service account keys file which can be found on firebase project settings service account tab
  3. Firebase web API key which can be found on firebase project settings general tab
  4. Enable Email/Password based authentication in firebase which can be found on authentication tab
  5. 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)

  1. Open two browser tabs (incognito tabs will not work for now)
  2. Login or Sign up with email and password.
  3. Create a Room
  4. Join the call
  5. 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