lifen-labs / covid

Covid-19 patients' self-monitoring at home via forms sent by SMS
https://www.youtube.com/watch?v=wwDJNR6SKmI
GNU Affero General Public License v3.0
66 stars 19 forks source link
covid19 health rails

Covid

Covid is a web application which aims to facilitate covid-19 patients' self-monitoring at home via forms sent by SMS.

Demo : video

Main configuration

Installation

It's a Rails v6.0 application which runs on Ruby v2.6+.

It requires a limited number of dependencies to run locally:

The best way to install them is to use Homebrew:

brew update
brew install rbenv ruby-build postgresql redis
brew cask install chromedriver

Ruby

rbenv install 2.6.5
gem install bundler

Git

git clone git@github.com:lifen-labs/covid.git && cd covid
bundle exec install && yarn install
bundle exec rails db:setup

Environment variables

cp .env.example .env
Twilio

We use Twilio's API to send SMS:

How to create a text messaging account with Twilio ?

Slack

We use Slack to monitor failed SMS:

Starting a local server

heroku local

Then visit http://localhost:5000/admin/ with the seeds credentials: admin@example.com / password.

Specs

bundle exec rspec spec/

or

bundle exec guard

Deployment

The fastest way to deploy covid is using Heroku:

Deploy

:warning: Disclaimer Heroku might not be suitable to host healthcare datas in your country. We are providing this deploy link on Heroku because we think it's the easiest way to deploy a web application ;) :warning:

Data structure

Once signed in to the app via login/password, an AdminUser can:

When a StandardSurvey is created, an SMS is sent with a secret temporary link. The Patient can then fill the form directly on his phone. Once the StandardSurvey is submitted, the app sets the operational status :

Both orange and red statuses require an action from the AdminUser. Each action has to be recorded through a mandatory comment within the app.

Contributing

Find details for contributing in the contribution guide.

Maintainers

License

Covid is licensed under the GNU Affero General Public License. See the included LICENSE file for details.