Project structure

All features/functions are put into separate structures, often front-end and back-end side-by-side. The whole project is divided into the following parts:

Blueprints (back-end applications)

Based on Flask blueprint, it allows separating parts of an application that are significantly different each from another and requires a different level of authentication/authorization.

Components

Components are ReactJS pieces of code, sometimes accompanied by CSS. Doesn't have any back-end part. Examples:

  • alerts
  • tabs
  • modals, and others.

The boilerplate is also fully integrated with the React Bootstrap library. To use it, just create a link like:

import Button from 'react-bootstrap/Button';

Modules

Modules are the code that can't be decoupled and should go together: front-end and back-end. They both belong to the same functionality and front-end often calls endpoints from the same module's back-end.

The API endpoints will be imported and registered in the dashboard blueprint automatically.

If back-end requires to initialize some extension using init_api() this function should be provided at the .py code and will be called automatically.