Rendezvous Save Abandoned

React + Jitsi + Serverless + Twilio SendGrid

Project README

rendezvous

This app was created to have fun, learn some stuff and take part in the twilio + DEV hackathon 🥳

📜 Summary

Visitors of the site can invite participants to video conference meetings answering a simple form that emails everyone on their behalf

The meeting room name is picked for you using a unique id to reduce collisions since meetings links are public

Participants click on the link in their email and join the video conference right on the website

ℹ Emails are sent using sendgrid through serverless functions and the video conference runs on an embedded jitsi meet client

🏗 Building it

rendezvous was bootstrapped with create-react-app

Requirements

  • Node.js and yarn (or npm) for development
  • Zeit CLI (for testing the serverless Node.js runtime through zeit now)

Required Environment Variables

Add the following to a .env file at the project root

RENDEZVOUS_HCAPTCHA_SECRET='your_hcaptcha_secret'
RENDEZVOUS_APP_SECRET='anything_you_want_here'
SENDGRID_API_KEY='your_sendgrid_api_key'
  • RENDEZVOUS_HCAPTCHA_SECRET is used for setting up https://www.hcaptcha.com/
  • RENDEZVOUS_APP_SECRET is used as the secret for the hmac messages in the serverless functions when generating the confirmation code
  • SENDGRID_API_KEY is to configure Twilio SendGrid

Then just run

yarn    # install dependencies
now dev # start development instance

If you don't require the serverless runtime you can just run

yarn start

🚀 Deploying

If you wish to deploy to zeit, just make sure to setup git integration and the create-react-app template

Then add the same secrets from your env file to now using their cli and configure a now.json file, for example:

# Adding sendgrid api key to now using the cli
now secrets add sendgrid_api_key your_sendgrid_api_key

and the now.json file

{
  "env": {
    "SENDGRID_API_KEY": "@sendgrid_api_key",
    "RENDEZVOUS_APP_SECRET": "@rendezvous_app_secret",
    "RENDEZVOUS_HCAPTCHA_SECRET": "@rendezvous_hcaptcha_secret"
  }
}

Alternatively, you could deploy a backend of your choice using the same convention for handling the client side requests that validates the email and send the form data to invite participants


🤔 Wait, why not just use meet.jit.si ?

When using the public jitsi server you risk choosing a name that someone else is already using and could end up in some stranger's room

This risk is minimized by picking the name for you using the nanoid library when sending the invites through rendezvous

There is also no invite option on meet.jit.si without integrating with either a Google or Microsoft calendar, an email just makes things easier for a simple rendezvous

✅ Can I still join a meeting through meet.jit.si ?

Absolutely, this is just a sugar built on top of it, you will only need the meeting room and the password if there is one

Additionally, the embedded client support for mobile browsers isn't as good as the jitsi app yet, so rendezvous will show a download link when opened from a mobile a device

Resources

  • Video Conference through Jitsi
  • Emails through SendGrid 📧
  • Base css from MVP.css(with a few modifications)
  • All potential hCaptcha earnings are donated to Wikimedia foundation 🤗

License

MIT © this-fifo

Open Source Agenda is not affiliated with "Rendezvous" Project. README Source: this-fifo/rendezvous
Stars
41
Open Issues
0
Last Commit
4 years ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating