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: