@@ -5,8 +5,8 @@ This page gives insights on extending Aura Engine internals or through the API.
<!-- TOC -->
-[Aura Engine Development Guide](#aura-engine-development-guide)
-[Architecture](#architecture)
-[Components](#components)
-[AURA Componentes](#aura-componentes)
-[Engine Components](#engine-components)
-[API](#api)
-[Required Data Sources](#required-data-sources)
-[Provided API Endpoints](#provided-api-endpoints)
...
...
@@ -18,14 +18,34 @@ This page gives insights on extending Aura Engine internals or through the API.
<!-- /TOC -->
## Architecture
## AURA Componentes
AURA Engine as part of the AURA Radio Suite uses an modulear architecture
based on a REST API. All external information is retrieved using JSON data-structures.
To get the basic architectural overview, visit the [Aura Meta](https://gitlab.servus.at/autoradio/meta) repository.
### Components
Starting development of engine can be quite tedious, as it requires all most all other AURA components to be up and running.
For example:
- Steering, to get the main incredient of an play-out engine: schedules (or "timeslots" in Steering terms),
which hold the actual information on playlists and their entries.
- Dashboard, to have a neat interface, being able to programm the schedules
- Tank, to get the references to audio files and other audio sources. Plus the actual files.
If you need to test and develop against the Engine's API you'll also need to get the `engine-api` project running.
For a start it's recommended to create a general `aura` project folder. In there you start cloning all the sub-projects.
After having all the sub-projects configured, and verified that they are working, take a look at the AURA `meta` project.
There's a convenience script to start all of the three main dependencies (Steering, Dashboard, Tank) all at once:
```bash
~/code/aura/meta$ ./run.sh aura local
```
### Engine Components
**engine-core.py**: It is the server which is connected to the external programme source (e.g. aura steering and tank), to liquidsoap and is listening for redis pubsub messages. This precious little server is telling liquidsoap what to play and when.