From f1a3161e285592c8b9513c2ec6dd91c037d85bea Mon Sep 17 00:00:00 2001 From: Kwickos Date: Thu, 11 Jun 2026 10:39:44 +0200 Subject: [PATCH] refactor: redesign dashboard with minimal dark UI and sidebar navigation --- CHANGELOG.md | 3 + tests/test_dashboard.py | 3 +- web/index.html | 672 +++++++++++++++++++++------------------- 3 files changed, 362 insertions(+), 316 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 648ac17..ed35226 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,9 @@ this project adheres to [Semantic Versioning](https://semver.org/). ### Changed +- Dashboard redesigned: minimal dark UI with sidebar navigation (Overview, + Matches, Game inspector, Live console, Requests, Roadmap). + - REST routes now return typed Pydantic models instead of raw dicts. ## [0.1.0] - 2026-06-08 diff --git a/tests/test_dashboard.py b/tests/test_dashboard.py index befc65b..584c7ae 100644 --- a/tests/test_dashboard.py +++ b/tests/test_dashboard.py @@ -9,7 +9,8 @@ def test_dashboard_is_served(): with TestClient(app) as client: r = client.get("/dashboard/") assert r.status_code == 200 - assert "control room" in r.text + assert "esport-api" in r.text + assert "Game inspector" in r.text def test_root_redirects_to_dashboard(): diff --git a/web/index.html b/web/index.html index c9917b0..a4e76ee 100644 --- a/web/index.html +++ b/web/index.html @@ -3,342 +3,367 @@ -esport-api — control room +esport-api — dashboard - + -
-
-
-
esport—api
-
control room // test dashboard
+
- - -
-
-

Overview

live data -
- -
-
-
-
leagues
-
matches
-
in progress
-
upcoming
-
-
+ + + + + +
+
checking…
+ OpenAPI docs ↗ +
+ + +
+
Dashboard / Overview
+
+

Overview

+
+ +
+ + +
+
+
Leagues
+
Matches
+
In progress
+
Upcoming
-
- - -
-

Leagues

-
-
- - -
-

Live console

websocket
-
-
- - -
-
connect to /live/{game_id} to stream events & score snapshots
+
+

Leagues

+
-
+
+
-
-

Matches

-
-
- - -
- - +
+
+
+
+ + + +
- +
scheduled (local)leaguematchbostatusid
ScheduledLeagueMatchFormatStatusID
+
+ + + +
+
+
+ + +
+
+
+ +
+
-
- - -
-

Game inspector

-
-
- - +
+
+

Event timeline

+
No game selected
-
-
-
-
event timeline
-
no game selected
+
+
+

Gold difference bluered

+
-
-
gold difference (blue − red)
- -
latest frame
-
+
+

Latest frame

+
-
+ + + +
+
+
+ + +
+
Streams event and score messages from /live/{game_id} while a game is being ingested.
+
+
+
not connected
+
+
- -
-

Request log

-
-
+ +
+
+

API requests made by this page

+
+
+
-
-

Coming next

roadmap
-
-
-
doneREST API — schemas, pagination, migrations
-
doneWebSocket live push — events & score
-
doneSchedule ingestion — real leagues & matches 24/7
-
nextAPI keys & rate limiting — auth headers will appear here
-
laterMore games — adapter per title (see ROADMAP.md)
-
laterComputer-vision ingestion for feed-less titles
-
+
+
+
DoneREST API — schemas, pagination, migrations
+
DoneWebSocket live push — events & score
+
DoneSchedule ingestion — real leagues & matches, 24/7
+
NextAPI keys & rate limiting
+
LaterMore games — one adapter per title
+
LaterComputer-vision ingestion for feed-less titles
-
+
Full roadmap in ROADMAP.md
+ -