# Architecture Find details on the AURA Architecture here. ## Architectural principals Some of our core organisational and architectural requirements for AURA are: - **modular architecture**: the whole suite should be made up of modular components which could be exchanged with other custom components - **transparent API**: every component shall provide a well-documented API through which other components can interact with it, ideally as a REST API. - **reuse of existing components**: we do not want to reinvent the wheel. Several stations already developed single components as free software and we can adapt and build on those - **modern frameworks**: we do not code from scratch but use modern application development frameworks which provide maintainability as well as security ```{admonition} Outdated diagram :class: tip The following component diagram doesn't reflect all the details of the current implementation. It will be updated at some point. ``` ![Diagram illustrating the AuRa components](https://gitlab.servus.at/aura/aura/raw/main/assets/images/components.png 'AuRa Components') ## Diagrams ### Network Diagram Check out the provided [Deployment Scenarios](../administration/deployment-scenarios.md) on ideas how the individual projects can be integrated within your infrastructure. ### Data Model #### Simplified Data Model This data model is an abstraction of the main entities used by Steering and Tank. #### Steering Data Model This is the Steering data model as of March 2024. Parts of Django and other applications that are not directly involved were omitted. ### Tank Data Model This is the Tank data model as of March 2024. ## Conflict Resolution for the scheduling timetable Check out the [Conflict Resolution Documentation](misc/conflict-resolution.md) page.