Атестаційні завдання K2 ERP/IT компанія: відмінності між версіями

Первинна публікація
 
Немає опису редагування
 
Рядок 1: Рядок 1:
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/IT компанія}}


= Модуль обліку проектів, задач, клієнтів, контрактів і фінансів для IT-компанії =
'''Атестаційне завдання K2 ERP — IT компанія''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні модуля обліку клієнтів, договорів, проєктів, команд, задач, витраченого часу, бюджетів, рахунків, оплат і звітності для IT-компанії.
 
Модуль має забезпечувати повний цикл роботи IT-компанії: клієнт → договір → проєкт → команда → задачі → облік часу → етапи робіт → рахунок → оплата → фінансовий звіт → аналітика ефективності.
 
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
'''Коротко.''' Потрібно реалізувати модуль IT-компанії: клієнти, договори, проєкти, команди, задачі, Kanban, time tracking, бюджети, етапи, рахунки, оплати, кабінет співробітника, кабінет клієнта, сповіщення, звіти й AJAX-інтерактив.
</div>
 
__TOC__
 
== Назва завдання ==
 
'''Модуль обліку проєктів, задач, клієнтів, контрактів і фінансів для IT-компанії'''.
 
== Мета завдання ==
 
Мета завдання — створити в K2 ERP модуль для автоматизації управління IT-компанією.
 
Система повинна дозволяти:
 
* вести базу клієнтів;
* вести договори з клієнтами;
* вести типи проєктів;
* створювати проєкти;
* призначати менеджерів проєктів;
* формувати команди;
* створювати задачі;
* призначати виконавців;
* вести статуси задач;
* вести пріоритети задач;
* вести облік витраченого часу;
* планувати дедлайни;
* контролювати бюджет;
* рахувати вартість погодинної роботи;
* вести фіксовані бюджети;
* формувати рахунки;
* фіксувати часткові й повні оплати;
* контролювати борги клієнтів;
* формувати звіти по проєктах, задачах, часу, фінансах і співробітниках;
* підтримувати особистий кабінет співробітника;
* підтримувати особистий кабінет клієнта, якщо потрібно;
* надсилати сповіщення про дедлайни, задачі та рахунки.
 
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
'''Головний принцип.''' Керівник IT-компанії має бачити, які проєкти виконуються, хто над чим працює, скільки часу витрачено, що вже можна виставити клієнту в рахунок і які задачі ризикують не вкластися в дедлайн.
</div>


== Реальний бізнес-контекст ==
== Реальний бізнес-контекст ==
IT-компанія:


* виконує проекти для клієнтів:
IT-компанія виконує проєкти для клієнтів.
** веб-розробка;
 
** мобільні додатки;
Типові напрями роботи:
** ERP-системи;
 
** підтримка;
* веб-розробка;
* веде облік клієнтів, проектів і завдань;
* мобільні додатки;
* керує командами розробників і термінами виконання;
* ERP-системи;
* виставляє рахунки за роботу:
* CRM-системи;
** по фіксованій ціні;
* SaaS-платформи;
** погодинно;
* інтеграції з API;
* контролює оплату і фінанси.
* технічна підтримка;
* DevOps;
* UI/UX-дизайн;
* тестування;
* бізнес-аналітика;
* супровід існуючих систем.
 
Компанія може працювати за різними моделями оплати:
 
* фіксована ціна;
* погодинна оплата;
* абонентська підтримка;
* оплата за етапами;
* змішана модель;
* передоплата;
* післяплата.
 
== Основний бізнес-процес ==
 
Типовий процес роботи IT-компанії виглядає так:
 
# менеджер створює клієнта;
# укладається договір;
# створюється проєкт;
# визначається тип оплати;
# призначається менеджер проєкту;
# формується команда;
# створюються задачі;
# задачі призначаються виконавцям;
# співробітники фіксують витрачений час;
# менеджер контролює статуси, дедлайни й бюджет;
# система формує звіти по часу;
# створюється рахунок клієнту;
# клієнт оплачує повністю або частково;
# система фіксує оплату й борг;
# керівництво переглядає фінансову аналітику.
 
== Основні об’єкти модуля ==
 
{| class="wikitable" style="width:100%;"
! Об’єкт
! Призначення
|-
| Клієнти
| Замовники IT-послуг
|-
| Договори
| Умови співпраці з клієнтами
|-
| Проєкти
| Роботи, які виконує компанія
|-
| Команди
| Співробітники, залучені до проєктів
|-
| Задачі
| Конкретні одиниці роботи
|-
| Time tracking
| Облік фактично витраченого часу
|-
| Етапи проєкту
| Milestones або частини робіт
|-
| Бюджети
| Планові та фактичні витрати
|-
| Рахунки
| Документи на оплату
|-
| Оплати
| Фактичні платежі клієнтів
|-
| Сповіщення
| Повідомлення про задачі, дедлайни й рахунки
|-
| Звіти
| Аналітика по проєктах, фінансах, задачах і співробітниках
|}
 
== Довідник «Клієнти» ==
 
Клієнти — це компанії або фізичні особи, які замовляють IT-послуги.
 
== Поля клієнта ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Назва компанії або ПІБ
| Найменування клієнта
|-
| Тип клієнта
| Фізична особа, ФОП, юридична особа
|-
| Контактна особа
| Представник клієнта
|-
| Email
| Основна електронна адреса
|-
| Телефон
| Контактний номер
|-
| Країна / місто
| Локація клієнта
|-
| Валюта розрахунків
| UAH, USD, EUR або інша
|-
| Статус
| Активний, потенційний, архівний
|-
| Коментар
| Внутрішня примітка менеджера
|}


Необхідно:
== Довідник «Договори» ==


* організувати базу проектів і задач;
Договір визначає умови співпраці з клієнтом.
* вести облік витраченого часу;
* формувати рахунки і фінансові звіти;
* керувати статусами проектів і завдань.


== Основні завдання ==
== Поля договору ==


=== 1. Структура довідників ===
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Номер договору
| Унікальний номер
|-
| Клієнт
| З ким укладено договір
|-
| Дата договору
| Дата підписання
|-
| Дата початку
| Початок дії
|-
| Дата завершення
| Завершення дії, якщо є
|-
| Тип оплати
| Fixed Price, Time & Material, Retainer, Support
|-
| Валюта
| Валюта розрахунків
|-
| Ставка за годину
| Для погодинних проєктів
|-
| Фіксований бюджет
| Для fixed price
|-
| Статус
| Активний, завершений, призупинений, розірваний
|-
| Файл договору
| PDF або скан
|}


==== Довідник «Клієнти» ====
== Довідник «Типи проєктів» ==
Поля довідника:


* назва компанії або ПІБ;
Типи проєктів потрібні для класифікації робіт.
* контактна особа;
* Email;
* телефон;
* договір:
** номер;
** дата;
* валюта розрахунків:
** USD;
** EUR;
** грн.


==== Довідник «Типи проектів» ====
== Приклади типів проєктів ==
Типи проектів:


* веб-розробка;
* веб-розробка;
Рядок 50: Рядок 232:
* ERP-системи;
* ERP-системи;
* CRM-системи;
* CRM-системи;
* SaaS;
* технічна підтримка;
* технічна підтримка;
* DevOps;
* UI/UX-дизайн;
* тестування;
* інтеграції;
* консалтинг;
* інше.
* інше.


=== 2. База «Проекти» ===
== База «Проєкти» ==
 
Проєкт — це основна одиниця роботи IT-компанії.
 
== Колонки бази проєктів ==
 
{| class="wikitable" style="width:100%;"
! Колонка
! Опис
|-
| Назва проєкту
| Назва роботи або продукту
|-
| Клієнт
| Замовник
|-
| Тип проєкту
| Веб, мобільний, ERP, CRM тощо
|-
| Дата початку
| Коли стартує проєкт
|-
| Планова дата завершення
| Очікуваний дедлайн
|-
| Фактична дата завершення
| Коли завершено
|-
| Менеджер проєкту
| Відповідальний PM
|-
| Бюджет
| Фіксований або погодинний
|-
| Статус
| Новий, в процесі, завершений, скасований
|}
 
== Поля проєкту ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Назва проєкту
| Назва проєкту
|-
| Клієнт
| Замовник
|-
| Договір
| Договір, за яким виконується робота
|-
| Тип проєкту
| Категорія проєкту
|-
| Опис
| Короткий опис задач і цілей
|-
| Менеджер проєкту
| Відповідальний керівник
|-
| Дата початку
| Початок роботи
|-
| Планова дата завершення
| Плановий дедлайн
|-
| Фактична дата завершення
| Заповнюється після завершення
|-
| Модель оплати
| Fixed Price, Time & Material, Retainer
|-
| Бюджет
| Планова сума
|-
| Статус
| Поточний стан проєкту
|}
 
== Статуси проєкту ==
 
{| class="wikitable" style="width:100%;"
! Статус
! Значення
|-
| Новий
| Проєкт створено, робота ще не почалась
|-
| Планування
| Формуються задачі, команда і бюджет
|-
| В процесі
| Активна розробка
|-
| На паузі
| Роботу тимчасово зупинено
|-
| На прийманні
| Очікується перевірка клієнтом
|-
| Завершений
| Проєкт виконано
|-
| Скасований
| Проєкт припинено
|}
 
== Команда проєкту ==
 
Проєкт може мати кількох учасників.
 
== Ролі в команді ==
 
* Project Manager;
* Business Analyst;
* Team Lead;
* Backend Developer;
* Frontend Developer;
* Fullstack Developer;
* Mobile Developer;
* QA Engineer;
* UI/UX Designer;
* DevOps Engineer;
* Support Engineer;
* Content Manager;
* інші ролі.
 
== Поля учасника команди ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Проєкт
| До якого проєкту залучено
|-
| Співробітник
| Учасник команди
|-
| Роль
| Роль у проєкті
|-
| Ставка за годину
| Для розрахунку собівартості або рахунків
|-
| Дата початку
| Коли підключено до проєкту
|-
| Дата завершення
| Коли завершив роботу
|-
| Статус
| Активний або завершив участь
|}
 
== База «Задачі проєкту» ==
 
Задача — це конкретна одиниця роботи в межах проєкту.
 
== Колонки задач ==
 
{| class="wikitable" style="width:100%;"
! Колонка
! Опис
|-
| Проєкт
| До якого проєкту належить
|-
| Назва задачі
| Коротка назва
|-
| Виконавець
| Хто виконує
|-
| Пріоритет
| Низький, середній, високий, критичний
|-
| Оцінка часу
| Планова оцінка в годинах
|-
| Фактичний час
| Скільки витрачено
|-
| Дедлайн
| Коли задача має бути завершена
|-
| Статус
| Нове, в роботі, на перевірці, завершено
|}
 
== Поля задачі ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Проєкт
| Проєкт задачі
|-
| Етап
| Milestone або етап, якщо є
|-
| Назва задачі
| Назва
|-
| Опис
| Детальний опис роботи
|-
| Тип задачі
| Feature, Bug, Task, Improvement, Support
|-
| Пріоритет
| Низький, середній, високий, критичний
|-
| Постановник
| Хто створив
|-
| Виконавець
| Хто відповідає
|-
| Дата початку
| Плановий старт
|-
| Дедлайн
| Планове завершення
|-
| Оцінка часу
| Планові години
|-
| Фактичний час
| Сума time tracking записів
|-
| Статус
| Поточний стан
|}
 
== Типи задач ==
 
* Feature;
* Bug;
* Task;
* Improvement;
* Support;
* Research;
* Design;
* Testing;
* DevOps;
* Documentation.
 
== Статуси задач ==
 
{| class="wikitable" style="width:100%;"
! Статус
! Значення
|-
| Нове
| Задачу створено
|-
| Заплановано
| Задача взята в план
|-
| В роботі
| Виконавець працює
|-
| Заблоковано
| Є блокер
|-
| На перевірці
| Очікує review або QA
|-
| Повернуто
| Потрібне доопрацювання
|-
| Завершено
| Роботу виконано
|-
| Скасовано
| Задача більше не актуальна
|}
 
== Kanban-дошка, опціонально ==
 
Для зручності можна реалізувати Kanban-дошку.
 
== Колонки Kanban ==
 
* Нове;
* Заплановано;
* В роботі;
* На перевірці;
* Завершено;
* Скасовано.
 
Функціонал:
 
* Drag & Drop задач між статусами;
* AJAX-оновлення статусу;
* фільтр по проєкту;
* фільтр по виконавцю;
* фільтр по пріоритету.
 
== Облік часу — Time tracking ==
 
Time tracking потрібен для контролю фактичних витрат часу і формування рахунків за погодинною моделлю.
 
== Поля запису часу ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Співробітник
| Хто працював
|-
| Проєкт
| До якого проєкту належить час
|-
| Задача
| До якої задачі належить час
|-
| Дата
| Коли виконувалась робота
|-
| Час початку
| Початок роботи
|-
| Час завершення
| Кінець роботи
|-
| Кількість годин
| Автоматично або вручну
|-
| Опис роботи
| Що було зроблено
|-
| Статус
| Чернетка, підтверджено, відхилено
|-
| Затвердив
| Менеджер, який підтвердив час
|}
 
== Варіанти фіксації часу ==
 
* ручне введення годин;
* таймер старт / стоп;
* імпорт із зовнішньої системи, опціонально;
* підтвердження менеджером;
* заборона редагування після затвердження.
 
== Формула погодинного рахунку ==
 
<pre>
Сума до оплати = Підтверджені години × Погодинна ставка
</pre>
 
== Етапи проєкту ==
 
Етапи потрібні для планування робіт і виставлення рахунків по частинах.
 
== Поля етапу ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Проєкт
| До якого проєкту належить
|-
| Назва етапу
| Наприклад: MVP, Дизайн, Розробка, Тестування
|-
| Планова дата початку
| Коли має стартувати
|-
| Планова дата завершення
| Коли має завершитись
|-
| Бюджет етапу
| Сума або години
|-
| Статус
| Заплановано, в роботі, завершено, скасовано
|}
 
== Фінанси ==
 
Фінансовий блок має підтримувати різні моделі розрахунків.
 
== Моделі оплати ==
 
{| class="wikitable" style="width:100%;"
! Модель
! Опис
|-
| Fixed Price
| Фіксована ціна за проєкт або етап
|-
| Time & Material
| Оплата за фактично витрачений час
|-
| Retainer
| Щомісячна абонентська плата
|-
| Support
| Оплата технічної підтримки
|-
| Mixed
| Комбінована модель
|}
 
== Рахунки ==
 
Рахунки можуть формуватися:
 
* за весь проєкт;
* за етап;
* за місяць;
* за підтверджені години;
* за абонентську підтримку;
* за додаткові роботи.
 
== Поля рахунку ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Номер рахунку
| Унікальний номер
|-
| Клієнт
| Кому виставлено
|-
| Проєкт
| За який проєкт
|-
| Етап
| Якщо рахунок за етап
|-
| Період
| Якщо рахунок за місяць або період
|-
| Модель оплати
| Fixed, Hourly, Retainer
|-
| Сума
| Сума до оплати
|-
| Валюта
| UAH, USD, EUR
|-
| Оплачено
| Скільки вже сплачено
|-
| Борг
| Залишок
|-
| Статус
| Очікує оплату, частково оплачено, оплачено, прострочено, скасовано
|}
 
== Оплати ==


==== Колонки бази ====
Система має підтримувати повну і часткову оплату.


* назва проекту;
== Поля оплати ==
* клієнт;
* тип проекту;
* дата початку;
* дата завершення:
** планова;
** фактична;
* відповідальний менеджер проекту;
* бюджет:
** фіксований;
** погодинний;
* статус проекту:
** новий;
** в процесі;
** завершений;
** скасований.


==== Функціонал ====
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Клієнт
| Хто оплатив
|-
| Рахунок
| За який рахунок оплата
|-
| Дата оплати
| Коли отримано кошти
|-
| Сума
| Сума платежу
|-
| Валюта
| Валюта оплати
|-
| Спосіб оплати
| Банківський переказ, карта, PayPal, інше
|-
| Статус
| Успішно, очікує, помилка, повернення
|-
| Коментар
| Примітка бухгалтера
|}


* призначення команди на проект;
== Бюджет і контроль перевитрат ==
* ведення історії змін статусу проекту.


=== 3. База «Завдання проекту» ===
Система має показувати план і факт.


==== Колонки бази ====
== Контроль бюджету включає ==


* проект;
* плановий бюджет проєкту;
* назва задачі;
* виконавець;
* дата початку;
* дата завершення;
* оцінка часу — години;
* фактично витрачений час;
* фактично витрачений час;
* статус:
* фактичну собівартість;
** нове;
* виставлено клієнту;
** в роботі;
* оплачено клієнтом;
** на перевірці;
* борг;
** завершено.
* маржинальність, опціонально.
 
== Сповіщення ==
 
Система має надсилати або показувати нагадування.


==== Функціонал ====
== Події для сповіщень ==


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


=== 4. Облік часу — Time tracking ===
== Особистий кабінет співробітника ==
Функціонал:
 
Співробітник у кабінеті має бачити:
 
* свої задачі;
* задачі на сьогодні;
* задачі з простроченим дедлайном;
* таймер обліку часу;
* історію своїх time tracking записів;
* коментарі до задач;
* статуси задач;
* сповіщення.
 
== Особистий кабінет клієнта ==
 
Кабінет клієнта є опціональним, але бажаним.
 
Клієнт у кабінеті може бачити:
 
* список своїх проєктів;
* загальний статус проєкту;
* етапи робіт;
* задачі, відкриті для клієнта;
* рахунки;
* оплати;
* документи;
* можливість залишити фідбек;
* можливість завантажити PDF-рахунок або акт.
 
== Документи ==
 
Система має формувати PDF-документи.
 
== Приклади документів ==
 
* рахунок на оплату;
* акт виконаних робіт;
* звіт по витраченому часу;
* звіт по проєкту;
* фінансовий звіт;
* комерційна пропозиція, опціонально;
* звіт для клієнта за місяць.
 
== Звіти ==
 
== Звіт «Проєкти за період» ==
 
У звіті потрібно відображати:
 
* проєкт;
* клієнта;
* менеджера;
* статус;
* плановий бюджет;
* фактичний час;
* виставлено рахунків;
* оплачено;
* борг.
 
== Звіт «Задачі по проєктах» ==


* відмітка про початок і кінець роботи над задачею;
У звіті потрібно відображати:
* автоматичний підрахунок фактичного часу роботи;
* можливість ручного коригування з дозволу менеджера.


=== 5. Фінанси ===
* проєкт;
* кількість задач;
* відкриті задачі;
* завершені задачі;
* прострочені задачі;
* задачі по виконавцях.


==== Розрахунок вартості проекту ====
== Звіт «Time tracking» ==
Варіанти розрахунку:


* фіксована ціна;
У звіті потрібно відображати:
* погодинна оплата:
** ставка × витрачений час.


==== Генерація рахунків на оплату ====
* співробітника;
Варіанти виставлення рахунків:
* проєкт;
* задачу;
* дату;
* кількість годин;
* статус підтвердження;
* суму для виставлення клієнту, якщо застосовується.


* по етапах;
== Звіт «Фінанси по клієнтах» ==
* по завершенню проекту;
* щомісячна передплата — для підтримки.


==== Статуси оплат ====
У звіті потрібно відображати:


* клієнта;
* кількість проєктів;
* виставлено рахунків;
* оплачено;
* оплачено;
* частково оплачено;
* борг;
* очікує оплату.
* валюта;
* остання дата оплати.
 
== Звіт «Ефективність співробітників» ==
 
У звіті потрібно відображати:
 
* співробітника;
* кількість задач;
* завершені задачі;
* фактичні години;
* прострочені задачі;
* відсоток виконання вчасно.
 
== Звіт «Прибутковість проєктів» ==
 
Опціонально у звіті потрібно відображати:
 
* бюджет проєкту;
* дохід;
* собівартість;
* витрати часу;
* маржу;
* відхилення від плану.
 
== AJAX-інтерактив ==
 
Інтерфейс має працювати швидко й без перезавантаження сторінок.
 
Через AJAX мають працювати:
 
* пошук клієнтів;
* створення проєкту;
* створення задачі;
* зміна статусу задачі;
* призначення виконавця;
* запуск і зупинка таймера;
* додавання time tracking запису;
* підтвердження часу менеджером;
* фільтрація задач;
* оновлення Kanban-дошки;
* формування рахунку;
* фіксація оплати;
* фільтрація звітів;
* оновлення кабінету співробітника;
* оновлення кабінету клієнта.
 
== Логування змін ==
 
Модуль повинен фіксувати ключові дії.


=== 6. Додаткові функції ===
Журнал змін має зберігати:


* робота через AJAX для оновлення задач, часу і проектів у реальному часі;
* хто створив клієнта;
* календар дедлайнів задач і проектів через FullCalendar;
* хто створив договір;
* особистий кабінет співробітника:
* хто створив проєкт;
** список призначених задач;
* хто змінив статус проєкту;
** фіксація робочого часу;
* хто додав учасника команди;
** прогрес виконання задач;
* хто створив задачу;
* особистий кабінет клієнта — опціонально:
* хто змінив виконавця;
** стан виконання проекту;
* хто змінив статус задачі;
** завантаження рахунків;
* хто додав time tracking запис;
** надсилання фідбеку;
* хто змінив або затвердив час;
* генерація:
* хто сформував рахунок;
** звітів по проектам;
* хто зафіксував оплату;
** звітів по витраченому часу;
* хто змінив бюджет;
** фінансових звітів;
* хто експортував звіт;
* сповіщення:
* дату й час дії;
** про наближення дедлайнів;
* старе та нове значення, якщо це можливо.
** про нові задачі;
 
** про рахунки на оплату.
== Права доступу ==
 
Модуль має підтримувати рольову модель.
 
{| class="wikitable" style="width:100%;"
! Роль
! Можливості
|-
| Співробітник
| Бачить свої задачі, фіксує час, коментує задачі
|-
| Project Manager
| Керує проєктами, командами, задачами, дедлайнами і підтверджує час
|-
| Team Lead
| Керує задачами команди, переглядає time tracking учасників
|-
| Бухгалтер
| Формує рахунки, фіксує оплати, бачить фінансові звіти
|-
| Клієнт
| Переглядає свої проєкти, рахунки, документи і статуси, якщо кабінет реалізовано
|-
| Керівник
| Бачить усі проєкти, фінанси, завантаженість і ефективність
|-
| Адміністратор системи
| Налаштовує довідники, права, шаблони документів і службові параметри
|}


== Технічні вимоги ==
== Технічні вимоги ==
{| class="wikitable"
 
!Параметр
{| class="wikitable" style="width:100%;"
!Опис
! Параметр
! Опис
|-
|-
|Бекенд
| Бекенд
|K2 Cloud ERP на Python або PHP
| K2 Cloud ERP на Python або PHP
|-
|-
|БД
| База даних
|PostgreSQL або MySQL
| PostgreSQL або MySQL
|-
|-
|Фронтенд
| Фронтенд
|HTML5, JavaScript, AJAX, Fetch API або Axios
| HTML5, JavaScript
|-
|-
|UI-компоненти
| AJAX
|DataTables для проектів, задач і часу; Select2 для пошуку проектів і клієнтів
| Fetch API або Axios
|-
|-
|Друк
| UI-компоненти
|Генерація рахунків і звітів у PDF
| DataTables для проєктів, задач, часу і фінансів; Select2 для пошуку клієнтів, проєктів і співробітників
|-
| Календар
| FullCalendar для дедлайнів задач і проєктів
|-
| Kanban
| Drag & Drop дошка задач, опціонально
|-
| Друк
| PDF-рахунки, акти, звіти
|-
| Експорт
| Excel або PDF для звітів
|-
| Сповіщення
| Email або внутрішні повідомлення
|}
|}


== Критерії оцінки ==
== Рекомендовані сутності бази даних ==
{| class="wikitable"
 
!Критерій
Для реалізації задачі доцільно передбачити такі сутності:
!Бали
 
* клієнти;
* договори;
* типи проєктів;
* проєкти;
* команди проєктів;
* співробітники;
* ролі в команді;
* етапи проєктів;
* задачі;
* статуси задач;
* пріоритети задач;
* time tracking записи;
* рахунки;
* позиції рахунків;
* оплати;
* бюджети;
* сповіщення;
* документи;
* журнал змін;
* права доступу;
* звіти.
 
== Практичне завдання ==
 
У межах атестації потрібно продемонструвати робочий сценарій.
 
Мінімальний сценарій:
 
# створити клієнта;
# створити договір;
# створити тип проєкту;
# створити проєкт;
# призначити менеджера проєкту;
# додати команду проєкту;
# створити етап проєкту;
# створити кілька задач;
# призначити виконавців;
# змінити статус задачі на '''«В роботі»''';
# додати time tracking запис;
# підтвердити витрачений час менеджером;
# змінити статус задачі на '''«Завершено»''';
# сформувати звіт по витраченому часу;
# сформувати рахунок клієнту;
# зафіксувати часткову оплату;
# перевірити борг;
# зафіксувати повну оплату;
# сформувати акт або PDF-рахунок;
# сформувати фінансовий звіт;
# перевірити кабінет співробітника;
# перевірити журнал змін.
 
== Критерії оцінювання ==
 
{| class="wikitable" style="width:100%;"
! Критерій
! Бали
! Що перевіряється
|-
| Реалізація бази проєктів, клієнтів і задач
| 20
| Клієнти, договори, проєкти, команди, задачі, статуси, пріоритети
|-
| Управління часом і завданнями
| 20
| Time tracking, таймери, підтвердження часу, дедлайни, Kanban, контроль виконання
|-
| Формування рахунків і фінансовий облік
| 20
| Fixed Price, Hourly, Retainer, рахунки, часткові оплати, борги, фінансові звіти
|-
| Інтерактивність через AJAX і нагадування
| 20
| AJAX-оновлення задач, часу, статусів, рахунків, сповіщення про дедлайни й оплату
|-
|-
|Реалізація бази проектів, клієнтів і задач
| Зручність користування і мобільна адаптивність
|20
| 20
| Кабінет співробітника, кабінет клієнта, фільтри, календар, зрозумілий інтерфейс
|-
|-
|Управління часом і завданнями
! Разом
|20
! 100
! Максимальна оцінка
|}
 
== Шкала оцінювання ==
 
{| class="wikitable" style="width:100%;"
! Бали
! Рівень
! Опис
|-
|-
|Формування рахунків і фінансовий облік
| 90–100
|20
| Відмінно
| Модуль повністю працює: клієнти, договори, проєкти, задачі, time tracking, рахунки, оплати, кабінети й звіти реалізовані коректно
|-
|-
|Інтерактивність через AJAX і нагадування
| 75–89
|20
| Добре
| Основна логіка працює, є незначні недоліки, які не руйнують процес управління IT-компанією
|-
|-
|Зручність користування і мобільна адаптивність
| 60–74
|20
| Зараховано
| Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання
|-
| 0–59
| Не зараховано
| Відсутня критична логіка: клієнти, проєкти, задачі, час, рахунки, оплати або звіти
|}
|}
== Критичні помилки ==
Критичними помилками вважаються ситуації, коли:
* неможливо створити клієнта;
* неможливо створити проєкт;
* проєкт не прив’язується до клієнта;
* неможливо створити задачу;
* задача не прив’язується до проєкту;
* задача не має статусу;
* неможливо призначити виконавця;
* неможливо внести time tracking запис;
* фактичний час не підсумовується по задачі;
* рахунок не формується;
* рахунок не прив’язується до клієнта або проєкту;
* часткова оплата не змінює борг;
* повна оплата не змінює статус рахунку;
* клієнт бачить чужі проєкти або рахунки;
* звіти не відповідають фактичним задачам, часу, рахункам і оплатам;
* зміни задач, часу, рахунків і оплат не логуються.
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
'''Умова складання.''' Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл IT-компанії: клієнт → договір → проєкт → команда → задача → облік часу → рахунок → оплата → звіт.
</div>
== Очікуваний результат ==
У результаті виконання атестаційного завдання має бути створений модуль IT-компанії в K2 ERP.
Модуль має підтримувати клієнтів, договори, типи проєктів, проєкти, команди, задачі, статуси, пріоритети, time tracking, етапи, бюджети, рахунки, оплати, борги, документи, кабінет співробітника, кабінет клієнта, сповіщення, звіти, AJAX-інтерактив, журнал змін і рольовий доступ.


== Примітка ==
== Примітка ==
ERP для IT-компанії — must-have для:


* прозорого управління проектами;
ERP для IT-компанії є важливим інструментом для прозорого управління проєктами, контролю дедлайнів, обліку часу, виставлення рахунків і фінансової стабільності.
* обліку ресурсів;
 
* вчасного виставлення рахунків клієнтам.
Якісний облік задач, часу і оплат дозволяє керівництву бачити реальну завантаженість команди, прибутковість проєктів і ризики ще до того, як вони стануть критичними.
 
== Коротко ==
 
{| class="wikitable" style="width:100%;"
! Питання
! Відповідь
|-
| Що потрібно створити?
| Модуль управління IT-компанією
|-
| Які довідники потрібні?
| Клієнти, договори, типи проєктів, співробітники, ролі, статуси задач
|-
| Який головний процес?
| Проєкт → задачі → time tracking → рахунок → оплата
|-
| Що потрібно контролювати?
| Дедлайни, задачі, час, бюджет, рахунки, борги, завантаженість команди
|-
| Які документи потрібні?
| Рахунки, акти, звіти по часу, звіти по проєктах
|-
| Які звіти потрібні?
| Проєкти, задачі, time tracking, фінанси, ефективність співробітників, прибутковість
|-
| Що є критичною вимогою?
| Фактичний час має підсумовуватися по задачах і проєктах та використовуватися для рахунків
|-
| Що бажано додати?
| Kanban, таймер, кабінет клієнта, кабінет співробітника, календар дедлайнів, сповіщення
|}
 
== Див. також ==


Це підвищує:
* [[K2 Cloud ERP|K2 ERP]]
* [[K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[Управління задачами]]
* [[Багтрекер]]
* [[CRM]]
* [[Каса]]
* [[Рахунок на оплату]]
* [[Договір]]
* [[Особистий кабінет]]
* [[Time tracking]]
* [[Kanban]]
* [[AJAX]]


* дисципліну команди;
[[Категорія:K2 ERP]]
* якість виконання робіт;
[[Категорія:Атестаційні завдання K2]]
* фінансову стабільність компанії.
[[Категорія:IT компанія]]
[[Категорія:Управління проєктами]]
[[Категорія:Time tracking]]
[[Категорія:CRM]]
[[Категорія:Фінансовий облік]]
[[Категорія:Корпоративна Wiki]]