Previous topic

Building

Next topic

Running

This Page

Architecture

Backend

The backend is a Flask application which is expected to run on Python 3.6+ using type annotations.

The persistence layer is handled using SQLAlchemy via Flask-SQLAlchemy. Database schema migrations are performed by Alembic.

The REST API follows the JSON-API standard using Flask-REST-JSONAPI.

API that fits an RPC model better than a REST model is serialized using marshmallow which is what Flask-REST-JSONAPI uses anyway.

Frontend

The frontend framework is React, using Redux for state management. The source is written in TypeScript and transpiled to ES5.

The UI framework/CSS framework is semantic-ui. We use the React components for this as well.