Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

I24 Serial: Allow sample selection

Open
#42 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
typescript
Domain
database, frontend

Research direction

No files or tests are named. Start by locating the I24 Serial collect UI and its existing Sample field, then trace how the selected visit/proposal and data collections are represented in the database. Resolve the dependent database and registration questions before implementation; done means the selector is visit-populated and each collection is associated with the selected sample.

Written by the indexing model from the issue text.

Description

The I24 Serial collect UI should allow the user to select which sample-protein-crystal is being collected. This crystal should be associated with the data collection as a BLSample, for sample grouping and analysis (metadata e.g. space group/unit cell) purposes. This list should be auto-populated based on the currently selected visit/proposal.

There are added complications about how to handle metadata about whether these shot crystal populations are actually comparable (e.g. pump-probe, ligand injection experiments) but that can probably be handled as downstream work.

Dependent work
  • Deciding how to tie this to database representation e.g. exactly what is listed
  • Allowing users/beamline staff to register these representations
  • Working out what needs to be created in the database for each collection (e.g. should a container be automatically generated for each sample for each collection).

Currently the "Sample" field linked on an individual collection is a specific instance of e.g. a single crystal, which exists on a single container (puck), which was shipped in a dewer.

erDiagram
    DataCollection }o--o| BLSample : Has
    BLSample }o--o| Crystal : Is
    Crystal }o--|| Protein : Is
    BLSample }o--o| Container : Inside
    Container }o--o| Dewer : Inside

The synchweb interface for registering these is heavily tied to the user-registering-for-shipping workflow and might not be fit-for-purpose for what we want to do here. A Beamline-scientist-runnable way to register whatever construction we want for this would be acceptable.

Acceptance Criteria
  • A selector field that lets the user specify what is being shot.
  • This field is automatically populated from the database based on the currently selected visit.
  • When data collections are made, it has an associated sample that maps to this selection.
Dominant language
TypeScript
Stars
1
Forks
1
Avg merge
4h 10m
Merged PRs (30d)
5

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from DiamondLightSource/mx-daq-ui

All issues in DiamondLightSource/mx-daq-ui

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.