GUI Kanban Board

Phase 1 — Data model & SQLite

Define minimal schema and data access for tasks in a Kanban board. Keep logic simple, UI-agnostic, and deterministic.

  • Table(s) for tasks
  • CRUD functions for tasks.
  • Simple input validation (non-empty titles).

Functional result: database initializes; tasks can be created, read, updated, deleted; persistence works across app restarts.


Phase 2 — Minimal GUI: task list

  • Tkinter window with three columns: "To Do," "In Progress," "Done."
  • Add task with title/description and assign to To Do.
  • Display tasks in corresponding columns.

Functional result: user can add tasks, see them in columns, close/reopen app, and tasks persist.


Phase 3 — Task management & movement

  • Select a task to edit title/description.
  • Delete tasks.
  • Move tasks between columns via buttons (Move to To Do, Move to In Progress, etc.) or optionally via drag-and-drop.

Functional result: user can edit, delete, and move tasks; GUI updates correctly; all changes persist in SQLite.


Phase 4 — Advanced Features & Usability Enhancements

  • Implement filtering of tasks by title or description within a board.
  • Implement sorting of tasks by creation date or priority.
  • Handle database errors, invalid inputs, and missing boards gracefully.

Functional result: user can filter/search and sort through tasks; all actions persist and errors are clearly reported.