updating the playtime frontend with claude only code to replace the one graph with a dumb-bell graph, having each individual map show its players at beginning versus end and also the overall impact of maps + their popularity

This commit is contained in:
jenz
2026-10-02 14:43:45 +02:00
parent 6019e6854d
commit 8a76454784
14 changed files with 3300 additions and 159 deletions
@@ -16,9 +16,11 @@ Node process; nginx reverse-proxies a subdomain to it.
- `/` — Overview: concurrent-player population graph (hand-rolled SVG, not
a charting library — scroll to zoom, drag to pan all the way back to
2015-07-16, click any point for who was online then), a map-to-map
population bar chart (same zoom/pan, pool of 150 maps), and a "recurring
window" chart for questions like "who's online 6–15h every Tuesday"
(pick days of week + time window + date range)
population chart (dumbbell-style: grey dot = population when the map
started, colored dot = population when it ended, green/red depending on
whether it grew or shrank — same zoom/pan, pool of 150 maps), and a
"recurring window" chart for questions like "who's online 6–15h every
Tuesday" (pick days of week + time window + date range)
- `/players` — search players by current/previous name or SteamID (shows
which old name matched, if any), sortable by recent activity, name, or
highest playtime
@@ -27,9 +29,16 @@ Node process; nginx reverse-proxies a subdomain to it.
history (with the map(s) each session overlapped)
- `/maps` — search maps by name
- `/maps/[mapname]` — every time period that map was played
- `/maps/period/[mapId]` — one specific occurrence: players present at any
point during it, votes cast (grouped by vote event, since a map could
theoretically see more than one), and prev/next map navigation
- `/maps/impact` — leaderboard ranking maps by how they tend to affect
population (average start→end player-count change per occurrence,
average retention %, best/worst single session), toggleable between
impact and raw popularity (times played), rather than the plain
played-in-order list on `/maps`
- `/maps/period/[mapId]` — one specific occurrence: a zoomed-in population
timeline for just that session's window (padded a little on each side so
the transition in/out is visible), players present at any point during
it, votes cast (grouped by vote event, since a map could theoretically
see more than one), and prev/next map navigation
- `/countries` — every country with at least one player, sorted by player
count descending
- `/countries/[code]` — players from that country, sortable by highest
@@ -37,7 +46,9 @@ Node process; nginx reverse-proxies a subdomain to it.
A `favicon.ico` in `app/` is picked up automatically by Next — no config needed.
Every feature from the original planning conversation is now built.
Every feature from the original planning conversation is now built, including
the map-population-impact features (dumbbell chart, impact leaderboard,
per-session zoomed timeline) discussed most recently.
## Deploying on the Hetzner box