Diagrams


This page will show various diagrams about the framework structure.

Class View Diagram Tree


All class views tree reflect functionality each layer is responsible for a certain goal. You will be essentially using BaseViews, IndexViews and the leafs ModelView, chart views and form views.

Next is a summary explanation for each class:

BaseView:Collects all the exposed methods, creates the Flask blueprint and registers the URLs, initializes base permissions.
UtilView:Implements exposes back for special back UI functionality.
IndexView:Special view for rendering the index page.
SimpleFormView:Subclass it to render WTForms.
PublicFormView:Same as SimpleFormView but with public access only.
BaseModelView:Class responsible for an initial datamodel layer, implements search form and filters.
BaseChartView:Basic chart view functionality.
GroupByChartView:
 Subclass it to render Google charts with group by queries.
DirectByChartView:
 Subclass it to render Google charts with queries.
BaseCRUDView:Implement base functionality for add, edit, delete, creates all forms.
RestCRUDView:Exposes the JSON REST API for CRUD methods and more.
ModelView:Subclass it to render your views based on models, with complete CRUD UI functionality.
MasterDetailView:
 Renders a master ModelView and multiple detail ModelViews thar are database related.
MultipleView:Renders multiple views on the same page (ex: ModelView and GroupByChartView)

Class Data Diagram Tree


All classes for data access aim for abstracting the backend.

BaseInterface:Interface class, imposes a unique API layer for data access.
SQLAInterface:Data access for SQLAlchemy.
MongoEngineInterface:
 Data access for MongoEngine (MongoDB).
GenericInterface:
 Data access for custom data structures.

Class Security Diagram Tree


Classes that are involved in implementing security. Register security views, implement various methods of authentication manage permissions (insert/remove all permission on the backend).

BaseManager:Base class for all Manager classes, holds AppBuilder class.
AbstractSecurityManager:
 Abstract class for Security managers, defines the must have methods.
BaseSecurityManager:
 Base class for security, registers security views, implements authentication, inserts/removes all permission on the database, manages roles/users and views.
sqla.SecurityManager:
 Implements BaseSecurityManager for SQAlchemy.
mongoengine.SecurityManager:
 Implements BaseSecurityManager for MongoEngine.

Security Models ERD


This is the ERD of the frameworks security models.