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.
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:
api
in offline mode onhttp://localhost:4000
take-test-app
onhttp://localhost:3000
reviewer-app
onhttp://localhost:3001
Note: Ensure the whole stack is running with the correct environment variables
Prerequisites
reviewer-app
- Cognito user with
reviewer
role in the user pool
- Cognito user with
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!
)
- If this is your first time logging in, set a password that conforms to the password policy (for example
- 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
- Note: There is no confirmation message at the moment, to check this has worked check the
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.
- The terraform for all applications aside from the
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
Ensure you have all the required .env
files for each application
yarn dev
This will run the following:
api
in offline mode onhttp://localhost:4000
take-test-app
onhttp://localhost:3000
reviewer-app
onhttp://localhost:3001
The page will reload if you make edits.
You will also see any lint errors in the console.
The lib
folder is shared to the three applications via the abt-lib
dependency in their package.json
s.
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.
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.
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.