Skip to content

[Enhancement]: Add Case-Centric Browse and Detail Pages #121

@tomvothecoder

Description

@tomvothecoder

Is your feature request related to a problem?

Summary

Follow up to #107 and #120. Introduce a new case-centric browsing experience at /cases to support experiment-level discovery while preserving execution-centric simulation pages.

Motivation

Case is the aggregate root and represents an experiment. Users need a high-level way to:

  • Discover experiments
  • See canonical baseline per case
  • View number of executions
  • Navigate to case detail

A dedicated page is cleaner and more scalable than introducing a group-by toggle in simulation browsing.

Describe the solution you'd like

Proposed Solution

1. Add Route

/cases

2. Browse Cases Page (Table)

Columns:

  1. Case Name (primary)
  2. Case Group (if implemented)
  3. Canonical Simulation (execution_id)
  4. Total Simulations
  5. Last Updated
  6. Details

Case Name is dominant on this page.

3. Case Detail Page

Route:

/cases/{id}

Display:

  • Case metadata
  • Case Group (if available)
  • Canonical Simulation (execution_id)
  • Nested simulation summary table

Nested table columns:

  1. Execution ID (primary within table)
  2. Status
  3. Canonical flag
  4. Change count
  5. Simulation Dates
  6. View Details

Execution ID is primary within the nested table.

4. Data Usage

Use existing Case aggregate-root endpoints.
Do not load heavy simulation detail data for case listing pages.

5. Case-Level Filtering

Add filters to /cases:

  • Case Name (search)
  • Case Group (if implemented)
  • Canonical Present (Yes / No)
  • Simulation Count range (optional, stretch)

Filters apply at the Case level only.

Do not modify existing simulation browsing filters in this issue.

Describe alternatives you've considered

Adding a “Group by Case” toggle to the simulation browser.
Rejected due to pagination and filtering complexity.

Additional context

This PR introduces new pages only.
No changes to existing simulation page behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions