CoVital-Project / pulse-ox-data-collection-web-service

HTTPS API for receiving pulse oximetry from mobile clients
https://covital.org
GNU General Public License v3.0
5 stars 4 forks source link
covid-19 docker expressjs helpful-engineering mongo mongodb nodejs postman

pulse-ox-data-collection-web-service

Node.js CI

Data collection web service for receiving and storing pulse oximetry from our CoVital mobile and web app partner projects.

Getting started (locally):

Testing your PRs:

We have a github action defined in .github/workflows/ci.yml that will run a basic node lint/test/build pipeline. You can test locally without waiting for CI by running the following:

Running in Docker:

Install Docker Compose if you haven't already.

NOTE: The Pulse web service will fail to connect to Mongo until you run the mongo-db-setup.sh script. Once you do, the service will automatically connect to mongo.

Testing the web service in Postman

If you don't have Postman you can download it here. The postman collection is stored in this repo under docs/postman/pulse-collection.json

Testing the web service manually via SwaggerUI

Staging and dev sandbox servers

Integrators: See https://guarded-crag-28391.herokuapp.com/api-docs/ for interactive API playground with documentation.

Backend developers: see the dev sandbox server at https://pulseox-sandbox.herokuapp.com

*ALL master builds on github automatically deploy to the sandbox. @dpritchett or @haggy can click a button to promote sandbox releases to staging. Let us know if this flow needs adjustment!

Accessing heroku as a developer/operator

Contact @dpritchett to be added to the CoVital Heroku team for managing our deployments.

Client libraries for submitting data (mobile, web, etc)

Prebuilt client libraries

See the Releases page in the repo for pregenerated client libraries for javascript, dart, and ajva.

Build your own against the latest master commit

Clone this repo and run make to generate client bindings for multiple languages.

AWS Integration

There are some endpoints (such as generating signed S3 upload requests) that need AWS access in order to work. You'll need credentials setup in one of the places detailed here.

Appdev TODOs

See the GitHub issues for this project.

Contributing

Midterm plan

Contact

(all contacts in the #project-monitoring-o2 slack room on HelpfulEngineering Slack)