Розробка системи управління завданнями (Task Management)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Розробка системи управління завданнями (Task Management)
Середня
від 2 тижнів до 3 місяців
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Розробка системи управління задачами (Task Management)

Task Management — більш вузький клас систем, ніж Project Management. Фокус — не на плануванні та діаграмах Ганта, а на потоці задач: створення, назначення, виконання, контроль. Типові сценарії заказної розробки: операційні команди з нестандартним воркфлоу, системи обробки заявок всередину компанії, трекери виробничих процесів, де задача привязана до фізичного об'єкту.

Доменна модель

Мінімально жизнеспособна модель задачі:

CREATE TABLE tasks (
  id            BIGSERIAL PRIMARY KEY,
  title         VARCHAR(500) NOT NULL,
  description   TEXT,
  status        VARCHAR(50)  NOT NULL DEFAULT 'todo',
  priority      SMALLINT     NOT NULL DEFAULT 2,  -- 1=low, 2=medium, 3=high, 4=critical
  assignee_id   BIGINT       REFERENCES users(id),
  reporter_id   BIGINT       NOT NULL REFERENCES users(id),
  team_id       BIGINT       REFERENCES teams(id),
  due_date      DATE,
  completed_at  TIMESTAMPTZ,
  parent_id     BIGINT       REFERENCES tasks(id),
  position      INTEGER,                          -- порядок в списке/колонке
  metadata      JSONB        DEFAULT '{}',        -- кастомні поля
  created_at    TIMESTAMPTZ  DEFAULT now()
);

Поле metadata (JSONB) вирішує проблему кастомних полів без зміни схеми. Різні типи задач мають різні набори полів: задача для маркетингу містить campaign_id, задача для HR — position_id. Індексуємо потрібні поля: CREATE INDEX ON tasks ((metadata->>'campaign_id')).

Воркфлоу та статусы

Ключова відмінність заказной системи від Trello — настраіваємий воркфлоу з правилами переходів. Не просто перетащити карточку в будь-яку колонку, а строга state machine з guards:

  • Задачу можна перевести в «На перевірці» тільки якщо є виконавець
  • «Закрито» вимагає заповненого поля «Результат»
  • Переход в «Відмінено» доступний тільки менеджеру або автору
// XState конфіг
const taskMachine = createMachine({
  id: 'task',
  initial: 'todo',
  states: {
    todo:        { on: { START: 'in_progress', CANCEL: 'cancelled' } },
    in_progress: { on: { REVIEW: 'in_review',  BLOCK: 'blocked' } },
    blocked:     { on: { UNBLOCK: 'in_progress' } },
    in_review:   { on: { APPROVE: 'done', REJECT: 'in_progress' } },
    done:        { on: { REOPEN: 'todo' } },
    cancelled:   { type: 'final' },
  },
});

Конфіг воркфлоу зберігається в базі (JSON), редагується через візуальний редактор.

Представлення: список, Kanban, таблиця

Список задач — основне представлення. Віртуалізований скролл (TanStack Virtual) при > 100 задач, групування по будь-якому полю, сортування мультиполем.

Kanban: колонки = статусы текущого воркфлоу. Drag-and-drop через @dnd-kit/sortable. При перетаскуванні між колонками — перевірка дозволеного переходу на клієнті.

Таблиця (spreadsheet-вид): кожна задача — строка, поля — колонки. Редактування inline. Масові операції: вибрати 20 задач, назначити виконавця, змінити дедлайн. Використовуємо TanStack Table.

Масові операції та автоматизація

Масові операції часто упускаються:

  • Переназначення групи задач на іншого виконавця
  • Масове закриття по фільтру
  • Копіювання/переміщення задач між проектами

Автоматизація (trigerred rules): «Якщо задача не взята в роботу через 2 години після назначення — нагадати виконавцю та сповістити менеджера». Через scheduled jobs, які опитують задачи по умовам та виконують дії. Правила автоматизації зберігаються в БД, редагуються через UI.

Сповіщення та SLA-контроль

Для операційних систем критичний контроль SLA: задача повинна бути взята в роботу не пізніше ніж через N годин від створення.

class CheckTaskSlaJob implements ShouldQueue
{
    public function handle(): void
    {
        $overdueTask = Task::query()
            ->where('status', 'todo')
            ->where('created_at', '<', now()->subHours($this->slaHours))
            ->whereNull('assignee_id')
            ->get();

        foreach ($overdueTask as $task) {
            Notification::send($task->team->managers, new SlaBreachedNotification($task));
        }
    }
}

Матриця еscalation: просрочка 1ч → email виконавцю, 4ч → email + Slack менеджеру, 8ч → сповіщення керівнику.

Сроки

  • Проектування воркфлоу та даних — 1–2 нед.
  • Бэкенд (задачи, права, API) — 3–4 нед.
  • Фронтенд (список + Kanban + таблиця) — 3–4 нед.
  • Сповіщення, SLA, автоматизація — 2 нед.
  • Тестування та запуск — 1 нед.

Разом: 10–13 тижнів. Перша робоча версія з базовим воркфлоу та двома представленнями — 6–7 тижнів.