## Overview

Enables different agile working methods to be mapped using a configurable board.

The Board widget transforms structured cplace data into an interactive visual board where pages become cards that can be organized across columns and swimlanes. This widget excels at visualizing workflow stages, tracking items through processes, and enabling quick status updates through drag-and-drop interactions. Cards display rich information including titles, descriptions, assignees, dates, tags, and custom icons, while supporting real-time collaboration with automatic synchronization across users.

The widget's flexible configuration system supports both static (predefined) and dynamic (auto-generated) board structures, making it suitable for everything from simple Kanban workflows to complex multi-dimensional project tracking with date-based timelines.

## Use Cases

### Kanban Workflow Management
Map work items through workflow stages like Backlog, In Progress, Review, and Done. Status attribute maps to columns, with optional swimlanes for priority or team grouping. Drag cards between columns to update status, providing immediate visual feedback on workflow state and bottlenecks.

### Sprint Planning and Tracking
Organize user stories and tasks across sprints with sprint attribute mapped to swimlanes and status mapped to columns. Provides clear visibility into work distribution per sprint and helps teams balance workload during planning sessions.

### Project Portfolio Visualization
Track multiple projects through phases with project phase as columns and department as swimlanes. Enables portfolio managers to see at a glance which projects are in which stages and identify resource allocation patterns across departments.

### Order and Request Tracking
Monitor customer orders or service requests through fulfillment stages. Order status (Open, Processing, Delivering, Closed) maps to columns, while customer or priority creates swimlanes for quick identification of high-priority or specific customer orders.

### Time-Based Event Planning
Visualize events distributed across time periods using dynamic date-based columns (weeks, months, quarters). Event type as swimlanes helps planners identify scheduling conflicts and ensure balanced event distribution over time.

### Bug and Issue Tracking
Manage software defects through resolution lifecycle with bug state as columns (New, In Progress, Testing, Closed) and severity as swimlanes (Critical, High, Medium, Low). Provides development teams with clear overview of bug backlog prioritization and resolution progress.

## Design Considerations

### When to Use Board Widget

Use the Board widget when you need to:
- **Visualize workflows** where items move through defined stages or states
- **Enable quick updates** through drag-and-drop rather than form-based editing
- **Track process flow** with visual representation of work distribution across categories
- **Support collaborative work** where multiple users need real-time view of changing status
- **Apply flexible filtering** to focus on specific subsets of cards while maintaining board context
- **Monitor time-based progression** using dynamic date-range columns

### When to Consider Alternatives

Choose different widgets when your primary need is:
- **Detailed data analysis**: Use Table widget for sortable, filterable tabular data with aggregations
- **Hierarchical relationships**: Use Tree widget for parent-child or nested structures
- **Quantitative analysis**: Use Chart widgets for statistical visualization and trend analysis
- **Complex searching**: Use Search widget for advanced query capabilities and bulk operations
- **List-based browsing**: Use simple List widgets when board visualization adds no value

### Board Structure Patterns

**Single-Dimension Boards** (columns only, no swimlanes):
- Simple workflows with clear linear progression
- Focus on single categorization criterion (e.g., status only)
- Reduces visual complexity when swimlanes provide no additional value

**Two-Dimension Boards** (columns and swimlanes):
- Cross-categorization needs (e.g., status x priority, phase x team)
- Creates grid where each cell represents intersection of two attributes
- Powerful but can become complex with too many columns or swimlanes

**Static vs. Dynamic Elements**:
- **Static**: Predefined columns/swimlanes with explicit control over order and labels
- **Dynamic**: Auto-generated from actual data values, adapts automatically but less control
- **Date-based dynamic**: Special support for time-granularity (days, weeks, months, quarters, years)

### Performance and Scale

The Board widget handles card limits through configuration:
- Define maximum cards per search to prevent performance degradation
- Dynamic columns/swimlanes have configurable limits to avoid excessive grid size
- Auto-hiding of elements beyond limits with user notification and manual override
- Incremental loading strategies for large datasets (initial load + sync updates)

### Multi-User Collaboration

Real-time synchronization keeps boards current across users:
- Automatic polling detects external changes and updates board
- Intelligent polling pauses when widget not visible or browser tab inactive
- Conflict detection notifies users when simultaneous edits occur
- Users see recent changes highlighted when configured

### Unmapped Cards Handling

Cards that don't match any column/swimlane combination:
- Collected in optional sidebar container (toggle on/off via configuration)
- Useful when card attribute values are incomplete, invalid, or outside board scope
- Cards can be dragged from sidebar to board, updating their attributes accordingly
- Indicates data quality issues that may need attention

## Alternatives

### Table Widget (`cf.platform.embeddedSearchAsTable`)
When you need detailed tabular data display with sorting, filtering, grouping, and aggregations. Better for data analysis tasks where board visualization doesn't add value. Cannot drag-and-drop to update values.

### Tree Widget
When data has hierarchical parent-child relationships that need visualization. Trees excel at nested structures while boards excel at flat categorization across dimensions.

### Chart Widgets
When primary goal is quantitative analysis, trend visualization, or statistical reporting. Charts show aggregated metrics while boards show individual items with rich detail.

### Connected Matrix Widget
When you need to visualize many-to-many relationships between two sets of pages. Matrix shows connections at intersections while boards show item categorization.

## Related Patterns

### Board + Table Combination
Use board for visual workflow management and table widget for detailed analysis of the same dataset. Users can switch between visual and analytical views of their data.

### Board + Chart Dashboard
Combine board showing individual items with charts showing aggregated metrics. Example: Sprint board showing tasks alongside burndown chart showing progress.

### Master-Detail with Board
Board serves as master list where clicking a card opens detail view or opens card in side panel for editing without leaving board context.

### Connected Boards
Multiple boards showing different views of related data. Example: Project board at high level with connected task boards for each project showing detailed work items.
