Common Application Design

Data Modelling

List Screens

  • Filterable List Pattern - Substrate (ColumnConfig + JHipster query adapter + widgets) and composition patterns (out-of-band filters, side panel, bulk lifecycle, effects discipline)

  • List Screen Affordances - Visual + interaction spec for the chrome around any list screen (page header, stats strip, filter chips, utilities row, side panel, hover panel)

Forms

Custom Lists

Data Imports

Design documents for spreadsheet import services:

Identity Model

  • Participant Identity & External Identifiers (XID) - The cross-cutting identity-correlation model: Person-XID vs Participant-XID, the PersonExternalReference schema, the four-field identity DTO, and the design rationale. Read this first — both EP and result import build on it.

  • Person Matching & Deduplication on Import - How a row resolves to an existing Person: the five-tier matching ladder, the supplied-but-unmatched identity rule, collision handling, and the merge-candidate path. Distinguishes the import ladder from the Registration Portal’s progressive matching.

Import Types

Implementation Designs

Leaderboards

Async Processing

  • Reactor Catalogue - Signal types, aggregate key conventions, and the concrete reactors built on the Signal & Sweep framework. The reactor-specific companion to the framework architecture

Quality

  • Recurring Defect Classes - Shapes of bug that have appeared more than once here, each one silent in the sense that the system reports success while doing the wrong thing: streaming responses that log an error after succeeding, disabled form controls dropped from the payload, mandatory associations over nullable columns, development-only profiles that vanish in production, and unnamed controller bindings

Supply Chain

  • Dependency Update Checks - Keeping third-party references honest: the two opposing failure modes (unpinned drift vs frozen pin), why images are pinned as tag@digest, why the checks propose rather than apply, and the scoping rule that keeps them clear of the release-promotion pipeline