Agile Project Retrospectives & Kan-Ban Planning
This page shows how to design collaborative Kanban whiteboards and sprint retrospectives using Kritzel. You will learn how to draft static scenery columns, spawn text-overlaid sticky cards, establish spatial task correlations with connector lines, and deploy highly customizable context menus to mutate shape properties dynamically.
Prerequisites
Complete the Quick Start guide to integrate the <kritzel-editor> component into your Angular project.
How Agile Planning Boards Work
Building a highly response agile board requires coordinating several spatial and structural APIs:
- Unselectable Column Tracks: Columns such as "What Went Well" or "Done" are drawn as static
KritzelShapebackground panels with theirisEditableproperty set tofalse, preventing users from grabbing or moving board swimlanes. - Text-Overlaid Sticky Cards: Cards are modeled using a block
KritzelShaperepresenting the post-it paper, and a multi-lineKritzelTextoverlaying the copy. Programmatic grouping viagroup()ensures that both elements stay conjoined as a single entity when dragged or repositioned. - Task Connector Lines: Relationships or dependencies between retro notes are plotted with
KritzelLine, utilizing thearrowsproperty to draw directed dependency pointers. - Conditional WHITEBOARD Context Menus: Whiteboard actions are injected into
objectContextMenuItemsandglobalContextMenuItemsand filtered at runtime usingvisible()predicates, ensuring color customization or alignment controls are only displayed when appropriate shapes are highlighted.
Collaborative Board Seeding
Before retrospective facilitators or developers start placing visual sticky notes, an automated initialization process renders the column layouts, column label text elements, and initial test sticky nodes.
Static background lanes and column titles are created first by initializing them with isEditable = false. By restricting editability, they become unselectable scenery elements, allowing team members to highlight or sketch on cards nested on top of the boundaries. Next, we seed default sticky cards by creating card bodies with a solid fill color and placing KritzelText labels centrally on top of them.
Dynamic Shape Alignment and Grouping
Distributed teams often need to tidy up cluttered boards by stacking card piles, aligning swimlane elements horizontally, or binding shapes into cohesive visual groups. This panel leverages the grouping and custom canvas alignment APIs.
To programmatically fuse a paper card body with its text caption, we select both elements using this.editor.selectObjects([shape, text]) and execute this.editor.group(). The editor combines these instances into a unified KritzelGroup. When users need to align scattered items, calling this.editor.alignObjects(KritzelAlignment.CenterHorizontal) evaluates selected object bounds and neatly positions them programmatically.
Custom Context-Sensitive Menus
Custom interaction menus offer highly tailored whiteboard options (e.g. changing sticky colors to match columns, or grouping items on right-click) while gracefully suppressing unrelated engine options.
The objectContextMenuItems property overrides the global default right-click menu with tailored, nested menus like "Change Sticky Color" or "Align Selected Cards". Submenus are defined seamlessly using the children array property on menu models. We use the custom visible and disabled predicates on these structures to ensure options such as color modification are hidden when lines or non-sticky files are selected.