-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
All the classes in the Squello-Core package have the prefix SPB (for Squello Project Board).
SPBBoard is the orchestrating class for most features, it manages the construction (holds all toolbuilder methods) and it is together with the SPBSidebar 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).
Board, columns and cards all communicate with GitHub via the same SPBGithubBoardProvider that uses an SPBGithubAPI to send HTTP requests 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. It also checks for the token scopes (see README).
SPBIndicatorDetection and its subclasses are transparent dummy morphs laying over cards and lanes to catch mouse drag events. They are used to show an indicator (orange line) 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).