Skip to content

Define a sync api call for mini dashboard data #106

Description

@tfield

Robot dashboard data needs to be retrieved by the front-end in its own sync thread.
During a tournament, internet access may be non-existent so sync processes need to fail safely (i.e. and sync in the background only)
Sync mini dashboard data for all robots at once
Consider caching robot response data on the server for 5 minutes.

New API endpoint

GET /api/report/mini-dashboard/{tournamentId}

  • Returns pre-aggregated mini-dashboard data for all teams that appear in the match schedule for the given tournament, plus the owner team (configured via raven-eye.team property).
  • Accessible by roles: DATASCOUT, EXPERTSCOUT, ADMIN, SUPERUSER.
  • Response shape (one object per team):
{
  "tournamentId": "2025oncmp2",
  "ownerTeam": 1310,
  "teams": [
    {
      "teamNumber": 1310,
      "matchesTracked": 5,
      "metrics": [
        { "id": "scoring", "label": "Scoring", "quartile": "top" },
        { "id": "auto", "label": "Auto", "quartile": "middle" },
        { "id": "endgame", "label": "Endgame", "quartile": "bottom" },
        { "id": "pickups", "label": "Pickups", "quartile": "top" }
      ]
    },
    {
      "teamNumber": 9262,
      "matchesTracked": 2,
      "metrics": [
        { "id": "scoring", "label": "Scoring", "quartile": "top" },
        { "id": "auto", "label": "Auto", "quartile": "middle" },
        { "id": "endgame", "label": "Endgame", "quartile": "bottom" },
        { "id": "pickups", "label": "Pickups", "quartile": "top" }
      ]
    },
    ...
  ]
}
  • quartile values: "top" (top 25%), "bottom" (bottom 25%), "middle" (middle 50%), or "none" (insufficient data — fewer than 2 matches tracked across all teams).
  • matchesTracked — the number of distinct matches in which at least one event was logged for this team in this tournament.
  • The set of metrics and how they are calculated will change from season to season. Logic is created on RavenBrain and stored in a season-specific folder, similar to how FRC season-specific data is synchronized. See below for individual metrics.

Metadata

Metadata

Assignees

No one assigned

    Labels

    back-endIssue pertains almost entirely to the back-end

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions