DEV Community

Cover image for I built a desktop World Cup dashboard without a web stack
Atomi J.D.
Atomi J.D.

Posted on

I built a desktop World Cup dashboard without a web stack

It shows live group tables, fixtures, lineups, match events and box scores. Perfect for keeping on a second screen while watching a game.

The fun part: The whole app is written in my own jdBasic language.

The data comes straight from ESPN's JSON endpoints. No API key needed, only HTTP.

Code sample: Flags are fetched on demand, turned into GPU sprites and cached in one small function:

FUNC FLAG(code$)
    IF MAP.EXISTS(gFlags, code$) THEN RETURN gFlags{code$}
    DIM url$ = "https://a.espncdn.com/i/teamlogos/countries/500/" + LCASE$(code$) + ".png"
    DIM png$ = HTTP.GET$(url$)
    BINWRITER "tmp/flag_" + code$ + ".png", png$
    DIM sid = SPRITE.LOAD("tmp/flag_" + code$ + ".png")
    gFlags{code$} = sid : RETURN sid
ENDFUNC
Enter fullscreen mode Exit fullscreen mode

HTTP -> file -> sprite -> cache.

The tables are just ImGui widgets fed by APL-style array operations. Downloading JSON, sorting data and drawing the UI all happen in jdBasic.

That was probably my favourite part of this project.

GitHub:
Latest Release
Dashboard Code

Top comments (0)