The EPRA website, a complex Content Management System (CMS) with fulltext search, documents indexing and multi-level rights authorization

date: february 2013

tags: Content Management System, Rails, CMS, Solr, VideoJS/Zencoder, i18n

Visit their website The problem

The EPRA is an european platform that aims to provide a forum for informal discussion and exchange of views between regulatory authorities in the broadcasting field, for exchange of information about common issues of national and European broadcasting regulation, and for discussion of practical solutions to legal problems regarding the interpretation and application of broadcasting regulation.

They came to us with the need for an online platform where their members could interact, centralize and organize their work.

The solution

Keeping in mind their use-cases, we ended up building a web application which incorporates many traits of content management systems and online forums, and provides tools for collaborative work.
Users and groups permissions are finely grained, allowing a great control over who can see/edit what.
We put a strong accent in the search engine, which is backed by Solr and Sunspot. Everything posted in the website is searchable: events, announcements, forum posts, pdf attachments... Users and groups permissions are obviously taken into account while searching.

Some of the application tools are specifically tailored for the work members of EPRA are doing.

Members can set up surveys, which can then be answered by other members. There is a wide range of options for survey questions, grouping of questions, type of answer expected, requirement of answers. Member can save their answers as draft before making them public.
The member who initiated the survey can visualise the answers. When appropriate, graphics (such as pie charts) are displayed. Those results can be exported in PDF

The application also allows members to upload videos. We tackled the issue of video formats by leveraging Zencoder capabilities.

You'll also find articles, announcements, links, and a forum, among others. The application was internationalized from day one. The interface, but also every content, are available in two languages (english and french). Should there be a need for other languages to be added, everything is already in place, and the work required would be minimum.

We realized the application in coordination with the client, doing it full agile all the way. We did a breakdown of the features in milestones, and while we put a duration and a pricetag on each one, it served only as an estimate, the billing being done in regard of the time spent at the end of the month.
In the end, the client felt involved and listened to all along the way, and was able to provide us feedback as soon as possible, leading to a final product that met entirely his satisfaction.