Skip to content

Lab Allocator

[Team : Hamilton Team] [Tech Lead : jb2595] [Service Owner : TBC] [Service Manager : TBC] [Product Manager : bmd42]

This page gives an overview of the Lab Allocator, describing its current status, where and how it's developed and deployed, and who is responsible for maintaining it.

Service Description

This system is responsible for supporting the annual process of allocating students to Laboratory Practical groups for the Natural Sciences Tripos, Part IA (NST IA).

The overall process is overseen by the NST Co-ordinators.

There are three main functionalities which are described below:

Functionality Timing Description
Registration September/early October College staff enter student subject choices
Allocation start of the Michaelmas NST Co-ordinators, with support of UIS staff, run the allocator to find a suitable allocation.
Publishing start of the Michaelmas Select the preferred allocation solution and make it available to students, college staff and administrators.

The allocation process uses a genetic algorithm to find a suitable allocation for the student cohort. This is computationally expensive. The published allocations are available all year round but for some students become out dated. This is caused by some manual changes to the allocation performed by the NST Co-ordinators post publication. These changes are often to support individual students needs. They are not reflected in the published results.

During the rest of the year, there is also behind-the-scenes work to test and verify purposed changes to the timetable. At the moment, this and as well as the allocation requires some support from UIS. There are plans to add functionality to reduce the UIS support required and enable the NST Co-ordinators.

Service Status

This service is currently is live. It was first used in Michaelmas 2024.

Contact

Technical queries and support should be directed to Hamilton team 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 Hamilton team rather than reaching out to team members directly.

Issues with the service should be raised on the corresponding GitLab project (University members only).

For general NST 1A Lab Allocation queries, student should contact College and Departmental staff in the first instance. Staff should contact the NST Co-ordinator.

Environments

The Lab Allocator is currently deployed to the following environments:

Name URL
Production https://laballocator.apps.cam.ac.uk/
Staging https://webapp.test.laballoc.gcp.uis.cam.ac.uk/
Development https://webapp.devel.laballoc.gcp.uis.cam.ac.uk/

Source code

These are the two relevant repos:

Repository Description
Application Server The source code for the main application server
Infrastructure Deployment The Terraform infrastructure code for deploying the application server to GCP

Technologies used

The following gives an overview of the technologies the Lab Allocator is built on.

Category Language Framework(s)
Frontend Typescript React (create-react-app)
API Python Django REST framework
Genetic Algorithm Python PyGAD
Testing Python PyTest
Database SQL PostgreSQL
Deployment Terraform N/A

Operational documentation

Documentation including domain terminology, ADRs and operation documentation live within the web application repository.

Deploying a new release

Releases are created via release-it. renovate-bot is configured to update the container tags in the deployment repository. Deployments are applied via GitLab using the CI pipelines.

Service Management

The Team responsible for this service is Hamilton Team.

The Tech Lead for this service is jb2595.

The Service Owner for this service is TBC.

The Service Manager for this service is TBC.

The Product Manager for this service is bmd42.

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