Introduction
The sdk package, found at https://github.com/bristol-su/support, contains all the inner workings of the portal. This demotes the portal to a frontend realisation of the portal, whilst storing the core in a reusable package. This means that all the code that makes the portal work is in a reusable package, whilst the portal just uses this code and adds a frontend and API.
For the portal model to work, this support package is essential. Although the support package could be a part of the main portal site, this would make the creation of modules much less flexible. As is, any Laravel app which extends the module service provider and pulls in the support package can be integrated with the portal.
Without this package, modules would have to be developed within the portal. The support package holds the core sharable functionality to allow modules to be developed outside the portal framework. It also enables things like the module playground to work, which is simply a different realisation of the portal.
The support package has been split into features, some of which rely on others and some of which are standalone. This book aims to give an overview of the working and usage of each feature, to help you make the most of the power of the portal when developing modules, or creating new features for the portal.
A class reference can be found here: https://bristol-su.github.io/support
Action: The 'trigger' system to allow for actions to be carried out based on events. When events in Laravel are fired, an action that was set up by a user can be triggered.
Activity: Allows for sets of module instances to be grouped to make a process. An activity can be thought of as a service delivered through the portal.
Activity Instance: A method of associating users completing an activity to the activity.
Authentication: Handles authenticating users, and controls the group/role/user logins
Authorization: Provides middleware to restrict access to modules and activities
Completion: Handles testing if module instances have been completed by users
Connection: Handles connections to any third party sites that modules need access to
DataPlatform: Set of models and repositories to interact with the data platform.
Events: Integrate events that may be fired into the framework
Filters: Handles creating, registering and testing filters against models
Helpers: Helper functions to speed up building within the portal ecosystem
Http: Register routes and frontend based middleware
Logic: Handles sets of filters to make groups of users/groups/roles
Module: Handles the creation and registration of a module
ModuleInstance: Handles creating an instance of a module to use in an activity
Permissions: Handles permissions for the site and for modules
Testing: Helpers for module tests
User: Handles anything to do with the database user