# Concerto Signage

Concerto is a web-based digital signage application licensed under the Apache License and written using the Ruby on Rails programming framework. It rotates uploaded graphical, textual, and video content through a template that is accessed by computers running a web browser.

## History

Originally developed by students at Rensselaer Polytechnic Institute in 2008, Concerto was originally written in the PHP programming language and used widely at Rensselaer Polytechnic Institute and other universities. The software was rewritten in 2012 using the Ruby on Rails programming framework. This rewrite made the software significantly more modular, and much of the content handling and display were written as plugins. Packages for Linux distributions (such as Debian) and virtual machine images were released to lessen user difficulties in deploying Ruby on Rails applications, compared with the version 1 PHP application.

## Main features
### Content management

    Concerto allows users to upload graphical and textual content via a web interface. By default, plugins allowing the upload of video content and RSS feed addresses are included. More content types can be accommodated through additional plugins.

### Submission moderation

    User content submissions are reviewed by the moderators who control the content feed they are submitting to. Once approved, submissions are displayed on any screen subscribing to the feed.

### Content scheduling

    When a user submits content, they decide the dates and times for which they would like it displayed on a screen. The moderators may approve or modify that specification.

### Access control

    A user or group of users own screens and feeds within the system, and decide which content to display on their screen or approve on their feed.

### Templates

    Each screen in Concerto has a graphical template associated with it, that dictates the look and feel of the screen as well as the layout of the content displayed on it. A screen may display just a single image or an image, scrolling ticker, and calendar. Each screen also has a set of subscriptions to various content feeds from which it can draw, with the frequency of a feed's display set by the user or group owning the screen. Having a unique template and content mix for each screen lets them be highly customized for a particular location and group of viewers.

### Internationalization

    Concerto supports UTF-8 languages through the translation of YAML files. It is currently translated in 3 languages.

## Compatibility

As an open source and web-based digital signage system, Concerto's server software can work on most any Unix-like platform. Its frontend, which displays the content inside of templates, can run in any web browser that has Web Components support under the Polymer JavaScript framework. However, a considerable amount of RAM and 2D graphics performance are important for smooth functioning.

### Raspberry Pi

Owing to its use in low-cost deployment situations, considerable discussion has taken place regarding the use of the Raspberry Pi Single-board computer running a web browser for displaying Concerto content. Despite some performance issues, Concerto and a number of other digital signage systems can be used with some minor modifications on the Raspberry Pi.