-
I work on a team building an application that displays real-time predictions/service alerts and other stuff on various types of strictly non-interactive screens posted around the MBTA’s* bus and rapid transit network.
Like others in the comments, we use a pretty straightforward architecture—our backend is written in Elixir and the frontend is rendered as a webpage with HTML/TypeScript/SCSS. We also use AWS Polly for on-demand readouts of the same content. The client periodically requests new data from the server—no web sockets involved for now.
The kiosk part is pretty basic; most of the interesting problems we face are related to the fact that we support a large variety of screen types/formats and need to strictly adhere to ADA guidelines (for both type size and audio equivalence). Screen types include solar-powered e-ink, portrait mode 1080p LCD, twin side-by-side portrait LCDs, and a set of screens owned by an ad vendor, on which our content appears in a rotation alongside ads.
The codebase is open-source! https://github.com/mbta/screens
* (Massachusetts Bay Transportation Authority)
-
InfluxDB
InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
-
That's basically what I did for some screens around the office (before covid sent us to remote work) - elixir backend with a raspberry pi on the back of each TV, then Drab[0] to update the screen over websockets (liveview wasn't a thing then IIRC)
[0] https://tg.pl/drab
-
chilipie-kiosk
Easy-to-use Raspberry Pi image for booting directly into full-screen Chrome, with built-in convenience features for unattended operation. Perfect for dashboards and build monitors.
Raspberry PI + https://github.com/jareware/chilipie-kiosk
>Easy-to-use Raspberry Pi image for booting directly into full-screen Chrome, with built-in convenience features for unattended operation. Perfect for dashboards and build monitors.