Skip to content

Architecture

Jannik Huschka edited this page Aug 3, 2022 · 19 revisions

All the classes in the Squello-Core package have the prefix SPB (for Squello Project Board).

Basic structures

SPBBoard is the orchestrating class for all features, it is the model behind the runtime structure. A board has multiple SPBColumns, each of which have multiple SPBCards (until now: only GitHub issues added to the specific project).
Columns only have a title; cards have title, description, and SPBLabels (with color and name) and SPBAssignees (GitHub users with their name).

GitHub connection & authentication

Board, columns and cards all communicate with GitHub via the same SPBGithubBoardProvider that uses an SPBGithubAPI to communicate to GitHub and converts the responses to domain objects for the board components. For real-time updates, an SPBGithubChangeProvider is used to communicate with a ruby script written by us that is set up to receive and manage all relevant board events provided by GitHub using webhooks.
If no user is signed in or necessary Authorization is missing, an SPBAuthenticator is used to prompt for GitHub username and access token (see README).

Visual elements

SPBIndicatorDetection and its subclasses is used to show an indicator where a card is going to be dropped while dragging. When moving columns, an SPBGhostColumn is used to represent the column's future position.
The whole UI (window with lane area and SPBSidebar) is built by MorphicToolBuilder which required some ToolBuilderSpecs (the remaining classes).

Clone this wiki locally