Development

Getting started

This project uses Python and Twilio. To get started make sure you have Python 3.7+ and Twilio CLI installed. You can install Twilio CLI with Homebrew using this commad:

brew tap twilio/brew && brew install twilio

You will need to login to Twilio CLI:

twilio login

In order to run the project you need the following credentials:

  • keys.json that you can get by generating an IAM role in GCP with the Storage Object Access Role.
  • keys.py where you will need to add your Twilio credentials from the Twillio console and your News API token that you can genenrate here.

Use virtualenv to create an environment and install app dependencies:

virtualenv venv
source venv/bin/activate
pip3 install -r requirements.txt

To start your own localhost flask server:

python3 main.py

Twilio partners with Ngrok which allows you to share your localhost via network. This makes the next command possible and lets you link your python script to Twilio. After logging in to the Twilio CLI, set your Twilio URL webhook to be the one from your localhost:

+19142684397 is our development number. When using your own Twilio account, make sure you replace the below number with your own.

twilio phone-numbers:update "+19142684397" --sms-url="http://localhost:8080/sms"

Now you should be able to text your number and use the app.

Testing

There is currently no testing for the code. Due to the importance of speed of delivery in this situation, we decided to focus on user/load testing and make sure we can scale the functionality to those who need it the most.

Deployment

We containerize our python app using docker and then deploy it to GCP Cloud Run using the deploy.sh script. Feel free to take a look at the Deploy Script & the Dockerfile.

Built With

  • Twilio - Programmatically send and receive SMS
  • Python - Scripting Language

Contributing

We are currently seeking developers who are willing to give us a hand completing the work listed in the issues section following our contribution guidelines.

To be added as a contributor, please contact us via email.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

See also the list of contributors who participated in this project.

Copyright (c) 2020 Covid Helpline - Released under the MIT license. Covid Helpline and the Covid Helpline logo are trademarks of Covid Helpline official contributors.

Support

This project is in serious need of contributions and funding. If you are interested in saving the world, getting your questions answered, or reaching out to the developers, contact us at via email. We are currently asking for donations via this GoFundMe page and would really appreciate any donation amount. The goal is to keep Covid Helpline running for FREE for all of its users. Help us with our mission by helping us spread the word on social media: Facebook & Instagram.