Almost everything in Aurora framework is an application. Even the root app itself.
All child apps are instances of the root app.
When you run an Aurora project using the following command, it will serve the root app:
(venv) python3 -m app
You can add your own apps, then the root app will serve them.
Child App
Beside the root app you can create unlimited number of child apps for your project.
You will learn how to create and manage your child apps in the Manage Apps section.
In order to clarifying the basic structure of an Aurora project, the project skeleton from the previous section, was simplified.
The one you have got after initializing the root app, is a little larger.
It has two child apps: errors, and aurora
The errors app is responsible for handling the HTTP errors that you can use alongside other apps.
You will learn about errors app in the HTTP Errors section.
Caution!
Do not delete this app because you will need it for all the other apps. You will learn how to simply modify the views and styles of this app at the continuation of this documentation.
The aurora app is created only for making sure that your project runs correctly for the first run. You can use it as a reference.
If you are a minimalist and don't want to have it in your project you can simply delete it using the following command:
(venv) python3 -m manage delete-app
It will prompt you to enter the app name, in this case it is aurora, and after confirmation it will be deleted permanently.
You will learn more about Aurora CLI commands in the later section.
App Components
Every child app has its own components. Some components are common between apps.
Generally saying Aurora apps are divided into the following components:
Primary Components:
Models - Every model is a class. They are common for all apps.
Views - Every view is an HTML like file with Jinja2 syntax. Each app has its own views.
Controllers - Every controller is a class. Each app has its own controllers.
Secondary Components:
Forms - Every form is a class. Each app can have its own forms.
Statics - Each app can have its own static files.
Files like images, CSS files, JS file, etc.