Giter Club home page Giter Club logo

antibody-web's Introduction

NHSx Covid-19 Antibody Test at Home Web Service

This is a currently a Trial Service NOT a Live Service

Covid-19 Antibody Test at Home Web Service is a web based service that will allow registered users to take an at home Covid-19 Antibody test and get a result of whether they test positive or negative for Covid-19 antibodies.

Quick start

Prerequisites:

  • Bash
    • If attempting to run on windows it is advised you use the Windows Subsystem for Linux
  • AWS cli (with a configured user)
  • Node
  • Yarn
  • Serverless (Note: must be globally installed)

Run the following:

yarn install
yarn setup-env

After this, replace the environment variables inside reviewer-app/.env and take-test-app/.env with the correct values.

Once this is done, run the following:

yarn run dev

It will start 3 applications:

User guide

Running through the application (as of 23/09/2020)

Note: Ensure the whole stack is running with the correct environment variables

Prerequisites

  • reviewer-app
    • Cognito user with reviewer role in the user pool

Take the test app

  • Login to the application with a valid user ID (E.g. valid_yourname_thetime)
  • Progress through the user flow up to the timer step
  • Skip the timer by clicking on it 3 times
  • Open your webcam and submit a photo
    • Additionally you can refuse permissions and upload a photo

Reviewer app

  • Login as a reviewer
    • If this is your first time logging in, set a password that conforms to the password policy (for example Password1!)
  • See the image you submitted from the test taking app
  • Submit a review of the image
    • Note: There is no confirmation message at the moment, to check this has worked check the network tab in your browser

Technical documentation

Each folder of the project has its own specific README describing its intended purpose, technical documenation, and any relevant information:

  • api/
    • The API which serves as the connection between all the parts of our service.
    • It handles everything to do with the the users test data, including getting the diagnosis from the Machine Learning model and allowing the result to be reviewed in the reviewer app.
  • lib/
    • Interfaces & types shared between mutliple applications
    • Currently contains types & interfaces to do with forming API requests and modelling data.
  • ml/
    • Currently unused
    • Docuementation for the machine learning API & instructions for building the docker images
  • reviewer-app/
    • The application for reviewing samples of the results generated by the machine learning for quality assurance.
    • Integrates with Cognito for user authentication.
  • take-test-app/
    • The application for the person taking the test to use
    • Allows the user to follow instructions, gives a timer for them to wait, and allows them to submit a photo of their results.
    • Integrated with the API for storing the users test record.
  • terraform/
    • The terraform for all applications aside from the api, which is a Serverless application.

Install Dependencies

To install dependent modules.

yarn install

This will also postinstall dependencies in all the other applications.

If you only want to install root dependencies:

yarn install --ignore-scripts

Running the service locally

Ensure you have all the required .env files for each application

yarn dev

This will run the following:

The page will reload if you make edits.

You will also see any lint errors in the console.

Updating the lib folder

The lib folder is shared to the three applications via the abt-lib dependency in their package.jsons.

To ensure the other applications are up to date with lib, you can run the following:

yarn run lib

This will build the lib folder, and subsequently update the other three applications to be brought in line.

Running Tests

To run the tests on all applications at once you can run

yarn test

To run them individually, run this from within each project directory.

CI/CD Pipelines

The test & deployment pipeline uses Github Actions (https://github.com/features/actions) to build out pipelines, the files for these can be found in .github/workflows/.

Run against pull requests

There is a build & test pipeline that is run against pull requests, this ensures all the applications can build, and that all tests pass.

Run against master

The pipeline that runs on merges to master includes building & testing the repos, once these all pass it subsequently runs the E2E tests on the repos (by deploying to dev) and once these pass it deploys all the applications.

antibody-web's People

Contributors

barnc avatar chrimesdev avatar danielburnley avatar dependabot[bot] avatar edent avatar mathewsb avatar

Watchers

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