A system to install public signages using web technology and the microservice approach
I have published a blog post about the Raspberry PI setup.
The 'Infoscreen' uses a microservice architecture and is built using Javascript, Node and NPM. The client uses Vue.js.
When setup in a Kubernetes cluster, the architecture could look like this:
The system consists of the following microservices:
- slide-api: Provides an API endpoint that returns active slides and their data from the database. Needs to be protected by some kind of proxy or HTTP auth.
- client: Contacts the slide API to render and serve a Vue.js app, which gets slide data from the slide-API
- management-api: TODO
- management-panel: TODO
The database mongodb is used to store the slides.
Optional microservices:
- event-crawler: Crawler example, which crawls a website built with The Events Calendar for upcoming events and adds them as slides to the database
- tribe-simulator: Simulates the event API of The Events Calendar. Only used during development to inject test events.
The shared module contains models and shared code required by multiple modules.
Build instructions can be found in the readme-files of the module. To build them with docker, you have to specify the root folder as build context.
Example: docker build -f ./client/Dockerfile .
Production Setup on a RaspberryPI: Read the instructions here.