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://dev.to/devteam/announcing-the-twilio-hackathon-on-dev-2lh8
- 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)
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 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 💇.
day 4
Read through a quick start guide for Twilio. Informative and pretty simple to implement.
Also looked at Zapier.com which is primarily an app service integration tool, featuring triggers and actions. E.g. if this happens in app A then do this in app B. Really useful but didn't solve a challenge I face. Then I dug a little deeper and found that it supports web hooks. So I plan on using that to solve a challenge I face.
Twilio support are pretty good. They resolved my issue in two days.
Planning on reading through the Twilio API for phone calls later today.
Will read through some comments now.
Happy hacking everyone 🏋️
day 29
After working on different projects. I found some time to check in with my hackathon entry and look at things that still need to be done.
I recommend that everyone read through the hackathon entry guidelines again and make sure you've completed all the requirements.
When I read through it again I recalled that I need to provide a comprehensive README.md. Not just a project with the README.md as it is.
I also found out that I had a file exposing some credentials.
Found a really handy script 🧙 online to remove it from GitHub. Which by the way left my GitHub refs in tatters. So I had to set up remote, pull down my repo' again. And well. Not what anyone would like to see in the morning before the submission deadline.
Link to the article ownyourbits.com/2017/01/18/complet.... #dontuseit
1 day left - it's so exciting....
day 7
I spent a good part of my evening hacking Twilio. The documentation is good. But I couldn't find a solution or information on how to solve a use-case 🗯️.
After reading and trying many times ⚔️, looking for 🐛. It was apparent that I hand 't made an error, I had simply not added an attribute to twilio-node client API call being made.
I found this challenging and very time-consuming. But I did manage to get it fixed. After joining the community support website, creating a ticket and waiting.....
Waiting..... Waiting..... 😫. So I reached out to the instant chat option and the support technician helped me sort it out.
And then there is Zapier. Didn't realise that I was using a free account 😮. Looks like an upgrade is needed 💳.
But with that being worked on, or completed. You can see what I've been doing and plan on doing here github.com/bernardbaker/twiliohack.... Check out the branches and the issues ⚡.
day 5
So today I plan to start hacking away at getting a website online using Netlify, creating a repo for the project. Setup GitFlow << info, run through a Twilio quick start, and look into linking a visitor's Google Calendar.
While I do that, it's always advisable to set up a project and issue tracking on GitHub. Follow the development here github.com/bernardbaker/twiliohack....
Made good progress with Twilio today. Got a conference call running and I'm able to add multiple people to the call.
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 13
With a recent win in a covidglobalhackathon.com/projects/... being the highlight of my past week 🙋I feel that my efforts to fight COVID19 around the world are showing results.
And today I plan to configure Zapier to trigger calls for the Let's Connect project. Amongst other things like getting the app verified by Google, a privacy policy, terms of service, acceptable use, etc. There is a fair amount of work to be completed. Those areas have their challenges.
I'll also be doing some training, a CSS course to improve my skills 📗.
Checking comments, making suggestions and contributing to projects will fill part of my day ✌️.
So to everyone who is taking part. Keep the momentum going and update everyone with your progress 😜.
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 ⌨️.
day 14
I plan to continue learning from a course I am taking on CSS. It's long. And covers parts of the language that I already know, terminology, semantics and syntax and parts that I don't.
I've re-configured the ⚡at zapier.com. It triggers a webhook. And the calls are made.
There are a few bugs that I would like to address that I foresee happening. If someone doesn't answer 😕. If someone is called from Twilio while in another conference 📵. Maybe send an SMS?? But that's all to be considered at a later date 🤔.
So how is everyone doing? Please leave a comment if you read this.