Skip to content

Kanban Board is a service for organizing tasks according to the Kanban principle (a board with columns "To Do", "In Progress", "Done"). It allows teams to effectively manage workflow, track progress, and optimize processes. , Project architecture

Notifications You must be signed in to change notification settings

ViktorSalk/java-kanban

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📌 Kanban Board — Управление задачами в стиле Agile

Kanban Board — это сервис для организации задач по принципу Kanban (доска с колонками «To Do», «In Progress», «Done»). Позволяет командам эффективно управлять workflow, отслеживать прогресс и оптимизировать процессы. 🏗️ Архитектура проекта

Проект реализован как монолитное приложение с четким разделением слоев:

API Layer: REST-контроллеры для взаимодействия с клиентом

Service Layer: бизнес-логика и валидация

Storage Layer: хранение данных (в памяти или БД)

Model Layer: сущности задач, эпиков, подзадач

⚙️ Технологический стек Технология Назначение Java 17 Основной язык разработки Spring Boot Фреймворк для backend-разработки Maven Управление зависимостями H2 / PostgreSQL База данных (в зависимости от конфигурации) REST API Взаимодействие с клиентом Docker Контейнеризация (опционально) 📡 Основные Endpoint'ы 🔹 Управление задачами

POST /tasks — создать задачу

GET /tasks/{id} — получить задачу по ID

GET /tasks — список всех задач

DELETE /tasks/{id} — удалить задачу

PUT /tasks — обновить задачу

🔹 Управление эпиками (Epic)

POST /epics — создать эпик

GET /epics/{id} — получить эпик по ID

GET /epics — список всех эпиков

DELETE /epics/{id} — удалить эпик

🔹 Управление подзадачами (Subtask)

POST /subtasks — создать подзадачу

GET /subtasks/{id} — получить подзадачу по ID

GET /subtasks — список всех подзадач

DELETE /subtasks/{id} — удалить подзадачу

🔹 История и приоритезация

GET /history — получить историю просмотров задач

GET /prioritized — список задач, отсортированных по приоритету

💡 Ключевая бизнес-логика

✅ Иерархия задач:

Эпик (Epic) — крупная задача, состоящая из подзадач.

Подзадача (Subtask) — часть эпика. Статус эпика автоматически пересчитывается на основе подзадач.

Обычная задача (Task) — независимая единица работы.

✅ Статусы задач:

NEW → IN_PROGRESS → DONE

✅ Автоматическое обновление статусов:

Если все подзадачи эпика завершены (DONE), эпик автоматически помечается как выполненный.

✅ История просмотров:

При запросе задачи через GET /tasks/{id} она добавляется в историю (максимум 10 последних просмотров).

✅ Сортировка по приоритету:

Задачи выводятся в порядке срочности (по дате начала).

🚀 Особенности

Гибкое хранилище: данные можно сохранять в памяти (InMemory) или в БД (PostgreSQL).

Масштабируемость: легко добавить новые типы задач или статусы.

Простота интеграции: REST API позволяет подключать фронтенд или мобильное приложение.

🎯 Цель проекта

Создать интуитивно понятный инструмент для управления задачами, который:

Упрощает трекинг прогресса.

Автоматизирует обновление статусов.

Подходит для небольших Agile-команд.

About

Kanban Board is a service for organizing tasks according to the Kanban principle (a board with columns "To Do", "In Progress", "Done"). It allows teams to effectively manage workflow, track progress, and optimize processes. , Project architecture

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages