This repository is archived. We moved the code to our monorepo.
An app for hosting meetings, e.g. facilitated sessions on our courses.
The app presents a user interface where people can join via links like:
meet.bluedot.org/?cohortId=rec1234
Behind the scenes, we make API calls to Airtable to get information regarding that cohort, the cohort classes and the participants in that cohort. Once we find the nearest cohort class, we present the participants in it so people can choose to login as that participant. In case someone else is joining, we give users an escape hatch to enter a custom name.
We then render the Zoom meeting with the Zoom Meeting SDK.
Once in the meeting, the facilitator can claim host with the host key.
We may change from having a concept 'cohorts' / 'cohort classes' etc., and make another service responsible for that. Then this service would just be for hosting the actual meeting itself.
- Clone this repository
- Install Node
- Install dependencies with
npm install
- Create an Airtable personal access token with the scopes 'data.records:read', 'data.records:write', 'schema.bases:read'.
- Set the environment variables in
.env.local
- Run the server with
npm start
This app is deployed using Vercel and uses an Airtable base as a database. API keys are stored safely in Vercel environment variables. GitHub Actions hits the scheduler endpoint.
To deploy a new version, simply commit to the master branch. GitHub Actions automatically handles CD, via npm run deploy:prod
.