Giter Site home page Giter Site logo

aym3ntn / covid Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lifen-labs/covid

0.0 1.0 0.0 489 KB

Covid-19 patients' self-monitoring at home via forms sent by SMS

Home Page: https://www.youtube.com/watch?v=wwDJNR6SKmI

License: GNU Affero General Public License v3.0

Ruby 90.52% JavaScript 1.91% CSS 0.43% HTML 7.14%

covid's Introduction

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:

  • PostgreSQL (v10.4+)
  • Redis (Sidekiq)
  • Headless Chrome (integration specs)
  • NodeJS v12 (LTS)

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 [email protected]: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:

  • TWILIO_ACCOUNT_ID (required)
  • TWILIO_AUTH_TOKEN (required)
  • TWILIO_PHONE_NUMBER (required)

How to create a text messaging account with Twilio ?

Slack

We use Slack to monitor failed SMS:

  • SLACK_HOOK_URL (optional)

Starting a local server

heroku local

Then visit http://localhost:5000/admin/ with the seeds credentials: [email protected] / password.

Specs

bundle exec rspec spec/

or

bundle exec guard

Deployment

The fastest way to deploy covid is using Heroku:

Deploy

⚠️ 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 ;) ⚠️

Data structure

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

  • manage a CommandCenter : the app can be deployed once and used in multiple locations (TODO: add an authorisation framework like Pundit to manage access levels)
  • onboard a Patient
  • manually create a StandardSurvey; otherwise, an automated process creates one every 24 hours.

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 :

  • green : all good
  • yellow : default status, still all good
  • orange : a healthcare professional needs to check the survey results
  • red : a healthcare professional needs to call the patient

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.

covid's People

Contributors

etiennedepaulis avatar charlottepages avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.