Expand description
§communitas-kanban
A CRDT-based Kanban system for Communitas.
This crate provides offline-first, peer-to-peer collaborative project boards with conflict-free synchronization via Yrs (Yjs) CRDTs.
§Features
- Boards: Kanban boards owned by Projects
- Columns: Workflow stages with optional WIP limits
- Cards: Work items with rich text descriptions, checklists, assignments
- Steps: Checklist items within cards
- Comments: Threaded discussions on cards
- Tags: Categorization and filtering
- Filtering: Filter cards by state, assignee, tags, due dates
§Architecture
- Normalized Data Model: Cards stored in global registry, columns store card IDs
- Atomic Operations: Card moves use single CRDT transactions
- OR-Set Collections: Conflict-free add/remove for assignees and tags
- YText Rich Text: Collaborative editing for descriptions and comments
§Usage
ⓘ
use communitas_kanban::{KanbanService, BoardSettings};
let service = KanbanService::new(crdt_manager, peer_id);
// Create a board for a project
let board = service.create_board("project-four-words", "Sprint 1".to_string(), None).await?;
// Add columns
let todo = service.add_column(&board.id, "To Do".to_string(), None).await?;
let done = service.add_column(&board.id, "Done".to_string(), None).await?;
// Create and move cards
let card = service.create_card(&board.id, &todo.id, "Task 1".to_string(), None).await?;
service.move_card(&board.id, &card.id, &done.id, 0).await?;Structs§
- Board
- A Kanban board owned by a Project.
- Board
Analytics - Summary analytics for a Kanban board.
- Board
Settings - Configuration settings for a board.
- Board
Update - Update payload for board modifications.
- Burndown
Chart - Burndown chart data for tracking remaining work.
- Burndown
Data Point - A single data point in burndown tracking.
- Card
- A card (work item) within a column.
- Card
Filter - Filter criteria for querying cards.
- Card
Update - Update payload for card modifications.
- Column
- A column within a board representing a workflow stage.
- Column
Update - Update payload for column modifications.
- Comment
- A comment on a card.
- Cycle
Time Bucket - A bucket in the cycle time histogram.
- Cycle
Time Distribution - Cycle time distribution for understanding work flow.
- Kanban
Service - High-level service for Kanban operations.
- Step
- A checklist step within a card.
- Tag
- A tag for categorizing cards.
- Velocity
Data Point - A single data point in velocity tracking.
- Velocity
Metric - Velocity metric showing cards completed over time.
Enums§
- Card
State - The state of a card in the Kanban workflow.
- Kanban
Error - Errors that can occur in the Kanban system.
- Kanban
Event - Events emitted when the CRDT document changes.
- Priority
- Priority level for a card.
- Time
Range - Time range for analytics queries.
Type Aliases§
- Kanban
Result - Result type alias for Kanban operations.