DjangoCon Europe 2023

The evolution of a Website into a radio automation back-end.
2023-05-29 , Music Hall

What started as a Website to show the schedule of a free radio, has resurfaced as the back-end of a radio automation software suite that provides the schedule and acts as an OpenID Connect provider.


Video: https://youtu.be/uwjba8FoRVQ

There are both commercial and open-source solutions for radio automation, but the requirements of free radios are very different from commercial radios, specially regarding the scheduling options and the end-user interface.

With AURA, we are developing a free and open-source software automation suite for free radios.

At the core of AURA is steering, a Django application that serves as the "source of truth" for the schedule and acts as an OpenID Connect provider for the components of the suite.

First, I'll describe the situation free radios in Austria face: The commercial radio automation software available, and the only supposedly free solution, currently in use at some radio stations in Austria, have showed that a (Java) monolith and a single developer is not the best approach for the rather complex and varied schedule and play-out requirements of free radios.

This moved a group of free radios in Austria to start the development of a free and open-source software suite of radio management, program scheduling and play-out automation software: AURA.

Second, I'll give a short overview of the distributed architecture and the components of AURA, and focus on how it distinguishes from the monoliths that are currently in use at some of the free radios in Austria.

Then, I'll explain the data models behind the Django application, with a special focus on the recurrence rules and the schedule conflict resolution, the most complex parts of steering.

Finally, I'll show how steering also serves as an OpenID Connect provider for all the components of the software suite and uses LDAP Authentication.

I will focus on the architecture decisions we took during the planing and development, and how the open-source development is a better and more sustainable approach to a common problem for free radio stations.

I will show small snippets of code of the most interesting parts of the Django application, and explain the rationale behind them, specially the recurrence rules, and the schedule conflict resolution.

In this case Django is not providing a Web application or a Web site but it is providing a REST API and acts as the back-end of a software suite, and serves as the "source of truth" for the scheduling and the play-out automation of the radio station, but it also serves as an OpenID Connect Provider to the components of the AURA suite.

Polyglot Software Developer. Python and Go. Linux and Docker.