DEV Community

Cover image for Let's Connect
Bernard Baker
Bernard Baker

Posted on • Edited on

Let's Connect

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

https://lets-connect.xyz


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

Top comments (31)

Collapse
 
bernardbaker profile image
Bernard Baker

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 💇.

 
bernardbaker profile image
Bernard Baker

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.

Collapse
 
bernardbaker profile image
Bernard Baker • Edited

day 1

Just signed up and created a Twilo account.

Quick and easy to do. Looking forward to connecting people during COVID-19.

Collapse
 
bernardbaker profile image
Bernard Baker • Edited

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.

Collapse
 
bernardbaker profile image
Bernard Baker

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.

Collapse
 
bernardbaker profile image
Bernard Baker • Edited

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 ⚙️:

  • update the front end to allow a user to add phone numbers from around the world
  • send the request to schedule a call to the API
  • test a ⚡in zapier.com

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 🤞.

Collapse
 
bernardbaker profile image
Bernard Baker

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:

  • the user's journey starting at the sign-in, through to the notification that a call has been scheduled.
  • looking for bugs and edge cases around the flow of the user navigating the app.
  • zapier.com zap not firing.
Collapse
 
bernardbaker profile image
Bernard Baker

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.

Collapse
 
bernardbaker profile image
Bernard Baker • Edited

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.

Collapse
 
bernardbaker profile image
Bernard Baker • Edited

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 ⌨️.