Skip to content

feat: implement custom workflow stages with drag-and-drop kanban configuration (#3183)#3207

Open
knoxiboy wants to merge 1 commit into
Priyanshu-byte-coder:mainfrom
knoxiboy:3183-issue-kanban-stages
Open

feat: implement custom workflow stages with drag-and-drop kanban configuration (#3183)#3207
knoxiboy wants to merge 1 commit into
Priyanshu-byte-coder:mainfrom
knoxiboy:3183-issue-kanban-stages

Conversation

@knoxiboy

Copy link
Copy Markdown
Contributor

Summary

This PR implements custom workflow stages with a fully functional drag-and-drop Kanban column and task configuration system. It allows teams/users to create project boards, define custom workflow stages (e.g. Design Review, QA, Staging), and reorder columns or move tasks between them using drag-and-drop.

Closes #3183


Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 💥 Breaking change (fix or feature that changes existing behavior)
  • 📝 Documentation update
  • ♻️ Refactor / code cleanup (no functional change)
  • ⚡ Performance improvement
  • 🔒 Security fix
  • 🧪 Tests only

What Changed

  • Database / Schema:
    • supabase/migrations/20260715000000_add_kanban_boards.sql: Created projects, workflow_stages, and tasks tables with appropriate indexes, references, and Row-Level Security (RLS) policies.
  • Backend / API routes:
    • src/app/api/kanban/route.ts: Project creation and retrieval.
    • src/app/api/kanban/[projectId]/route.ts: Project retrieval and deletion.
    • src/app/api/kanban/[projectId]/stages/route.ts: Creating and updating/deleting stages.
    • src/app/api/kanban/[projectId]/tasks/route.ts: Creating and updating/deleting tasks.
  • Navigation & Translations:
    • src/components/AppNavbar.tsx: Added "Kanban Board" navigation menu item for logged-in sessions.
    • messages/en.json & messages/es.json: Added English and Spanish localizations for the navigation menu.
  • Frontend / UI Components:
    • src/app/dashboard/kanban/page.tsx: Landing view lists projects and provides a project creator card.
    • src/app/dashboard/kanban/[projectId]/page.tsx: Kanban workspace wrapper.
    • src/components/kanban/KanbanBoard.tsx: Main board container orchestration using @dnd-kit/core and @dnd-kit/sortable.
    • src/components/kanban/KanbanColumn.tsx: Kanban column representation for stages.
    • src/components/kanban/KanbanTaskCard.tsx: Task card items.
    • src/components/kanban/StageSettingsModal.tsx: Stage manager enabling custom color picking, rename, delete, and reordering.

How to Test

  1. Navigate to /dashboard/kanban (or click "Kanban Board" in the navbar).
  2. Create a new project (e.g. "Release 1.0").
  3. Verify that the Kanban Board loads with default stages ("To Do", "In Progress", "Done").
  4. Click "Add Task" to create a task.
  5. Drag and drop the task card to reorder it or move it to a different column.
  6. Click "Configure Columns", add a new stage, reorder the stages list using the reorder buttons, choose a color preset, and save. Verify the columns reorder instantly.

Expected result: Projects, columns, and tasks are created and updated seamlessly. Drag-and-drop operations correctly persist task and column ordering to the database.


Checklist

  • Linked the related issue above
  • Self-reviewed my own diff
  • No unnecessary console.log, debug code, or commented-out blocks
  • npm run lint passes locally (Eslint setup failed locally on native dependency issue)
  • No TypeScript errors (npm run type-check)
  • Added or updated tests where applicable
  • Updated documentation / comments if behavior changed

Accessibility (UI changes only)

  • Keyboard navigation works correctly
  • Color contrast meets WCAG AA standard
  • ARIA labels / roles added where needed
  • Tested on mobile / responsive layout

Additional Context

  • Used @dnd-kit/core and @dnd-kit/sortable for fluid, native-feeling drag-and-drop interactions.
  • Optimized update queries to use Supabase bulk upserts when reordering stages and tasks.

Copilot AI review requested due to automatic review settings July 15, 2026 11:22

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions github-actions Bot added type:bug GSSoC type bonus: bug fix type:feature GSSoC type bonus: new feature type:design GSSoC type bonus: UI/design (+10 pts) type:performance GSSoC type bonus: performance (+15 pts) gssoc26 GSSoC 2026 contribution type:devops GSSoC type bonus: devops (+15 pts) labels Jul 15, 2026
@github-actions

Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix type:design GSSoC type bonus: UI/design (+10 pts) type:devops GSSoC type bonus: devops (+15 pts) type:feature GSSoC type bonus: new feature type:performance GSSoC type bonus: performance (+15 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Implement Custom Workflow Stages with Drag-and-Drop Kanban Column Configuration

2 participants