Атестаційні завдання K2 ERP/Пошук на роботу морякам: відмінності між версіями

Створена сторінка: = Модуль пошуку, обліку і працевлаштування моряків (Crew Management System) = == Реальний бізнес-контекст == Агентство із працевлаштування моряків працює над пошуком кандидатів для різних судновласників. Потрібно: * формувати базу резюме моряків; * створювати ва...
 
Немає опису редагування
 
Рядок 1: Рядок 1:
= Модуль пошуку, обліку і працевлаштування моряків (Crew Management System) =
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Пошук на роботу морякам}}
 
'''Атестаційне завдання K2 ERP — Пошук на роботу морякам''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні модуля пошуку, обліку, підбору та працевлаштування моряків.
 
Модуль має працювати як [[Crew Management System]]: вести базу кандидатів, сертифікати, документи, судна, вакансії, вимоги судновласників, автоматичний підбір моряків, пропозиції працевлаштування, контракти, терміни контрактів і планування замін екіпажу.
 
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
'''Коротко.''' Потрібно реалізувати модуль для крюїнгового агентства: база моряків, анкети, документи, сертифікати, судна, вакансії, автоматичний пошук кандидатів, статуси працевлаштування, контракти, нагадування про закінчення сертифікатів і планування замін екіпажу.
</div>
 
__TOC__
 
== Назва завдання ==
 
'''Модуль пошуку, обліку і працевлаштування моряків: Crew Management System'''.
 
== Мета завдання ==
 
Мета завдання — створити в K2 ERP модуль для автоматизації роботи крюїнгового агентства або судноплавної компанії.
 
Система повинна дозволяти:
 
* вести довідник посад моряків;
* вести довідник суден;
* вести судновласників;
* створювати анкету моряка;
* зберігати досвід роботи моряка;
* вести сертифікати й документи;
* контролювати строки дії сертифікатів;
* створювати вакансії на судна;
* задавати вимоги до кандидата;
* автоматично підбирати моряків під вакансію;
* створювати пропозиції працевлаштування;
* фіксувати статус кандидата;
* формувати контракт;
* контролювати строки контрактів;
* планувати заміни екіпажу;
* надсилати сповіщення;
* експортувати базу моряків, вакансії та звіти.
 
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
'''Головний принцип.''' Crew Management System — це не просто база резюме. Це система, яка пов’язує моряка, його документи, досвід, доступність, вакансію, судно, контракт і майбутню заміну екіпажу.
</div>


== Реальний бізнес-контекст ==
== Реальний бізнес-контекст ==


Агентство із працевлаштування моряків працює над пошуком кандидатів для різних судновласників.
Крюїнгове агентство або судноплавна компанія шукає моряків для різних судновласників і суден. Для кожної вакансії важливі не лише посада і зарплата, а й тип судна, досвід кандидата, сертифікація, рівень англійської, дата доступності та чинність документів.
 
У роботі агентства потрібно контролювати:
 
* хто з моряків доступний для роботи;
* які сертифікати має кандидат;
* коли закінчуються паспорти, медичні довідки та сертифікати;
* на яких типах суден кандидат працював раніше;
* які вакансії відкриті;
* які кандидати підходять під вимоги судновласника;
* хто прийняв або відхилив пропозицію;
* коли починається і закінчується контракт;
* кого потрібно готувати на заміну екіпажу.
 
Без автоматизованої системи ці дані часто ведуться в таблицях, пошті та месенджерах, що призводить до втрати кандидатів, прострочених документів і затримок у закритті вакансій.
 
== Основний бізнес-процес ==
 
Типовий процес роботи крюїнгового агентства виглядає так:
 
# у систему вносяться посади моряків;
# створюються судна та судновласники;
# у базу додається анкета моряка;
# до анкети додаються документи, сертифікати й досвід;
# система контролює строки дії документів;
# менеджер створює вакансію на судно;
# у вакансії задаються вимоги до кандидата;
# система підбирає моряків, які відповідають вимогам;
# менеджер створює пропозицію кандидату;
# кандидат приймає або відхиляє пропозицію;
# формується контракт;
# кандидат переходить у статус працевлаштованого;
# система контролює закінчення контракту;
# менеджер планує заміну екіпажу.
 
== Основні об’єкти модуля ==
 
{| class="wikitable" style="width:100%;"
! Об’єкт
! Призначення
|-
| Позиції моряків
| Посади: капітан, механік, електромеханік, кок, матрос тощо
|-
| Судна
| Судна, на які відкриваються вакансії
|-
| Судновласники
| Компанії, для яких підбирається екіпаж
|-
| Кандидати / моряки
| Анкети моряків із контактами, досвідом і документами
|-
| Сертифікати
| STCW, IMO, медичні та інші документи моряка
|-
| Досвід роботи
| Контракти, судна, посади, типи суден і тривалість роботи
|-
| Вакансії
| Відкриті позиції на судна
|-
| Підбір кандидатів
| Пошук моряків, які відповідають вимогам вакансії
|-
| Пропозиції працевлаштування
| Запрошення кандидата на конкретну вакансію
|-
| Контракти
| Документи працевлаштування моряка
|-
| Заміни екіпажу
| Планування заміни моряків після завершення контрактів
|-
| Нотифікації
| Сповіщення про сертифікати, контракти, вакансії та зміни статусів
|-
| Звіти
| Аналітика по кандидатах, вакансіях, контрактах і закриттю позицій
|}
 
== Довідник «Позиції моряків» ==
 
Довідник позицій моряків містить посади, на які можуть відкриватися вакансії.
 
== Приклади посад ==
 
* капітан;
* старший помічник капітана;
* другий помічник капітана;
* старший механік;
* другий механік;
* електромеханік;
* боцман;
* матрос;
* моторист;
* кок;
* стюард.
 
== Поля позиції моряка ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Назва посади
| Наприклад: Captain, Chief Engineer, Electrician, Cook, AB
|-
| Категорія
| Deck Department, Engine Department, Hotel Department або інша
|-
| Рівень сертифікації
| Вимоги STCW або інші стандарти
|-
| Мінімальний досвід
| Опціонально, мінімальна кількість контрактів або місяців
|-
| Активність
| Чи використовується посада в поточних вакансіях
|}
 
== Категорії посад ==
 
{| class="wikitable" style="width:100%;"
! Категорія
! Приклади посад
|-
| Deck Department
| Captain, Chief Officer, Second Officer, AB, OS
|-
| Engine Department
| Chief Engineer, Second Engineer, Electrician, Motorman
|-
| Hotel Department
| Cook, Steward, Housekeeping, Service Staff
|}
 
== Довідник «Судна» ==
 
Довідник суден містить судна, для яких відкриваються вакансії або ведеться екіпаж.
 
== Поля судна ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Назва судна
| Назва судна
|-
| Тип судна
| Bulk Carrier, Container, Tanker, Cruise Ship або інший тип
|-
| Судновласник
| Компанія-власник або оператор судна
|-
| Прапор судна
| Країна прапора
|-
| DWT
| Дедвейт судна
|-
| GRT
| Валова місткість
|-
| Тип двигуна
| Основний тип двигуна
|-
| Рік побудови
| Опціонально
|-
| Статус
| Активне, архівне, не використовується
|}
 
== Типи суден ==
 
{| class="wikitable" style="width:100%;"
! Тип судна
! Опис
|-
| Bulk Carrier
| Балкер для перевезення навалочних вантажів
|-
| Container
| Контейнеровоз
|-
| Tanker
| Танкер
|-
| Cruise Ship
| Круїзне судно
|-
| General Cargo
| Судно для генеральних вантажів
|-
| Offshore Vessel
| Офшорне судно
|}
 
== Довідник «Судновласники» ==
 
Довідник судновласників містить компанії, які замовляють підбір екіпажу.
 
== Поля судновласника ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Назва компанії
| Назва судновласника або оператора
|-
| Країна
| Країна реєстрації або роботи
|-
| Контактна особа
| Представник судновласника
|-
| Email
| Контактна пошта
|-
| Телефон
| Контактний номер
|-
| Умови співпраці
| Коментар щодо правил підбору екіпажу
|-
| Статус
| Активний або неактивний
|}
 
== База «Кандидати» ==
 
База кандидатів містить анкети моряків.
 
Картка моряка має бути центральним місцем, де зібрані особисті дані, контакти, досвід, сертифікати, документи, доступність, історія вакансій і контрактів.
 
== Колонки бази кандидатів ==
 
{| class="wikitable" style="width:100%;"
! Колонка
! Опис
|-
| ПІБ
| Прізвище, ім’я та по батькові моряка
|-
| Дата народження
| Дата народження кандидата
|-
| Позиція
| Основна посада моряка
|-
| Досвід
| Кількість контрактів або стаж у місяцях
|-
| Сертифікати
| Наявність IMO, STCW та інших документів
|-
| Рівень англійської
| Оцінка володіння англійською мовою
|-
| Дата доступності
| Коли кандидат може вийти в рейс
|-
| Місце проживання
| Країна, місто
|-
| Телефон
| Контактний номер
|-
| Email
| Електронна адреса
|-
| Статус
| Доступний, запропоновано, на контракті, недоступний, архів
|}
 
== Поля анкети моряка ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| ПІБ
| Повне ім’я моряка
|-
| Дата народження
| Для перевірки віку та документів
|-
| Громадянство
| Країна громадянства
|-
| Місце проживання
| Країна, місто
|-
| Основна позиція
| Посада, на яку претендує кандидат
|-
| Додаткові позиції
| Інші посади, які може виконувати кандидат
|-
| Рівень англійської
| Beginner, Intermediate, Upper-Intermediate, Advanced або інша шкала
|-
| Дата доступності
| Коли кандидат готовий до роботи
|-
| Очікувана зарплата
| Бажаний рівень оплати
|-
| Телефон
| Контактний номер
|-
| Email
| Електронна адреса
|-
| Коментар менеджера
| Внутрішні примітки
|}
 
== Статуси кандидата ==
 
{| class="wikitable" style="width:100%;"
! Статус
! Значення
|-
| Новий
| Анкету створено, але кандидат ще не опрацьований
|-
| Доступний
| Кандидат готовий до пропозицій
|-
| Запропоновано
| Кандидату запропоновано вакансію
|-
| Прийняв пропозицію
| Кандидат погодився на вакансію
|-
| Відмовився
| Кандидат відхилив пропозицію
|-
| На контракті
| Кандидат працює на судні
|-
| Недоступний
| Кандидат тимчасово не шукає роботу
|-
| Архів
| Анкета не використовується в активному підборі
|}
 
== Документи і сертифікати моряка ==
 
Модуль має дозволяти зберігати копії документів і сертифікатів.
 
== Приклади документів ==
 
* паспорт;
* закордонний паспорт;
* seaman’s book;
* STCW-сертифікати;
* медична довідка;
* сертифікати безпеки;
* рекомендації;
* резюме;
* дипломи;
* візи.


Потрібно:
== Поля документа / сертифіката ==


* формувати базу резюме моряків;
{| class="wikitable" style="width:100%;"
* створювати вакансії на судна;
! Поле
* проводити пошук відповідних кандидатів за вимогами;
! Опис
* обліковувати статуси працевлаштування;
|-
* контролювати терміни контрактів і планувати заміни екіпажу.
| Тип документа
| Паспорт, STCW, медична довідка, рекомендація тощо
|-
| Номер документа
| Номер сертифіката або документа
|-
| Дата видачі
| Коли документ виданий
|-
| Дата завершення
| До якої дати документ чинний
|-
| Файл
| Завантажена копія документа
|-
| Статус
| Чинний, скоро закінчується, прострочений
|-
| Коментар
| Додаткова інформація
|}
 
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
'''Критично.''' Кандидат із простроченим обов’язковим сертифікатом не повинен автоматично потрапляти в список повністю придатних кандидатів для вакансії.
</div>
 
== Контроль строків сертифікатів ==
 
Система повинна автоматично контролювати закінчення строку дії документів.
 
Необхідно показувати:
 
* чинні документи;
* документи, що скоро закінчуються;
* прострочені документи;
* відсутні обов’язкові документи.
 
== Нагадування по сертифікатах ==
 
Нотифікації потрібно надсилати:
 
* за 90 днів до завершення;
* за 30 днів до завершення;
* за 7 днів до завершення;
* у день завершення;
* після прострочення.
 
Точні строки можна винести в налаштування.
 
== Досвід роботи моряка ==
 
Картка моряка повинна містити історію контрактів і досвіду.
 
== Поля досвіду ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Судно
| Назва судна, на якому працював кандидат
|-
| Тип судна
| Bulk Carrier, Container, Tanker тощо
|-
| Позиція
| Посада на судні
|-
| Дата початку
| Початок контракту
|-
| Дата завершення
| Кінець контракту
|-
| Тривалість
| Розраховується в місяцях
|-
| Судновласник
| Компанія або оператор
|-
| Рекомендація
| Файл або коментар
|}
 
== Журнал «Вакансії» ==
 
Журнал вакансій містить відкриті позиції на судна.
 
== Колонки журналу вакансій ==
 
{| class="wikitable" style="width:100%;"
! Колонка
! Опис
|-
| Номер вакансії
| Унікальний номер вакансії
|-
| Судно
| Судно, на яке потрібен кандидат
|-
| Судновласник
| Компанія, для якої ведеться підбір
|-
| Позиція
| Посада, на яку шукається моряк
|-
| Зарплата, USD
| Рівень оплати
|-
| Початок контракту
| Дата, коли кандидат має вийти на контракт
|-
| Тривалість контракту
| Кількість місяців
|-
| Статус вакансії
| Відкрита, підбір, заповнена, скасована
|-
| Менеджер
| Відповідальний рекрутер
|}
 
== Поля вакансії ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Номер вакансії
| Генерується автоматично або вводиться вручну
|-
| Судно
| Вибір із довідника суден
|-
| Позиція
| Яка посада потрібна
|-
| Зарплата
| Сума та валюта оплати
|-
| Початок контракту
| Дата старту
|-
| Тривалість контракту
| Тривалість у місяцях
|-
| Тип судна
| Вимога до досвіду кандидата
|-
| Мінімальний стаж
| Мінімальна кількість місяців або контрактів
|-
| Обов’язкові сертифікати
| Перелік документів, які має мати кандидат
|-
| Мінімальний рівень англійської
| Вимога до мови
|-
| Коментар судновласника
| Додаткові умови
|}


== Основні завдання ==
== Статуси вакансії ==


=== 1. Структура довідників ===
{| class="wikitable" style="width:100%;"
! Статус
! Значення
|-
| Відкрита
| Вакансія створена і доступна для підбору
|-
| Підбір
| Менеджер розглядає кандидатів
|-
| Кандидат запропонований
| Один або кілька кандидатів відправлені на розгляд
|-
| Заповнена
| Кандидат прийнятий і контракт оформлено
|-
| Скасована
| Вакансія більше не актуальна
|}
 
== Підбір моряків ==


==== Довідник «Позиції моряків» ====
Підбір моряків — ключова функція модуля.


Поля довідника:
Система повинна знаходити кандидатів, які відповідають параметрам вакансії.


* посада, наприклад:
== Критерії підбору ==
** капітан;
** старший механік;
** електромеханік;
** кок;
** матрос;
* категорія:
** Deck Department;
** Engine Department;
** Hotel Department;
* рівень сертифікації:
** STCW стандарти.


==== Довідник «Судна» ====
Автоматизований пошук має враховувати:


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


* назва судна;
== Результати підбору ==
* тип судна:
** Bulk Carrier;
** Container;
** Tanker;
** Cruise Ship;
* власник судна;
* прапор судна;
* технічні характеристики:
** DWT;
** GRT;
** тип двигуна.


=== 2. База «Кандидати» ===
У результаті пошуку система повинна показувати список кандидатів.


==== Колонки бази ====
У списку потрібно бачити:


* ПІБ;
* ПІБ;
* дата народження;
* позицію;
* позиція — посада;
* досвід;
* досвід:
* типи суден;
** кількість контрактів;
** стаж у місяцях;
* сертифікати:
** IMO;
** STCW;
* рівень англійської;
* рівень англійської;
* дата доступності;
* дату доступності;
* місце проживання;
* стан сертифікатів;
* контакти:
* відповідність вимогам;
** телефон;
* причини невідповідності, якщо кандидат не проходить по окремих параметрах.
** email.
 
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
'''Практичний сенс.''' Система має не лише показати кандидатів, а й пояснити, чому кандидат підходить або не підходить: не вистачає досвіду, сертифікат прострочений, дата доступності пізніша за початок контракту тощо.
</div>
 
== Пропозиція працевлаштування ==
 
Після підбору менеджер створює пропозицію кандидату.
 
== Поля пропозиції ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Кандидат
| Моряк, якому пропонується вакансія
|-
| Вакансія
| Вакансія, на яку пропонується кандидат
|-
| Дата пропозиції
| Коли зроблено пропозицію
|-
| Зарплата
| Умови оплати
|-
| Початок контракту
| Дата старту
|-
| Тривалість
| Тривалість контракту
|-
| Статус пропозиції
| Запропоновано, прийняв, відмовився, на розгляді
|-
| Коментар
| Примітка менеджера або кандидата
|}


==== Функціонал ====
== Статуси пропозиції ==


* додавання анкети моряка через AJAX-форму;
{| class="wikitable" style="width:100%;"
* завантаження копій:
! Статус
** сертифікатів;
! Значення
** паспортів;
|-
** рекомендацій;
| Запропоновано
* автоматичне нагадування про закінчення сертифікатів.
| Кандидату надіслано пропозицію
|-
| На розгляді
| Кандидат або судновласник розглядає пропозицію
|-
| Прийняв
| Кандидат погодився
|-
| Відмовився
| Кандидат відмовився
|-
| Відхилено судновласником
| Судновласник не погодив кандидата
|}


=== 3. Журнал «Вакансії» ===
== Контрактування ==


==== Колонки журналу ====
Після прийняття пропозиції формується контракт моряка.
 
== Поля контракту ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Номер контракту
| Унікальний номер документа
|-
| Кандидат
| Моряк, з яким укладається контракт
|-
| Судно
| Судно, на яке йде кандидат
|-
| Посада
| Позиція в екіпажі
|-
| Судновласник
| Компанія або оператор
|-
| Дата початку
| Початок контракту
|-
| Дата завершення
| Планове завершення контракту
|-
| Тривалість
| Тривалість у місяцях
|-
| Зарплата
| Сума та валюта
|-
| Статус
| Підготовлений, підписаний, активний, завершений, скасований
|}
 
== Формування контракту ==
 
Контракт має формуватися автоматично на основі:
 
* даних моряка;
* даних судна;
* посади;
* зарплати;
* дат контракту;
* судновласника;
* умов вакансії.
 
Формат документа:
 
* PDF;
* DOCX, якщо потрібне редагування перед підписанням.
 
== Планування замін екіпажу ==
 
Модуль має контролювати завершення контрактів і допомагати планувати заміни.
 
== Логіка планування заміни ==
 
Система повинна:
 
* бачити дату завершення контракту;
* показувати контракти, які скоро завершуються;
* створювати потребу в заміні;
* пропонувати кандидатів на заміну;
* враховувати дату доступності кандидатів;
* не пропонувати кандидатів із простроченими обов’язковими документами.
 
== Нагадування про завершення контракту ==
 
Система має надсилати сповіщення:
 
* за 60 днів до завершення контракту;
* за 30 днів;
* за 14 днів;
* за 7 днів;
* у день завершення.
 
== Нотифікації ==
 
Модуль повинен підтримувати автоматичні сповіщення.
 
== Події для сповіщень ==
 
Сповіщення бажано надсилати, коли:
 
* закінчується сертифікат;
* закінчується паспорт або медична довідка;
* створена нова вакансія;
* кандидат підходить під вакансію;
* кандидату зроблено пропозицію;
* кандидат прийняв або відхилив пропозицію;
* контракт скоро завершується;
* потрібно планувати заміну екіпажу.
 
== Журнал змін статусів ==
 
Система повинна зберігати історію зміни статусів кандидата, вакансії, пропозиції та контракту.
 
Журнал має показувати:
 
* хто змінив статус;
* старий статус;
* новий статус;
* дату й час;
* коментар.
 
== Звітність ==
 
== Звіт «База моряків» ==
 
Звіт показує кандидатів за параметрами.
 
У звіті потрібно відображати:
 
* ПІБ;
* позицію;
* досвід;
* рівень англійської;
* дату доступності;
* статус кандидата;
* стан документів;
* контактні дані.
 
== Звіт «Відкриті вакансії» ==
 
Звіт показує всі активні вакансії.
 
У звіті потрібно відображати:


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


==== Функціонал ====
== Звіт «Підбір кандидатів» ==


* створення вакансій для суден;
Звіт показує, які кандидати були розглянуті по вакансії.
* встановлення вимог до кандидата:
** стаж;
** тип судна;
** сертифікація;
** рівень англійської.


=== 4. Підбір моряків ===
У звіті потрібно відображати:


==== Автоматизований пошук ====
* вакансію;
* кандидата;
* відповідність вимогам;
* статус пропозиції;
* коментар менеджера;
* дату останньої зміни.


Пошук моряків, які відповідають параметрам вакансії:
== Звіт «Контракти і заміни» ==


* посада;
Звіт показує активні контракти та потребу в замінах.
* досвід роботи на потрібному типі судна;
 
* валідні сертифікати;
У звіті потрібно відображати:
* доступність по датах.
 
* моряка;
* судно;
* позицію;
* дату початку;
* дату завершення;
* кількість днів до завершення;
* статус заміни;
* рекомендованого кандидата на заміну, якщо є.
 
== Звіт «Документи і сертифікати» ==
 
Звіт показує стан документів моряків.
 
У звіті потрібно відображати:
 
* моряка;
* тип документа;
* номер;
* дату завершення;
* статус;
* кількість днів до завершення;
* відповідального менеджера.
 
== Експорт даних ==
 
Модуль має підтримувати експорт:
 
* бази моряків;
* вакансій;
* списку кандидатів по вакансії;
* контрактів;
* звіту по сертифікатах;
* звіту по замінах.
 
Формати:
 
* Excel;
* PDF.
 
== AJAX-інтерактив ==
 
Інтерфейс має працювати швидко та без зайвого перезавантаження сторінок.
 
Через AJAX мають працювати:


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


* створення «Пропозиції працевлаштування» кандидату;
== Логування змін ==
* переведення статусу кандидата у:
** запропоновано;
** прийняв;
** відмовився.


=== 5. Контрактування ===
Модуль повинен фіксувати важливі дії.


Функціонал:
Журнал змін має зберігати:


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


=== 6. Додаткові функції ===
== Права доступу ==


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


== Технічні вимоги ==
== Технічні вимоги ==


{| class="wikitable"
{| class="wikitable" style="width:100%;"
! Параметр
! Параметр
! Опис
! Опис
Рядок 151: Рядок 976:
| K2 Cloud ERP на Python або PHP
| K2 Cloud ERP на Python або PHP
|-
|-
| БД
| База даних
| PostgreSQL або MySQL
| PostgreSQL або MySQL
|-
|-
| Фронтенд
| Фронтенд
| HTML5, JavaScript, AJAX, Axios або Fetch API
| HTML5, JavaScript
|-
| AJAX
| Axios або Fetch API
|-
|-
| UI-компоненти
| UI-компоненти
| DataTables, Select2, Datepicker
| DataTables, Select2, Datepicker
|-
| Документи
| Завантаження копій сертифікатів, паспортів, рекомендацій
|-
|-
| Друк
| Друк
| Генерація PDF контрактів та резюме моряків
| PDF-контракти та резюме моряків
|-
| Експорт
| Excel для бази моряків, вакансій і звітів
|}
|}


== Критерії оцінки ==
== Рекомендовані сутності бази даних ==


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


== Примітка ==
== Примітка ==


Модуль пошуку моряків Crew Management System — життєво необхідний для:
Модуль пошуку моряків є критично важливим для крюїнгових агентств, судноплавних компаній, операторів флоту та сервісних організацій, які працюють у сфері морських перевезень.
 
Правильно реалізований модуль дозволяє швидше закривати вакансії, не втрачати кандидатів, контролювати документи, уникати прострочених сертифікатів і своєчасно планувати заміни екіпажу.
 
== Коротко ==
 
{| class="wikitable" style="width:100%;"
! Питання
! Відповідь
|-
| Що потрібно створити?
| Модуль пошуку, обліку і працевлаштування моряків
|-
| Які довідники потрібні?
| Позиції моряків, судна, типи суден, судновласники
|-
| Який головний об’єкт?
| Анкета моряка з документами, досвідом і доступністю
|-
| Що таке вакансія?
| Відкрита позиція на судні з вимогами до кандидата
|-
| Що має робити автоматичний підбір?
| Шукати моряків за посадою, досвідом, сертифікатами, англійською і датою доступності
|-
| Які документи потрібні?
| Сертифікати, паспорти, медичні довідки, рекомендації, контракт
|-
| Які звіти потрібні?
| База моряків, відкриті вакансії, підбір кандидатів, контракти і заміни, сертифікати
|-
| Що є критичною вимогою?
| Повний цикл: кандидат → документи → вакансія → підбір → контракт → заміна
|}
 
== Див. також ==
 
* [[K2 Cloud ERP|K2 ERP]]
* [[K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[Crew Management System]]
* [[CRM]]
* [[HRM]]
* [[Контракти]]
* [[Документообіг]]
* [[Підбір персоналу]]
* [[Вакансії]]
* [[Нотифікації]]
* [[Звітність]]


* крюїнгових агентств;
[[Категорія:K2 ERP]]
* великих судноплавних компаній;
[[Категорія:Атестаційні завдання K2]]
* сервісних організацій, що працюють у сфері морських перевезень.
[[Категорія:Crew Management System]]
[[Категорія:Пошук моряків]]
[[Категорія:HRM]]
[[Категорія:Крюїнг]]
[[Категорія:Документообіг]]
[[Категорія:Корпоративна Wiki]]