Kanban Tasks API is a backend service designed to handle task management in a simple Kanban-style board (e.g., TODO, IN_PROGRESS, DONE). It supports user registration and login using JWT authentication, and provides secure CRUD endpoints for managing tasks.
This project was developed as part of my personal learning journey to explore backend development using NestJS, TypeORM, and Docker. It helped me practice structuring modular APIs, implementing authentication, and deploying services in a containerized environment.
- 🔐 JWT-based user authentication
- ✅ CRUD operations for tasks
- 📊 Update task statuses (TODO → DONE)
- 🔄 Filter and retrieve task details
- 🧩 Built with modular NestJS architecture
- NestJS – Backend framework
- TypeORM – ORM for PostgreSQL
- PostgreSQL – Relational database
- JWT – Authentication system
- Docker – Containerized deployment
git clone https://github.com/your-username/kanban-be.git
cd kanban-benpm installIsi file .env (contoh):
# App
PORT=3000
NODE_ENV=development
# JWT
JWT_SECRET=kanban-be
JWT_ALGORITHM=HS256
JWR_EXPIRES=1h
JWT_AUDIENCE=kanban-be
JWT_ISSUER=kanban-be
# Database
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USERNAME=kanban-be
DATABASE_PASSWORD=Yourpassword1
DATABASE_DATABASE=kanban-be💡 Note: Adjust to your development environment
docker compose up --build -dDocker Compose akan mengatur backend beserta database PostgreSQL secara otomatis.
⚠️ Warning: Check terlebih dahulu docker-compose ini dan pastikan bisa untuk membaca file .env
If you prefer not to build the image manually, you can use the prebuilt Docker image available on GitHub Container Registry:
docker pull ghcr.io/malllvinnn/kanban-be_service:v0.2.0mkdir kanban-be-docker && cd kanban-be-docker# App
PORT=3000
NODE_ENV=development
# JWT
JWT_SECRET=your_jwt_secret
JWT_ALGORITHM=HS256
JWR_EXPIRES=1h
JWT_AUDIENCE=kanban-be
JWT_ISSUER=kanban-be
# Database
DATABASE_HOST=kanban_be_postgres
DATABASE_PORT=5432
DATABASE_USERNAME=kanban-be
DATABASE_PASSWORD=Yourpassword1
DATABASE_DATABASE=kanban-be💡 Note: Adjust to your development environment
services:
kanban_service:
container_name: kanban_service
image: ghcr.io/malllvinnn/kanban-be_service:v0.2.0
ports:
- '3000:3000'
env_file:
- .env
depends_on:
- kanban_be_postgres
kanban_be_postgres:
container_name: kanban_be_postgres
image: postgres:latest
restart: on-failure
ports:
- "5432:5432"
environment:
POSTGRES_USER: ${DATABASE_USERNAME}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
POSTGRES_DB: ${DATABASE_DATABASE}💡 Note: Make sure your .env file is present and correctly configured before running.
docker compose up -dPOST /users/register– Register a new userPOST /users/login– Login and receive JWT
GET /v1/tasks– Get all tasksGET /v1/tasks/:id– Get task by IDPOST /v1/tasks– Create a new taskPATCH /v1/tasks/:id– Update a taskDELETE /v1/tasks/:id– Delete a task
To run tests, execute the following command:
npm run test:cov
⚠️ Note: Unit test coverage is currently around 50% and is expected to improve as testing progresses.
You can test the API using:
PostmanCollection (optional to add).httpfiles in local dev tools (e.g., VS Code REST Client)
Muhammad Malfin
- 📍 Semarang, Indonesia
- 📧 [email protected]
- 🔗 Instagram | LinkedIn