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.