Skip to content

Covid-19 Testing Pools Management

This page gives an overview of the Covid-19 Testing Pools Management service, describing its current status, where and how it's developed and deployed, and who is responsible for maintaining it.

Service Description

A way for College administrators to be able to rapidly assign students to pools and households was required for the Asymptomatic COVID-19 screening programme. The quickest solution was to create Google Sheets for each College, each with a Pools and a Households worksheet. Additionally, a Contacts worksheet was added for notification of failures when processing the Sheet. College administrators were given permission to access these Google Sheets and fill in rows for each pool and household, and continue to make adjustments throughout the year.

This service is a combination of a GitLab Schedule calling endpoints in a webapp to cause the Google Sheet for a College to be read, parsed and stored in a database.

The webapp also has an endpoint exposing the current state of pools and households in the database. This is pulled from periodically and imported in to the Azure DB system managed by the Collaboration Team.

Service Status

The service is currently live.

The Asymptomatic COVID-19 Screening Programme will continue to operate as normal until the end of Easter term, with the last days of pooled screening on Monday-Wednesday 28-30 June. It will NOT operate over the summer vacation.

It yet to be confirmed whether this service will be required for the next and academic year. If not, this it will be decommission.

Contact

Technical queries and support should be directed to devops@uis.cam.ac.uk and will be picked up by a member of the team working on the service. To ensure that you receive a response, always direct requests to devops@uis.cam.ac.uk rather than reaching out to team members directly.

Issues discovered in the service or new feature requests should be opened as GitLab issues in the administration repository (DevOps team only).

Environments

The Covid-19 Testing Pools Management Service is currently deployed to the following environments:

Name URL
Production https://webapp.prod.covid-pool.gcp.uis.cam.ac.uk/
Staging https://webapp.test.covid-pool.gcp.uis.cam.ac.uk/
Development https://webapp.devel.covid-pool.gcp.uis.cam.ac.uk/

Source code

The source code for the Covid-19 Testing Pools Management service is spread over the following repositories:

Repository Description
Application Server The source code for the main webapp server
Infrastructure The Terraform code for the GCP infrastructure
Deployment The GitLab CI for deploying the webapp onto the infrastructure
Scheduled Tasks The GitLab CI and python scripts to call the webapp

Technologies used

The following gives an overview of the technologies the <service_name> is built on.

Category Language Framework(s)
Application Server Python 3.7 Django 2.2
Infrastructure Terraform
Deployment GitLab CI
Scheduled Tasks Python 3.7 Requests
GitLab CI

Operational documentation

How and where the service is deployed

See Deployment Gitlab project that deploys on to infrastructure created by Infrastructure.

Deploying a new release

Updates to the master branch in the Application Server repository will automatically by deployed to the staging instance. After testing this can be pushed to production via GitLab CI manual trigger.

Monitoring

Failures of the Scheduled Tasks Gitlab CI pipeline will cause automatic notification to the schedule owner (UIS DevOps Division Robot).

Additionally, failures to process an individual College's sheet will notify the members of the Contacts worksheet with details of the failure (such as more than 10 students in a pool).

Debugging

Standard boilerplate compose.sh scripts existing the Application Server in order to bring up a local development instance.

"Dry-run" attempts to parse a College sheet may be made using the ?dry_run=1 query string parameter.

Further Documentation

Little other documentation exists outside the README.md files in each of the repositories listed above.

Service Management and tech lead

The service owner for the service is Jon Holgate.

The service manager for the service is Rich Wareham.

The tech lead for the service is Robin Goodall.

The following engineers have operational experience with the service and are able to respond to support requests or incidents: