Skip to main content

Crate communitas_kanban

Crate communitas_kanban 

Source
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.
BoardAnalytics
Summary analytics for a Kanban board.
BoardSettings
Configuration settings for a board.
BoardUpdate
Update payload for board modifications.
BurndownChart
Burndown chart data for tracking remaining work.
BurndownDataPoint
A single data point in burndown tracking.
Card
A card (work item) within a column.
CardFilter
Filter criteria for querying cards.
CardUpdate
Update payload for card modifications.
Column
A column within a board representing a workflow stage.
ColumnUpdate
Update payload for column modifications.
Comment
A comment on a card.
CycleTimeBucket
A bucket in the cycle time histogram.
CycleTimeDistribution
Cycle time distribution for understanding work flow.
KanbanService
High-level service for Kanban operations.
Step
A checklist step within a card.
Tag
A tag for categorizing cards.
VelocityDataPoint
A single data point in velocity tracking.
VelocityMetric
Velocity metric showing cards completed over time.

Enums§

CardState
The state of a card in the Kanban workflow.
KanbanError
Errors that can occur in the Kanban system.
KanbanEvent
Events emitted when the CRDT document changes.
Priority
Priority level for a card.
TimeRange
Time range for analytics queries.

Type Aliases§

KanbanResult
Result type alias for Kanban operations.