Files
app-28210374/.vibecoder/plan.md
T
2026-09-07 19:32:02 +05:30

4.4 KiB

AI Task Kanban Board

What We're Building

A clean, minimal kanban board for managing AI tasks across five workflow stages: TODO, IN PROGRESS, QA, UAT, and PROD. Users can create, edit, and drag tasks between columns, filter by priority or tags, search for tasks, and view full details in a modal. All data persists to a local SQLite database. No login required — single-user app.

How It Works for the User

  1. Main Board: Five columns (TODO, IN PROGRESS, QA, UAT, PROD) display task cards.
  2. Create/Edit: Click "Add Task" or a card to open a modal with fields: Title, Description, Priority (Low/Medium/High), Due Date, Assignee, Tags (comma-separated), Time Estimate (hours).
  3. Drag & Drop: Drag cards between columns to move tasks through the workflow.
  4. Filter & Search: Filter by priority or tag; search by title/description in real time.
  5. Task Details: Click a card to view/edit all fields in a modal.
  6. Recurring Tasks: Mark a task as recurring; when moved to PROD, it auto-creates a copy in TODO (optional, can be toggled per task).

Key Decisions & Why

  • No Auth: Single user, no need for login or roles.
  • SQLite: Lightweight, file-based, no external database needed.
  • Drag-and-Drop: React Beautiful DnD or similar for smooth UX.
  • Inline Editing: Modal-based for simplicity; avoids complex inline form state.
  • Clean UI: Minimal design with card-based layout, no dark mode or heavy styling.
  • Recurring Tasks: Simple flag on the task; when moved to PROD, a new copy spawns in TODO.

Technical Details

Frontend (React)

  • Main Page: / — Kanban board with five columns.
  • Components:
    • KanbanBoard: Renders columns and handles drag-and-drop.
    • TaskCard: Displays task summary (title, priority badge, due date, assignee).
    • TaskModal: Create/edit form with all fields.
    • FilterBar: Priority and tag filters, search input.
  • State: React hooks (useState, useContext) for tasks, filters, modal state.
  • Styling: Tailwind CSS for clean, minimal design.

Backend (FastAPI)

  • Database: SQLite at ./data/app.db.
  • Models:
    • Task: id, title, description, priority (enum: Low/Medium/High), due_date, assignee, tags (JSON array), time_estimate (int, hours), column (enum: TODO/IN_PROGRESS/QA/UAT/PROD), recurring (bool), created_at, updated_at.
  • Endpoints:
    • GET /api/tasks — List all tasks (optionally filtered by column, priority, tag).
    • POST /api/tasks — Create a new task.
    • GET /api/tasks/{id} — Get task details.
    • PUT /api/tasks/{id} — Update a task.
    • DELETE /api/tasks/{id} — Delete a task.
    • PUT /api/tasks/{id}/column — Move task to a new column (handles recurring logic).
    • GET /api/health — Health check (returns backend: sqlite).
  • Recurring Logic: When a task with recurring=true is moved to PROD, the backend creates a new task with the same title, description, priority, assignee, tags, and time_estimate in the TODO column.

Data Model

Task:
  - id: UUID (primary key)
  - title: str (required)
  - description: str (optional)
  - priority: enum (Low, Medium, High)
  - due_date: date (optional)
  - assignee: str (optional)
  - tags: list[str] (stored as JSON)
  - time_estimate: int (hours, optional)
  - column: enum (TODO, IN_PROGRESS, QA, UAT, PROD)
  - recurring: bool (default: false)
  - created_at: datetime
  - updated_at: datetime

Assumptions & Defaults

  • Single user, no authentication.
  • Tags are comma-separated strings in the UI, stored as JSON arrays in the database.
  • Priority defaults to "Medium".
  • Due dates are optional; cards without due dates show no date badge.
  • Assignee is a free-text field (no user management).
  • Time estimate is in hours; optional.
  • Recurring tasks only auto-create when moved to PROD (not on a schedule).
  • No undo/redo; changes are immediate.

Out of Scope

  • User authentication or multi-user support.
  • Recurring task scheduling (cron-based).
  • Task history or audit logs.
  • Notifications or reminders.
  • Export/import (CSV, JSON).
  • Dark mode or theme customization.
  • Mobile-responsive design (desktop-first).
  • Subtasks or task dependencies.
  • Comments or activity feed.
  • Analytics or reporting.

Scope

Depth: MVP. Something they could actually use: the core flow end to end, real persisted data, auth ONLY if the app is meaningless without it, sensible empty and error states. No test suite, no roles, no CI.