Live Scoring & Official Result Entry
En resumen
Real-time scoring infrastructure: mobile-first live entry with offline support, official scorekeeper role with digital signing, SSE-driven leaderboard updates, push notifications for match events, score correction flow under audit, score protests from team captains, walkover handling, and configurable round timing.
Cómo funciona
Live score entry on mobile is offline-capable from the ground up. The scorekeeper opens the match on a phone or tablet, taps points per mène, and the device queues every action locally. When connectivity returns, queued events sync in order with idempotency keys so duplicate replays are safe.
The official scorekeeper role digitally signs the final score with their authenticated session — a cryptographic signature attached to the result record so the line of accountability is traceable. Real-time leaderboard updates push via Server-Sent Events: any subscribed client (player apps, public leaderboards, embedded CMS widgets, scoreboards on venue screens) sees standings refresh within a second of each confirmed mène. Push notifications for match events fan out to subscribers — match starting in 5 min, score 10-10 in your followed match, your team has finished, podium reached.
Subscriptions are granular: per-match, per-player, per-competition, per-club, per-nation. Score correction flow lets the scorekeeper edit a recorded mène with mandatory reason; the original entry stays in the audit trail and a correction event broadcasts so live viewers see the adjustment immediately. Score protest from team captain is a structured action — the captain raises a protest tied to a specific mène or final result, the match enters a protest state, the jury (F05) reviews and resolves, and the outcome locks.
Walkover and WO handling captures the operational reality when one team does not show: the official records WO, the absent team forfeits, the present team advances with a default score per the format, and ranking impact applies the federation's WO rules. Round timing per round (45 min default) enforces session pace for poule rounds and Swiss rounds — the round timer counts down on the official's tablet, with warnings at 10 and 5 minutes, and configurable handling at expiry (current mène completes, no new mène starts).
Capacidades clave
- Mobile-first live score entry with offline queue and idempotent sync
- Official scorekeeper role with digital signing on the final score
- SSE-driven real-time leaderboard updates for clients, embeds, and venue scoreboards
- Push notifications for match events with granular per-match/player/competition subscriptions
- Score correction flow with mandatory reason and audit trail
- Score protest from team captain with structured jury workflow
- Walkover handling and configurable round timing (45 min default) with warnings and expiry rules
En la práctica
Outdoor Saturday tournament with patchy 4G. The official scorekeeper at court 5 records mène after mène on her tablet; the device is offline for 12 minutes, then back. All queued events sync in order with no duplicates.
The leaderboard widget on the federation site refreshes for spectators. The losing captain protests the final mène measurement; the match flips to protest state and the jury reviews via tablet, examines the photo attached in F04.05, and confirms the original score. The scorekeeper digitally signs the result; ranking points queue for the overnight recompute.
The next round timer starts at 45 minutes and warns at 35 and 40.
Funcionalidades de este subsistema
12| ID | Status | Funcionalidades |
|---|---|---|
| F04.21.01 | Entregado | Live score entry on mobile with offline support ✅ PL-F0421a ✅ PL-F0421a |
| F04.21.02 | Entregado | Official scorekeeper role with digital signing ✅ PL-F0421a ✅ PL-F0421a |
| F04.21.03 | Entregado | Real-time leaderboard updates (SSE) ✅ PL-F0421a ✅ PL-F0421a |
| F04.21.04 | Entregado | Push notifications for match events (subscriptions) ✅ PL-F0421a ✅ PL-F0421a |
| F04.21.05 | Entregado | Score correction flow with audit ✅ PL-F0421b ✅ PL-F0421b |
| F04.21.06 | Entregado | Score protest from team captain ✅ PL-F0421b ✅ PL-F0421b |
| F04.21.07 | Entregado | Walkover and WO handling ✅ PL-F0421b ✅ PL-F0421b |
| F04.21.08 | Entregado | Round timing per round (45 min default) ✅ PL-F0421b ✅ PL-F0421b |
| F04.21.20 | Entregado | VolunteerScoreEntry — parallel light-weight scoring surface optimised for volunteers, big-button UI, idempotent on (device_id, client_ts, end_number), soft-validation with stable warning codes (zero_score_end / both_teams_scored / score_above_13 / missing_end_<n>) — PL-T222 ✅ PL-T222 ✅ PL-T222 |
| F04.21.21 | Entregado | Volunteer offline cache — exponential-backoff retry-loop, server-idempotency on tuple guarantees no duplicates, sync-status badge (synced/pending/error) — PL-T222 ✅ PL-T222 ✅ PL-T222 |
| F04.21.22 | Entregado | Dispute flagging — measure / dead_end / timeout / rule_question / other, sets is_dispute=true + needs_review, dispatchar scoring.dispute_raised till court-marshal via F09.02 — PL-T222 ✅ PL-T222 ✅ PL-T222 |
| F04.21.23 | Entregado | BulkScoreUpload — fixed-column CSV (competition_match_ref,end_number,team_a_points,team_b_points,scorer_note), parse-job med per-row error/warning, atomic-per-match apply, status uploaded/parsing/validated/applied/partially_applied/failed — PL-T222 ✅ PL-T222 ✅ PL-T222 |
Partes interesadas que necesitan este subsistema
Aparece en 3 análisis de partes interesadas