Kanban

Full-Stack Task Management with a Django REST API

A full-stack Kanban board for organizing tasks, built with a Next.js frontend and a Django REST API.

Kanban board with color-coded columns, task cards, and subtask progress

Overview

Kanban is a full-stack task management application inspired by Kanban boards. Users can create boards, organize their work into color-coded columns, and track tasks and their subtasks. The project is split into a Next.js frontend and a Django REST Framework API backed by PostgreSQL.

The problem

Keeping track of tasks across several projects quickly becomes messy without a clear view of what is planned, in progress, and done. Many task management tools are either too heavy for personal use or do not let users shape the workflow around their own stages.

The solution

Kanban gives each user private boards where they define their own columns and move tasks between them. Each task can be broken down into subtasks with a progress indicator, so the status of every piece of work is visible at a glance.

Key features

Tech stack

Technical implementation

Challenges & engineering decisions

Results & lessons learned

Results

Built and deployed a working full-stack Kanban application with a separate frontend and API, user authentication, nested board data, and an automated test, build, and deployment pipeline for the backend.

Lessons learned

  • Nested serializers make an API convenient for the frontend, but writable nested data needs explicit rules for creating, updating, and deleting related records.
  • In a multi-user API, every query and every ID sent by the client has to be checked against the current user.
  • Connecting NextAuth.js to an external JWT backend requires clear decisions about where tokens are stored and how they reach the API.
  • Automating tests, builds, and deployment early makes every later change safer to ship.