This documentation is intended for programmers who want to extend or replace features of the pCon.basket web application. The focus of this documentation is to help developers understand the basic concepts behind pCon.basket plugins.

The pCon.basket is a plugin based web application. Every major part of it is a plugin and can be replaced or extended. Plugins are devided into categories to fulfill a different purpose. Plugin categories are interfaces that can be implemented to extend or replace parts of the pCon.basket web application. These interfaces are documented in the plugin SDK. To illustrate how to implement some of these plugin categorie an example plugin is provided as part of the plugin SDK. These examples can be found in the /src/plugins/ directory of the example plugin source code.

The following diagram shows how plugins implementing different plugin categories are accessed by the user. The application is always accessed via an activity. An activity can be anything from creating a new project or opening a project to view a report and usally starts the ProjectEditor plugin.

When the application is loaded, Activity plugins that are registered with the plugin manager will be accessible through the basket dashboard. Once an activity has been chosen the activity plugin is loaded. Activity plugins can then load other plugins. These can be either the ProjectEditor plugin or any other category. The project editor will then load further plugins if necessary. Only plugins with the Authentication and Authorization categories are loaded at the start of the application. All other plugin categories will be loaded on demand.

%%{init:{"theme":"dark"}}%% flowchart TD Authentication --> Authorization Authorization --> SelectActivity{{User selects an activity}} SelectActivity --> A1[Activity 1] SelectActivity --> A2[Activity 2] SelectActivity --> A3[Activity n] SelectActivity --> A4[Non-ProjectEditor Activity] A1 --> ProjectEditor A2 --> ProjectEditor A3 --> ProjectEditor ProjectEditor --> ItemList ProjectEditor --> Catalog ProjectEditor --> ProjectData ProjectEditor --> More1[...] A4 --> More2[...]
%%{init:{"theme":"default"}}%% flowchart TD Authentication --> Authorization Authorization --> SelectActivity{{User selects an activity}} SelectActivity --> A1[Activity 1] SelectActivity --> A2[Activity 2] SelectActivity --> A3[Activity n] SelectActivity --> A4[Non-ProjectEditor Activity] A1 --> ProjectEditor A2 --> ProjectEditor A3 --> ProjectEditor ProjectEditor --> ItemList ProjectEditor --> Catalog ProjectEditor --> ProjectData ProjectEditor --> More1[...] A4 --> More2[...]
flowchart TD
    Authentication --> Authorization
    Authorization --> SelectActivity{{User selects an activity}}
    SelectActivity --> A1[Activity 1]
    SelectActivity --> A2[Activity 2]
    SelectActivity --> A3[Activity n]
    SelectActivity --> A4[Non-ProjectEditor Activity]
    A1 --> ProjectEditor
    A2 --> ProjectEditor
    A3 --> ProjectEditor
    ProjectEditor --> ItemList
    ProjectEditor --> Catalog
    ProjectEditor --> ProjectData
    ProjectEditor --> More1[...]
    A4 --> More2[...]

Generated using TypeDoc