KanbanStructure - IEEE-Team-3/map GitHub Wiki

Overview

The Kanban board provides a visual system for organizing tasks into different stages, such as "To Do," "In Progress," and "Done." It helps users track task progress and assign responsibilities within teams.

Board Structure

  • Columns: Each column represents a specific task status (e.g., To Do, In Progress, Done).
  • Cards: Each card represents a task that can be moved between columns.
  • Teams: Each team has its own board where tasks can be assigned to team members.

Example Columns

  1. To Do: Tasks that are planned but not yet started.
  2. In Progress: Tasks that are actively being worked on.
  3. Review: Tasks that are completed and awaiting review.
  4. Done: Completed tasks.

Example Schema

const KanbanColumnSchema = new Schema({
  name: { type: String, required: true },
  position: { type: Number, required: true },
});

const TaskSchema = new Schema({
  title: { type: String, required: true },
  description: { type: String },
  status: { type: String, enum: ['To Do', 'In Progress', 'Review', 'Done'] },
  assignee: { type: Schema.Types.ObjectId, ref: 'User' },
  column: { type: Schema.Types.ObjectId, ref: 'KanbanColumn' },
});

Example Use Case

The Kanban board will allow users to create tasks, move them through columns based on progress, and assign them to team members.

Backend Logic

function moveTaskToColumn(taskId, columnId) {
  const task = Task.findById(taskId);
  task.column = columnId;
  task.save();
}

function createColumn(name, position) {
  const column = new KanbanColumn({
    name,
    position,
  });
  column.save();
}
⚠️ **GitHub.com Fallback** ⚠️