The SAPO Digital Signage Server v2.0, Codebits 2014 Edition
This is the server we used to run our digital signage solution during Codebits 2014.
It was used to schedule hundreds of assets (including live data and video streams) across roughly 20 wide screen LCDs, wall projectors, etc. during the 3 days of the event, using a custom built Android client.
This repository contains (almost) all the source code we used, except for a private API to MEO Kanal - nevertheless, you should be able to tweak it to get it running without the missing bits.
In case you can't or are just curious about what it looked like, here's a screenshot we took during the event, with most of the assets loaded:
Managing assets and moving them between playlists is done entirely via drag-and-drop, using a Kanban component Hugo Lima developed for the Pink single-page web app framework (this repository includes a deployment snapshot of Pink).
As to future developments, the mqtt
branch contains a reboot of this solution to use MQTT instead of HTTP polling in an attempt to provide real-time synchronization of multiple displays and integration with other hardware devices (such as lighting and projection controllers based on Arduino).
- Rui Carmo - initial implementation, specs, UX rants and random patching
- Hugo Lima - data models and Kanban-like front-end
- Bruno René Santos - back-end and playlist generation
There is a Vagrantfile, so you can get it more or less up and running in Vagrant using 'vagrant up'. Another, more manual way follows.
You should set up a virtualenv to install the required dependencies. And you need to set up some required config files for the app to start.
virtualenv env/
pip install -r requirements.txt
cp etc/users.json.default etc/users.json
cp etc/default.json.default etc/default.json
python manage.py add-user <youruser> <yourpassword>
You also need to install and start redis at this point. After you've done that, you can easily get the web service up and running:
python app.py
You probably also need to start the celery workers, and of course you'd need the clients for showing. But this should get you started.
Everything on this source tree is distributed under the MIT license. Go forth and hack it to your contentment.