A lightweight Kanban board built with Django (backend), Vue.js (frontend), and PostgreSQL.
It supports Boards, Columns, Tasks, Subtasks, and Epics, allowing teams to manage their workflows in a structured way.
- 🗂️ Boards & Columns – organize work visually
- ✅ Tasks & Subtasks – track granular progress
- 🧩 Epics – group multiple tasks under one big goal
- 🎨 Task Coloring – customize cards with colors
↔️ Drag & Drop – move tasks across columns- ✏️ Edit & Delete – update or remove tasks/columns directly
- 🌐 REST API – built with Django REST Framework
- 🚀 Dockerized Deployment – Nginx + Gunicorn + PostgreSQL
- 🔒 CORS + CSRF protection
Kanban/
├── board/ # Django app (models, views, serializers, urls)
├── Kanban/ # Django project settings and wsgi
├── frontend/ # Vue.js frontend app
├── docker/ # Docker-related files (nginx, gunicorn, db)
├── manage.py # Django entry point
└── README.md # Documentation
- Python 3.8+
- Node.js 16+ (for Vue.js frontend)
- Docker & Docker Compose
-
Clone the repository:
git clone https://github.com/yourusername/kanban.git cd kanban -
Create virtual environment and install dependencies:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt -
Run database migrations:
python manage.py migrate
-
Start the development server:
python manage.py runserver
-
Run Vue.js frontend (inside
frontend/):npm install npm run serve
-
Build and start containers:
docker-compose up --build
-
The services will be available at:
- Backend API → http://localhost:8000/api/
- Frontend → http://localhost:8080/
- Nginx (reverse proxy) → http://localhost/
-
To stop containers:
docker-compose down
GET /api/boards/– list boardsPOST /api/boards/– create boardGET /api/columns/– list columnsPOST /api/columns/– create columnGET /api/tasks/– list tasksPOST /api/tasks/– create taskPATCH /api/tasks/{id}/– update task (color, title, etc.)DELETE /api/tasks/{id}/– delete task
Configure in .env file (for Docker):
POSTGRES_DB=kanban
POSTGRES_USER=kanban
POSTGRES_PASSWORD=kanban
DEBUG=1
SECRET_KEY=replace_me_in_production
ALLOWED_HOSTS=*
- Use Gunicorn + Nginx for production
- Set
DEBUG=0and a secureSECRET_KEY - Configure persistent volume for PostgreSQL
- Enable HTTPS in Nginx
MIT License. Free to use and modify.