Атестаційні завдання K2 ERP/Поштова служба: відмінності між версіями
R (обговорення | внесок) Первинна публікація |
R (обговорення | внесок) Немає опису редагування |
||
| Рядок 1: | Рядок 1: | ||
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Поштова служба}} | |||
= Модуль обліку клієнтів, послуг, замовлень, рахунків і статусів для мультисервісної компанії: Поштова доставка + Хостинг = | '''Атестаційне завдання K2 ERP — Поштова служба + Хостинг''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні мультисервісного модуля для компанії, яка одночасно надає послуги поштової доставки та хостингові послуги. | ||
Модуль має забезпечувати спільну базу клієнтів, єдину фінансову систему, окремі журнали для відправлень і хостингових послуг, контроль статусів, оплат, продовжень, сповіщень, особистий кабінет клієнта, адмін-панель і звіти по кожному напрямку бізнесу. | |||
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
'''Коротко.''' Потрібно реалізувати мультисервісну ERP-систему: клієнти, поштові відправлення, кур’єри, відділення, тарифи доставки, хостингові тарифи, сервери, домени, хостинг-послуги, рахунки, оплати, статуси, продовження, сповіщення, кабінет клієнта, адмін-панель і звіти. | |||
</div> | |||
__TOC__ | |||
== Назва завдання == | |||
'''Модуль обліку клієнтів, послуг, замовлень, рахунків і статусів для мультисервісної компанії: Поштова доставка + Хостинг'''. | |||
== Мета завдання == | |||
Мета завдання — створити в K2 ERP модуль для компанії, яка має два різні напрями діяльності: | |||
* поштова доставка; | |||
* хостингові та доменні послуги. | |||
Система повинна дозволяти: | |||
* вести єдину базу клієнтів; | |||
* вести поштові відправлення; | |||
* вести пункти обслуговування; | |||
* вести кур’єрів; | |||
* вести маршрути доставки; | |||
* контролювати статуси відправлень; | |||
* формувати транспортні накладні; | |||
* вести хостингові тарифні плани; | |||
* вести сервери; | |||
* вести домени; | |||
* вести хостингові послуги клієнтів; | |||
* контролювати дати завершення хостинг-послуг; | |||
* формувати рахунки на доставку; | |||
* формувати рахунки на хостинг; | |||
* приймати оплати; | |||
* бачити борги клієнтів; | |||
* надсилати сповіщення; | |||
* вести особистий кабінет клієнта; | |||
* формувати окремі звіти по доставці; | |||
* формувати окремі звіти по хостингу; | |||
* формувати загальний фінансовий звіт. | |||
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;"> | |||
'''Головний принцип.''' Клієнт має бути один у системі, навіть якщо він одночасно користується доставкою, хостингом, доменами та іншими послугами. Фінанси, рахунки й оплати мають обліковуватися централізовано. | |||
</div> | |||
== Загальний бізнес-контекст == | == Загальний бізнес-контекст == | ||
Компанія працює як мультисервісний оператор і надає два типи послуг. | |||
Поштовий напрям: | |||
* | * доставка посилок; | ||
* | * доставка документів; | ||
** | * міжнародні відправлення; | ||
* | * кур’єрська доставка; | ||
* | * доставка між відділеннями; | ||
* адресна доставка. | |||
Хостинговий напрям: | |||
* shared hosting; | |||
* VPS; | |||
* VDS; | |||
* dedicated server; | |||
* домени; | |||
* DNS; | |||
* SSL-сертифікати; | |||
* резервне копіювання; | |||
* технічна підтримка. | |||
Компанії потрібно: | |||
* | * вести єдину базу клієнтів; | ||
* | * бачити всі послуги клієнта в одному кабінеті; | ||
* | * вести окремі операційні процеси для доставки і хостингу; | ||
* мати спільний фінансовий модуль; | |||
* контролювати статуси замовлень і послуг; | |||
* автоматично формувати рахунки; | |||
* надсилати повідомлення клієнтам; | |||
* аналізувати доходи по кожному напрямку. | |||
==== | == Основний бізнес-процес == | ||
Типовий процес для поштової доставки: | |||
# клієнт створюється або обирається із бази; | |||
# оформлюється відправлення; | |||
# вказується відправник, одержувач, адреса, вага і тип доставки; | |||
# система розраховує вартість; | |||
# створюється рахунок або оплата на місці; | |||
# відправлення отримує статус '''«Прийнято»'''; | |||
# далі статуси змінюються: '''«Відправлено»''', '''«У транзиті»''', '''«На доставці»''', '''«Доставлено»'''; | |||
# клієнт отримує сповіщення; | |||
# система формує звіти по доставках. | |||
Типовий процес для хостингу: | |||
# клієнт створюється або обирається із бази; | |||
# обирається тариф хостингу; | |||
# створюється хостингова послуга; | |||
# послуга прив’язується до сервера або домену; | |||
# система формує рахунок; | |||
# клієнт оплачує; | |||
# послуга переходить у статус '''«Активна»'''; | |||
# перед завершенням періоду система надсилає нагадування; | |||
# після оплати послуга продовжується; | |||
# система формує звіти по хостингових послугах. | |||
== Основні | == Основні об’єкти модуля == | ||
== | {| class="wikitable" style="width:100%;" | ||
! Об’єкт | |||
! Призначення | |||
|- | |||
| Клієнти | |||
| Єдина база фізичних і юридичних осіб | |||
|- | |||
| Пункти обслуговування | |||
| Відділення поштової служби | |||
|- | |||
| Кур’єри | |||
| Співробітники, які доставляють відправлення | |||
|- | |||
| Відправлення | |||
| Посилки, документи, вантажі | |||
|- | |||
| Маршрути | |||
| Напрями доставки | |||
|- | |||
| Тарифи доставки | |||
| Правила розрахунку вартості доставки | |||
|- | |||
| Хостингові тарифи | |||
| Пакети послуг хостингу | |||
|- | |||
| Сервери | |||
| Інфраструктура для хостингових послуг | |||
|- | |||
| Домени | |||
| Доменні імена клієнтів | |||
|- | |||
| Хостингові послуги | |||
| Активні або завершені послуги клієнтів | |||
|- | |||
| Рахунки | |||
| Документи на оплату доставки або хостингу | |||
|- | |||
| Оплати | |||
| Фактичні платежі клієнтів | |||
|- | |||
| Сповіщення | |||
| Повідомлення про статуси, рахунки, продовження | |||
|- | |||
| Кабінет клієнта | |||
| Перегляд доставок, хостингу, рахунків і оплат | |||
|- | |||
| Звіти | |||
| Аналітика по доставці, хостингу і фінансах | |||
|} | |||
==== | == Спільна база «Клієнти» == | ||
Клієнт може користуватися однією або кількома послугами. | |||
==== | == Типи клієнтів == | ||
* | * фізична особа; | ||
* | * ФОП; | ||
* | * юридична особа; | ||
* корпоративний клієнт; | |||
* партнер; | |||
* внутрішній клієнт. | |||
=== | == Поля клієнта == | ||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| ПІБ або назва компанії | |||
| Назва клієнта | |||
|- | |||
| Тип клієнта | |||
| Фізична особа, ФОП, юридична особа | |||
|- | |||
| Email | |||
| Основний контакт і логін | |||
|- | |||
| Телефон | |||
| Контактний номер | |||
|- | |||
| Контактна особа | |||
| Для юридичних осіб | |||
|- | |||
| Адреса | |||
| Адреса клієнта | |||
|- | |||
| Дата реєстрації | |||
| Коли клієнт створений | |||
|- | |||
| Статус | |||
| Активний, заблокований, архівний | |||
|- | |||
| Коментар | |||
| Внутрішня примітка | |||
|} | |||
== | == Послуги клієнта == | ||
У картці клієнта потрібно бачити: | |||
* активні поштові відправлення; | |||
* історію доставок; | |||
* активні хостингові послуги; | |||
* домени; | |||
* рахунки; | |||
* оплати; | |||
* борги; | |||
* сповіщення; | |||
* тікети або звернення, якщо реалізовано. | |||
=== | == Поштова частина == | ||
== Довідник «Пункти обслуговування» == | |||
Пункти обслуговування — це відділення, де приймаються і видаються відправлення. | |||
* | == Поля пункту обслуговування == | ||
* | |||
** | {| class="wikitable" style="width:100%;" | ||
** очікує оплату; | ! Поле | ||
** | ! Опис | ||
* оплата | |- | ||
** | | Назва відділення | ||
** | | Наприклад: Відділення №1 | ||
** | |- | ||
* | | Адреса | ||
** | | Фактична адреса | ||
** | |- | ||
| Телефон | |||
| Контактний номер | |||
|- | |||
| Місто | |||
| Населений пункт | |||
|- | |||
| Графік роботи | |||
| Дні та години роботи | |||
|- | |||
| Відповідальний | |||
| Керівник або оператор відділення | |||
|- | |||
| Статус | |||
| Активне, тимчасово закрите, архівне | |||
|} | |||
== Довідник «Кур’єри» == | |||
Кур’єри виконують доставку відправлень. | |||
== Поля кур’єра == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| ПІБ | |||
| Повне ім’я кур’єра | |||
|- | |||
| Телефон | |||
| Контактний номер | |||
|- | |||
| Email | |||
| Опціонально | |||
|- | |||
| Місто / зона доставки | |||
| Територія роботи | |||
|- | |||
| Тип транспорту | |||
| Пішки, авто, мото, велосипед | |||
|- | |||
| Статус | |||
| Активний, відпустка, лікарняний, звільнений | |||
|} | |||
== Довідник «Тарифи доставки» == | |||
Тарифи потрібні для розрахунку вартості доставки. | |||
== Варіанти тарифікації == | |||
* за вагою; | |||
* за габаритами; | |||
* за містом; | |||
* за зоною доставки; | |||
* за країною; | |||
* за терміновістю; | |||
* фіксована ціна; | |||
* індивідуальна ціна для корпоративного клієнта. | |||
== Поля тарифу доставки == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва тарифу | |||
| Наприклад: Стандарт, Експрес, Міжнародний | |||
|- | |||
| Тип доставки | |||
| Документи, посилка, вантаж | |||
|- | |||
| Мінімальна вага | |||
| Початок діапазону | |||
|- | |||
| Максимальна вага | |||
| Кінець діапазону | |||
|- | |||
| Базова ціна | |||
| Початкова ціна | |||
|- | |||
| Ціна за кг | |||
| Додаткова ціна за вагу | |||
|- | |||
| Термін доставки | |||
| Орієнтовна кількість днів | |||
|- | |||
| Статус | |||
| Активний або архівний | |||
|} | |||
== База «Відправлення» == | |||
Відправлення — головний об’єкт поштової частини. | |||
== Колонки бази відправлень == | |||
{| class="wikitable" style="width:100%;" | |||
! Колонка | |||
! Опис | |||
|- | |||
| Номер відправлення | |||
| Унікальний трек-номер | |||
|- | |||
| Відправник | |||
| Клієнт або контакт відправника | |||
|- | |||
| Одержувач | |||
| Хто отримує | |||
|- | |||
| Адреса доставки | |||
| Куди доставити | |||
|- | |||
| Тип відправлення | |||
| Посилка, документи, вантаж | |||
|- | |||
| Вага | |||
| Вага відправлення | |||
|- | |||
| Вартість доставки | |||
| Розрахована сума | |||
|- | |||
| Статус | |||
| Прийнято, у транзиті, доставлено тощо | |||
|- | |||
| Кур’єр | |||
| Хто доставляє | |||
|- | |||
| Термін доставки | |||
| Планова дата доставки | |||
|} | |||
== Поля відправлення == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Номер відправлення | |||
| Унікальний номер або трек-код | |||
|- | |||
| Відправник | |||
| Клієнт або особа, що відправляє | |||
|- | |||
| Телефон відправника | |||
| Контакт відправника | |||
|- | |||
| Одержувач | |||
| ПІБ або назва компанії | |||
|- | |||
| Телефон одержувача | |||
| Контакт одержувача | |||
|- | |||
| Адреса відправлення | |||
| Звідки відправлено | |||
|- | |||
| Адреса доставки | |||
| Куди доставити | |||
|- | |||
| Тип відправлення | |||
| Посилка, документи, вантаж | |||
|- | |||
| Вага | |||
| Вага у кг | |||
|- | |||
| Габарити | |||
| Довжина, ширина, висота, опціонально | |||
|- | |||
| Оголошена вартість | |||
| Опціонально | |||
|- | |||
| Вартість доставки | |||
| Розрахована або ручна | |||
|- | |||
| Кур’єр | |||
| Призначений виконавець | |||
|- | |||
| Пункт прийому | |||
| Де прийнято | |||
|- | |||
| Пункт видачі | |||
| Якщо доставка до відділення | |||
|- | |||
| Планова дата доставки | |||
| Очікувана дата | |||
|- | |||
| Статус | |||
| Поточний стан відправлення | |||
|} | |||
== Статуси відправлення == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Створено | |||
| Відправлення створено в системі | |||
|- | |||
| Прийнято | |||
| Посилку прийнято у відділенні або кур’єром | |||
|- | |||
| Відправлено | |||
| Відправлення передано в доставку | |||
|- | |||
| У транзиті | |||
| Відправлення переміщується між пунктами | |||
|- | |||
| Прибуло у відділення | |||
| Відправлення готове до видачі | |||
|- | |||
| На доставці | |||
| Кур’єр доставляє одержувачу | |||
|- | |||
| Доставлено | |||
| Відправлення отримано | |||
|- | |||
| Не доставлено | |||
| Доставка не відбулася | |||
|- | |||
| Повернення | |||
| Відправлення повертається відправнику | |||
|- | |||
| Скасовано | |||
| Відправлення скасовано | |||
|} | |||
== Трекінг відправлення == | |||
Система має зберігати історію статусів відправлення. | |||
== Поля трекінгу == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Відправлення | |||
| До якого відправлення запис | |||
|- | |||
| Дата і час | |||
| Коли змінився статус | |||
|- | |||
| Статус | |||
| Новий статус | |||
|- | |||
| Локація | |||
| Відділення, місто або зона | |||
|- | |||
| Користувач | |||
| Хто змінив статус | |||
|- | |||
| Коментар | |||
| Додаткова інформація | |||
|} | |||
== Хостингова частина == | |||
== Довідник «Хостингові тарифні плани» == | |||
Тариф описує тип хостингової послуги, характеристики та вартість. | |||
== Типи хостингових послуг == | |||
* shared hosting; | |||
* VPS; | |||
* VDS; | |||
* dedicated server; | |||
* domain; | |||
* DNS; | |||
* SSL; | |||
* backup; | |||
* email hosting; | |||
* administration. | |||
== Поля тарифного плану == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва тарифу | |||
| Наприклад: Hosting Start, VPS 4GB | |||
|- | |||
| Тип послуги | |||
| Хостинг, VPS, домен, SSL тощо | |||
|- | |||
| Вартість на місяць | |||
| Ціна за місяць | |||
|- | |||
| Вартість на рік | |||
| Ціна за рік | |||
|- | |||
| Дисковий простір | |||
| Наприклад: 10 GB | |||
|- | |||
| RAM | |||
| Для VPS або серверів | |||
|- | |||
| CPU | |||
| Для VPS або серверів | |||
|- | |||
| Трафік | |||
| Ліміт або безліміт | |||
|- | |||
| Статус | |||
| Активний, прихований, архівний | |||
|} | |||
== Довідник «Сервери» == | |||
Сервери використовуються для розміщення хостингових послуг. | |||
== Поля сервера == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва сервера | |||
| Hostname або внутрішня назва | |||
|- | |||
| Тип сервера | |||
| Shared, VPS-node, Dedicated, DNS, Mail | |||
|- | |||
| IP-адреса | |||
| Основна IP | |||
|- | |||
| Пул IP | |||
| Доступні IP-адреси | |||
|- | |||
| Локація | |||
| Датацентр або місто | |||
|- | |||
| Статус | |||
| Активний, на обслуговуванні, виведений | |||
|} | |||
== База «Хостингові послуги» == | |||
Хостингова послуга — це активна або завершена послуга клієнта. | |||
== Колонки бази хостингових послуг == | |||
{| class="wikitable" style="width:100%;" | |||
! Колонка | |||
! Опис | |||
|- | |||
| Клієнт | |||
| Власник послуги | |||
|- | |||
| Тип послуги | |||
| Хостинг, VPS, домен, SSL | |||
|- | |||
| Тариф | |||
| Обраний тарифний план | |||
|- | |||
| Сервер | |||
| Де розміщена послуга | |||
|- | |||
| Домен | |||
| Якщо прив’язано | |||
|- | |||
| Дата початку | |||
| Початок дії | |||
|- | |||
| Дата завершення | |||
| Кінець оплаченого періоду | |||
|- | |||
| Статус | |||
| Активна, припинена, очікує оплату, прострочена | |||
|} | |||
== Статуси хостингової послуги == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Нова | |||
| Послугу створено | |||
|- | |||
| Очікує оплату | |||
| Рахунок виставлено, оплати немає | |||
|- | |||
| Активна | |||
| Послуга оплачена і працює | |||
|- | |||
| Завершується | |||
| До кінця періоду залишилось мало часу | |||
|- | |||
| Прострочена | |||
| Період завершився, оплати немає | |||
|- | |||
| Призупинена | |||
| Послугу тимчасово зупинено | |||
|- | |||
| Припинена | |||
| Послуга більше не надається | |||
|} | |||
== База «Домени» == | |||
Домени можуть бути окремою послугою клієнта або прив’язкою до хостингу. | |||
== Поля домену == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Доменне ім’я | |||
| Наприклад: example.com | |||
|- | |||
| Клієнт | |||
| Власник домену | |||
|- | |||
| Реєстратор | |||
| Де зареєстровано | |||
|- | |||
| Дата реєстрації | |||
| Коли зареєстровано | |||
|- | |||
| Дата завершення | |||
| Коли завершується дія | |||
|- | |||
| DNS-сервери | |||
| NS-записи | |||
|- | |||
| Статус | |||
| Активний, завершується, протермінований, видалений | |||
|} | |||
== Спільний фінансовий модуль == | |||
Фінансовий модуль має працювати для обох напрямків. | |||
== Рахунки можуть створюватися для == | |||
* поштової доставки; | |||
* додаткового страхування відправлення; | |||
* міжнародної доставки; | |||
* хостингової послуги; | |||
* продовження VPS; | |||
* продовження домену; | |||
* SSL-сертифіката; | |||
* адміністрування; | |||
* інших послуг. | |||
== Поля рахунку == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Номер рахунку | |||
| Унікальний номер | |||
|- | |||
| Клієнт | |||
| Кому виставлено рахунок | |||
|- | |||
| Напрям послуги | |||
| Доставка або хостинг | |||
|- | |||
| Об’єкт оплати | |||
| Відправлення, хостингова послуга, домен | |||
|- | |||
| Дата рахунку | |||
| Коли сформовано | |||
|- | |||
| Сума | |||
| Сума до оплати | |||
|- | |||
| Оплачено | |||
| Скільки оплачено | |||
|- | |||
| Борг | |||
| Залишок | |||
|- | |||
| Статус | |||
| Новий, очікує оплату, частково оплачено, оплачено, прострочено, скасовано | |||
|} | |||
== Способи оплати == | |||
* готівка; | |||
* банківська картка; | |||
* банківський переказ; | |||
* LiqPay; | |||
* Stripe; | |||
* PayPal; | |||
* внутрішній баланс клієнта; | |||
* ручна оплата оператором. | |||
== Поля оплати == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Клієнт | |||
| Хто оплатив | |||
|- | |||
| Рахунок | |||
| До якого рахунку прив’язана оплата | |||
|- | |||
| Дата оплати | |||
| Коли отримано оплату | |||
|- | |||
| Сума | |||
| Розмір платежу | |||
|- | |||
| Спосіб оплати | |||
| Готівка, картка, LiqPay, Stripe, PayPal тощо | |||
|- | |||
| Статус | |||
| Очікує, успішно, помилка, повернення | |||
|- | |||
| Коментар | |||
| Примітка оператора | |||
|} | |||
== Особистий кабінет клієнта == | |||
Клієнт повинен бачити всі свої послуги в одному кабінеті. | |||
== У кабінеті клієнт бачить == | |||
* активні відправлення; | |||
* історію доставок; | |||
* трекінг відправлень; | |||
* активні хостингові послуги; | |||
* домени; | |||
* дати завершення послуг; | |||
* рахунки; | |||
* оплати; | |||
* борги; | |||
* можливість завантажити PDF-рахунок; | |||
* контактні дані; | |||
* повідомлення; | |||
* звернення до підтримки, якщо реалізовано. | |||
== Панель адміністратора == | |||
Адмін-панель має дозволяти керувати обома напрямками. | |||
== В адмін-панелі потрібно бачити == | |||
* клієнтів; | |||
* відправлення; | |||
* кур’єрів; | |||
* відділення; | |||
* тарифи доставки; | |||
* хостингові тарифи; | |||
* сервери; | |||
* домени; | |||
* хостингові послуги; | |||
* рахунки; | |||
* оплати; | |||
* прострочені послуги; | |||
* відправлення з проблемами; | |||
* звіти. | |||
== Сповіщення == | |||
Система має підтримувати сповіщення клієнтів і операторів. | |||
== Події для поштових сповіщень == | |||
* відправлення прийнято; | |||
* відправлення у транзиті; | |||
* відправлення прибуло у відділення; | |||
* відправлення передано кур’єру; | |||
* відправлення доставлено; | |||
* доставка не відбулася; | |||
* потрібна додаткова оплата; | |||
* відправлення повертається. | |||
== Події для хостингових сповіщень == | |||
* створено хостингову послугу; | |||
* виставлено рахунок; | |||
* рахунок оплачено; | |||
* послуга завершується через 30 днів; | |||
* послуга завершується через 7 днів; | |||
* послуга прострочена; | |||
* домен завершується; | |||
* домен продовжено; | |||
* послугу призупинено. | |||
== Звіти == | == Звіти == | ||
== Звіт «Доставки за період» == | |||
У звіті потрібно відображати: | |||
* кількість відправлень; | * кількість відправлень; | ||
* | * кількість доставлених; | ||
* кількість недоставлених; | |||
* суму доходу; | |||
* середню вартість доставки; | |||
* кількість повернень. | |||
== Звіт «Робота кур’єрів» == | |||
У звіті потрібно відображати: | |||
* кур’єра; | |||
* кількість доставок; | |||
* кількість успішних доставок; | |||
* кількість невдалих доставок; | |||
* суму доставок; | |||
* середній час доставки, якщо реалізовано. | |||
== Звіт «Хостингові послуги» == | |||
У звіті потрібно відображати: | |||
* кількість активних послуг; | * кількість активних послуг; | ||
* | * кількість прострочених послуг; | ||
* кількість послуг, що завершуються; | |||
* суму доходу; | |||
* кількість послуг по тарифах. | |||
== Звіт «Домени, що завершуються» == | |||
У звіті потрібно відображати: | |||
* домен; | |||
* клієнта; | |||
* дату завершення; | |||
* кількість днів до завершення; | |||
* статус рахунку; | |||
* статус домену. | |||
== Загальний фінансовий звіт == | |||
У звіті потрібно відображати: | |||
* доходи від доставки; | |||
* доходи від хостингу; | |||
* загальний дохід; | |||
* оплачені рахунки; | |||
* неоплачені рахунки; | |||
* борги клієнтів; | |||
* частку кожного напрямку в доході. | |||
== Звіт «Борги клієнтів» == | |||
У звіті потрібно відображати: | |||
* клієнта; | |||
* напрям послуги; | |||
* рахунок; | |||
* суму рахунку; | |||
* оплачено; | |||
* борг; | |||
* кількість днів прострочення. | |||
== AJAX-інтерактив == | |||
Інтерфейс має працювати швидко й без перезавантаження сторінок. | |||
Через AJAX мають працювати: | |||
* пошук клієнтів; | |||
* створення відправлення; | |||
* розрахунок вартості доставки; | |||
* зміна статусу відправлення; | |||
* призначення кур’єра; | |||
* створення хостингової послуги; | |||
* прив’язка сервера; | |||
* створення рахунку; | |||
* фіксація оплати; | |||
* продовження хостинг-послуги; | |||
* фільтрація відправлень; | |||
* фільтрація хостинг-послуг; | |||
* фільтрація рахунків; | |||
* оновлення особистого кабінету; | |||
* формування звітів. | |||
== Логування змін == | |||
Модуль повинен фіксувати ключові дії. | |||
Журнал змін має зберігати: | |||
* хто створив клієнта; | |||
* хто створив відправлення; | |||
* хто змінив статус відправлення; | |||
* хто призначив кур’єра; | |||
* хто створив тариф доставки; | |||
* хто створив хостинговий тариф; | |||
* хто створив хостингову послугу; | |||
* хто змінив дату завершення послуги; | |||
* хто створив домен; | |||
* хто створив рахунок; | |||
* хто зафіксував оплату; | |||
* хто продовжив послугу; | |||
* хто надіслав сповіщення; | |||
* дату й час дії; | |||
* старе та нове значення, якщо це можливо. | |||
== Права доступу == | |||
Модуль має підтримувати рольову модель. | |||
{| class="wikitable" style="width:100%;" | |||
! Роль | |||
! Можливості | |||
|- | |||
| Клієнт | |||
| Бачить власні доставки, хостингові послуги, домени, рахунки й оплати | |||
|- | |||
| Оператор поштової служби | |||
| Створює відправлення, змінює статуси, працює з відділеннями | |||
|- | |||
| Кур’єр | |||
| Бачить свої доставки, змінює статус доставки | |||
|- | |||
| Хостинг-оператор | |||
| Створює хостингові послуги, домени, рахунки на продовження | |||
|- | |||
| Технічний адміністратор | |||
| Керує серверами, IP, DNS і технічними параметрами | |||
|- | |||
| Бухгалтер | |||
| Працює з рахунками, оплатами, боргами і фінансовими звітами | |||
|- | |||
| Керівник | |||
| Бачить загальні звіти по доставці, хостингу і фінансах | |||
|- | |||
| Адміністратор системи | |||
| Налаштовує права, тарифи, довідники, шаблони і службові параметри | |||
|} | |||
== Технічні вимоги == | == Технічні вимоги == | ||
{| class="wikitable" | |||
!Параметр | {| class="wikitable" style="width:100%;" | ||
!Опис | ! Параметр | ||
! Опис | |||
|- | |||
| Бекенд | |||
| K2 Cloud ERP на Python або PHP | |||
|- | |||
| База даних | |||
| PostgreSQL або MySQL | |||
|- | |||
| Фронтенд | |||
| HTML5, JavaScript | |||
|- | |||
| AJAX | |||
| Fetch API або Axios | |||
|- | |||
| UI-компоненти | |||
| DataTables для клієнтів, відправлень, хостинг-послуг, рахунків; Select2 для пошуку клієнтів, тарифів, кур’єрів і серверів | |||
|- | |- | ||
| | | Календар | ||
| | | FullCalendar для планування кур’єрів або технічних робіт, опціонально | ||
|- | |- | ||
| | | Друк | ||
| | | PDF-транспортні накладні, рахунки, акти, звіти | ||
|- | |- | ||
| | | Експорт | ||
| | | Excel або PDF для фінансових і операційних звітів | ||
|- | |- | ||
| | | Сповіщення | ||
| | | Email або внутрішні повідомлення | ||
|- | |- | ||
| | | Оплати | ||
| | | Готівка, картка, LiqPay, Stripe, PayPal або ручна оплата | ||
|} | |} | ||
== Критерії | == Рекомендовані сутності бази даних == | ||
{| class="wikitable" | |||
!Критерій | Для реалізації задачі доцільно передбачити такі сутності: | ||
!Бали | |||
* клієнти; | |||
* контактні особи; | |||
* пункти обслуговування; | |||
* кур’єри; | |||
* тарифи доставки; | |||
* відправлення; | |||
* трекінг відправлень; | |||
* хостингові тарифи; | |||
* сервери; | |||
* домени; | |||
* хостингові послуги; | |||
* рахунки; | |||
* позиції рахунків; | |||
* оплати; | |||
* сповіщення; | |||
* тікети підтримки, опціонально; | |||
* журнал змін; | |||
* права доступу; | |||
* звіти. | |||
== Практичне завдання == | |||
У межах атестації потрібно продемонструвати робочий сценарій. | |||
Мінімальний сценарій для поштової частини: | |||
# створити клієнта; | |||
# створити пункт обслуговування; | |||
# створити кур’єра; | |||
# створити тариф доставки; | |||
# створити відправлення; | |||
# розрахувати вартість доставки; | |||
# сформувати рахунок; | |||
# зафіксувати оплату; | |||
# змінити статус відправлення на '''«Прийнято»'''; | |||
# змінити статус на '''«У транзиті»'''; | |||
# призначити кур’єра; | |||
# змінити статус на '''«Доставлено»'''; | |||
# перевірити історію трекінгу. | |||
Мінімальний сценарій для хостингової частини: | |||
# створити хостинговий тариф; | |||
# створити сервер; | |||
# створити домен клієнта; | |||
# створити хостингову послугу; | |||
# прив’язати послугу до клієнта; | |||
# прив’язати послугу до сервера; | |||
# сформувати рахунок на хостинг; | |||
# зафіксувати оплату; | |||
# змінити статус послуги на '''«Активна»'''; | |||
# виконати продовження послуги; | |||
# перевірити зміну дати завершення. | |||
Мінімальний сценарій для спільного фінансового блоку: | |||
# сформувати рахунок на доставку; | |||
# сформувати рахунок на хостинг; | |||
# зафіксувати часткову оплату; | |||
# перевірити борг; | |||
# зафіксувати повну оплату; | |||
# сформувати загальний фінансовий звіт; | |||
# перевірити особистий кабінет клієнта; | |||
# перевірити журнал змін. | |||
== Критерії оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Критерій | |||
! Бали | |||
! Що перевіряється | |||
|- | |||
| Реалізація бази клієнтів, відправлень і хостинг-послуг | |||
| 20 | |||
| Єдина база клієнтів, поштові відправлення, кур’єри, відділення, тарифи, хостинг-послуги, сервери, домени | |||
|- | |||
| Управління оплатами і виставлення рахунків | |||
| 20 | |||
| Рахунки на доставку і хостинг, часткові оплати, повні оплати, борги, PDF-документи | |||
|- | |- | ||
| | | Контроль продовження послуг і статусів | ||
|20 | | 20 | ||
| Статуси доставки, трекінг, статуси хостингу, дати завершення, продовження, сповіщення | |||
|- | |||
| Звіти по доходах | |||
| 20 | |||
| Окремі звіти по доставці, хостингу, боргах, доменах, кур’єрах і загальний фінансовий звіт | |||
|- | |||
| Інтерактивність через AJAX і мобільна адаптивність | |||
| 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> | |||
== Очікуваний результат == | |||
У результаті виконання атестаційного завдання має бути створений мультисервісний модуль у K2 ERP для компанії, що поєднує поштову доставку і хостингові послуги. | |||
Модуль має підтримувати єдину базу клієнтів, відправлення, кур’єрів, пункти обслуговування, тарифи доставки, трекінг, хостингові тарифи, сервери, домени, хостингові послуги, рахунки, оплати, продовження, сповіщення, особистий кабінет клієнта, адмін-панель, звіти, AJAX-інтерактив і журнал змін. | |||
== Примітка == | == Примітка == | ||
* | Єдина ERP-система для поштової служби та хостингової компанії дозволяє управляти кількома напрямками бізнесу через один інтерфейс. | ||
* | |||
* | Це знижує витрати на облік, об’єднує клієнтську базу, спрощує фінанси, підвищує якість сервісу і дозволяє бачити прибутковість кожного напрямку окремо. | ||
== Коротко == | |||
{| class="wikitable" style="width:100%;" | |||
! Питання | |||
! Відповідь | |||
|- | |||
| Що потрібно створити? | |||
| Мультисервісний модуль: поштова доставка + хостинг | |||
|- | |||
| Що є спільним? | |||
| Клієнти, рахунки, оплати, кабінет клієнта, фінансові звіти | |||
|- | |||
| Що окреме для пошти? | |||
| Відправлення, кур’єри, відділення, тарифи доставки, трекінг | |||
|- | |||
| Що окреме для хостингу? | |||
| Тарифи, сервери, домени, хостинг-послуги, продовження | |||
|- | |||
| Що потрібно контролювати? | |||
| Статуси доставок, строки хостинг-послуг, рахунки, оплати, борги | |||
|- | |||
| Які документи потрібні? | |||
| Транспортні накладні, рахунки, акти, PDF-звіти | |||
|- | |||
| Які звіти потрібні? | |||
| Доставки, кур’єри, хостинг, домени, борги, загальний фінансовий звіт | |||
|- | |||
| Що є критичною вимогою? | |||
| Один клієнт має бачити всі свої доставки, хостингові послуги, рахунки й оплати в одному кабінеті | |||
|} | |||
== Див. також == | |||
* [[K2 Cloud ERP|K2 ERP]] | |||
* [[K2 ERP]] | |||
* [[Атестаційні завдання K2 ERP]] | |||
* [[Хостинг]] | |||
* [[Датацентр, інтернет-провайдер]] | |||
* [[Реєстратор доменів]] | |||
* [[CRM]] | |||
* [[Каса]] | |||
* [[Рахунок на оплату]] | |||
* [[Особистий кабінет]] | |||
* [[Логістика]] | |||
* [[Кур'єрська доставка]] | |||
* [[Трекінг відправлень]] | |||
* [[AJAX]] | |||
[[Категорія:K2 ERP]] | |||
[[Категорія:Атестаційні завдання K2]] | |||
[[Категорія:Поштова служба]] | |||
[[Категорія:Хостинг]] | |||
[[Категорія:Логістика]] | |||
[[Категорія:Білінг]] | |||
[[Категорія:CRM]] | |||
[[Категорія:Корпоративна Wiki]] | |||
Поточна версія на 20:51, 1 травня 2026
Атестаційне завдання K2 ERP — Поштова служба + Хостинг — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні мультисервісного модуля для компанії, яка одночасно надає послуги поштової доставки та хостингові послуги.
Модуль має забезпечувати спільну базу клієнтів, єдину фінансову систему, окремі журнали для відправлень і хостингових послуг, контроль статусів, оплат, продовжень, сповіщень, особистий кабінет клієнта, адмін-панель і звіти по кожному напрямку бізнесу.
Коротко. Потрібно реалізувати мультисервісну ERP-систему: клієнти, поштові відправлення, кур’єри, відділення, тарифи доставки, хостингові тарифи, сервери, домени, хостинг-послуги, рахунки, оплати, статуси, продовження, сповіщення, кабінет клієнта, адмін-панель і звіти.
Назва завдання
Модуль обліку клієнтів, послуг, замовлень, рахунків і статусів для мультисервісної компанії: Поштова доставка + Хостинг.
Мета завдання
Мета завдання — створити в K2 ERP модуль для компанії, яка має два різні напрями діяльності:
- поштова доставка;
- хостингові та доменні послуги.
Система повинна дозволяти:
- вести єдину базу клієнтів;
- вести поштові відправлення;
- вести пункти обслуговування;
- вести кур’єрів;
- вести маршрути доставки;
- контролювати статуси відправлень;
- формувати транспортні накладні;
- вести хостингові тарифні плани;
- вести сервери;
- вести домени;
- вести хостингові послуги клієнтів;
- контролювати дати завершення хостинг-послуг;
- формувати рахунки на доставку;
- формувати рахунки на хостинг;
- приймати оплати;
- бачити борги клієнтів;
- надсилати сповіщення;
- вести особистий кабінет клієнта;
- формувати окремі звіти по доставці;
- формувати окремі звіти по хостингу;
- формувати загальний фінансовий звіт.
Головний принцип. Клієнт має бути один у системі, навіть якщо він одночасно користується доставкою, хостингом, доменами та іншими послугами. Фінанси, рахунки й оплати мають обліковуватися централізовано.
Загальний бізнес-контекст
Компанія працює як мультисервісний оператор і надає два типи послуг.
Поштовий напрям:
- доставка посилок;
- доставка документів;
- міжнародні відправлення;
- кур’єрська доставка;
- доставка між відділеннями;
- адресна доставка.
Хостинговий напрям:
- shared hosting;
- VPS;
- VDS;
- dedicated server;
- домени;
- DNS;
- SSL-сертифікати;
- резервне копіювання;
- технічна підтримка.
Компанії потрібно:
- вести єдину базу клієнтів;
- бачити всі послуги клієнта в одному кабінеті;
- вести окремі операційні процеси для доставки і хостингу;
- мати спільний фінансовий модуль;
- контролювати статуси замовлень і послуг;
- автоматично формувати рахунки;
- надсилати повідомлення клієнтам;
- аналізувати доходи по кожному напрямку.
Основний бізнес-процес
Типовий процес для поштової доставки:
- клієнт створюється або обирається із бази;
- оформлюється відправлення;
- вказується відправник, одержувач, адреса, вага і тип доставки;
- система розраховує вартість;
- створюється рахунок або оплата на місці;
- відправлення отримує статус «Прийнято»;
- далі статуси змінюються: «Відправлено», «У транзиті», «На доставці», «Доставлено»;
- клієнт отримує сповіщення;
- система формує звіти по доставках.
Типовий процес для хостингу:
- клієнт створюється або обирається із бази;
- обирається тариф хостингу;
- створюється хостингова послуга;
- послуга прив’язується до сервера або домену;
- система формує рахунок;
- клієнт оплачує;
- послуга переходить у статус «Активна»;
- перед завершенням періоду система надсилає нагадування;
- після оплати послуга продовжується;
- система формує звіти по хостингових послугах.
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Клієнти | Єдина база фізичних і юридичних осіб |
| Пункти обслуговування | Відділення поштової служби |
| Кур’єри | Співробітники, які доставляють відправлення |
| Відправлення | Посилки, документи, вантажі |
| Маршрути | Напрями доставки |
| Тарифи доставки | Правила розрахунку вартості доставки |
| Хостингові тарифи | Пакети послуг хостингу |
| Сервери | Інфраструктура для хостингових послуг |
| Домени | Доменні імена клієнтів |
| Хостингові послуги | Активні або завершені послуги клієнтів |
| Рахунки | Документи на оплату доставки або хостингу |
| Оплати | Фактичні платежі клієнтів |
| Сповіщення | Повідомлення про статуси, рахунки, продовження |
| Кабінет клієнта | Перегляд доставок, хостингу, рахунків і оплат |
| Звіти | Аналітика по доставці, хостингу і фінансах |
Спільна база «Клієнти»
Клієнт може користуватися однією або кількома послугами.
Типи клієнтів
- фізична особа;
- ФОП;
- юридична особа;
- корпоративний клієнт;
- партнер;
- внутрішній клієнт.
Поля клієнта
| Поле | Опис |
|---|---|
| ПІБ або назва компанії | Назва клієнта |
| Тип клієнта | Фізична особа, ФОП, юридична особа |
| Основний контакт і логін | |
| Телефон | Контактний номер |
| Контактна особа | Для юридичних осіб |
| Адреса | Адреса клієнта |
| Дата реєстрації | Коли клієнт створений |
| Статус | Активний, заблокований, архівний |
| Коментар | Внутрішня примітка |
Послуги клієнта
У картці клієнта потрібно бачити:
- активні поштові відправлення;
- історію доставок;
- активні хостингові послуги;
- домени;
- рахунки;
- оплати;
- борги;
- сповіщення;
- тікети або звернення, якщо реалізовано.
Поштова частина
Довідник «Пункти обслуговування»
Пункти обслуговування — це відділення, де приймаються і видаються відправлення.
Поля пункту обслуговування
| Поле | Опис |
|---|---|
| Назва відділення | Наприклад: Відділення №1 |
| Адреса | Фактична адреса |
| Телефон | Контактний номер |
| Місто | Населений пункт |
| Графік роботи | Дні та години роботи |
| Відповідальний | Керівник або оператор відділення |
| Статус | Активне, тимчасово закрите, архівне |
Довідник «Кур’єри»
Кур’єри виконують доставку відправлень.
Поля кур’єра
| Поле | Опис |
|---|---|
| ПІБ | Повне ім’я кур’єра |
| Телефон | Контактний номер |
| Опціонально | |
| Місто / зона доставки | Територія роботи |
| Тип транспорту | Пішки, авто, мото, велосипед |
| Статус | Активний, відпустка, лікарняний, звільнений |
Довідник «Тарифи доставки»
Тарифи потрібні для розрахунку вартості доставки.
Варіанти тарифікації
- за вагою;
- за габаритами;
- за містом;
- за зоною доставки;
- за країною;
- за терміновістю;
- фіксована ціна;
- індивідуальна ціна для корпоративного клієнта.
Поля тарифу доставки
| Поле | Опис |
|---|---|
| Назва тарифу | Наприклад: Стандарт, Експрес, Міжнародний |
| Тип доставки | Документи, посилка, вантаж |
| Мінімальна вага | Початок діапазону |
| Максимальна вага | Кінець діапазону |
| Базова ціна | Початкова ціна |
| Ціна за кг | Додаткова ціна за вагу |
| Термін доставки | Орієнтовна кількість днів |
| Статус | Активний або архівний |
База «Відправлення»
Відправлення — головний об’єкт поштової частини.
Колонки бази відправлень
| Колонка | Опис |
|---|---|
| Номер відправлення | Унікальний трек-номер |
| Відправник | Клієнт або контакт відправника |
| Одержувач | Хто отримує |
| Адреса доставки | Куди доставити |
| Тип відправлення | Посилка, документи, вантаж |
| Вага | Вага відправлення |
| Вартість доставки | Розрахована сума |
| Статус | Прийнято, у транзиті, доставлено тощо |
| Кур’єр | Хто доставляє |
| Термін доставки | Планова дата доставки |
Поля відправлення
| Поле | Опис |
|---|---|
| Номер відправлення | Унікальний номер або трек-код |
| Відправник | Клієнт або особа, що відправляє |
| Телефон відправника | Контакт відправника |
| Одержувач | ПІБ або назва компанії |
| Телефон одержувача | Контакт одержувача |
| Адреса відправлення | Звідки відправлено |
| Адреса доставки | Куди доставити |
| Тип відправлення | Посилка, документи, вантаж |
| Вага | Вага у кг |
| Габарити | Довжина, ширина, висота, опціонально |
| Оголошена вартість | Опціонально |
| Вартість доставки | Розрахована або ручна |
| Кур’єр | Призначений виконавець |
| Пункт прийому | Де прийнято |
| Пункт видачі | Якщо доставка до відділення |
| Планова дата доставки | Очікувана дата |
| Статус | Поточний стан відправлення |
Статуси відправлення
| Статус | Значення |
|---|---|
| Створено | Відправлення створено в системі |
| Прийнято | Посилку прийнято у відділенні або кур’єром |
| Відправлено | Відправлення передано в доставку |
| У транзиті | Відправлення переміщується між пунктами |
| Прибуло у відділення | Відправлення готове до видачі |
| На доставці | Кур’єр доставляє одержувачу |
| Доставлено | Відправлення отримано |
| Не доставлено | Доставка не відбулася |
| Повернення | Відправлення повертається відправнику |
| Скасовано | Відправлення скасовано |
Трекінг відправлення
Система має зберігати історію статусів відправлення.
Поля трекінгу
| Поле | Опис |
|---|---|
| Відправлення | До якого відправлення запис |
| Дата і час | Коли змінився статус |
| Статус | Новий статус |
| Локація | Відділення, місто або зона |
| Користувач | Хто змінив статус |
| Коментар | Додаткова інформація |
Хостингова частина
Довідник «Хостингові тарифні плани»
Тариф описує тип хостингової послуги, характеристики та вартість.
Типи хостингових послуг
- shared hosting;
- VPS;
- VDS;
- dedicated server;
- domain;
- DNS;
- SSL;
- backup;
- email hosting;
- administration.
Поля тарифного плану
| Поле | Опис |
|---|---|
| Назва тарифу | Наприклад: Hosting Start, VPS 4GB |
| Тип послуги | Хостинг, VPS, домен, SSL тощо |
| Вартість на місяць | Ціна за місяць |
| Вартість на рік | Ціна за рік |
| Дисковий простір | Наприклад: 10 GB |
| RAM | Для VPS або серверів |
| CPU | Для VPS або серверів |
| Трафік | Ліміт або безліміт |
| Статус | Активний, прихований, архівний |
Довідник «Сервери»
Сервери використовуються для розміщення хостингових послуг.
Поля сервера
| Поле | Опис |
|---|---|
| Назва сервера | Hostname або внутрішня назва |
| Тип сервера | Shared, VPS-node, Dedicated, DNS, Mail |
| IP-адреса | Основна IP |
| Пул IP | Доступні IP-адреси |
| Локація | Датацентр або місто |
| Статус | Активний, на обслуговуванні, виведений |
База «Хостингові послуги»
Хостингова послуга — це активна або завершена послуга клієнта.
Колонки бази хостингових послуг
| Колонка | Опис |
|---|---|
| Клієнт | Власник послуги |
| Тип послуги | Хостинг, VPS, домен, SSL |
| Тариф | Обраний тарифний план |
| Сервер | Де розміщена послуга |
| Домен | Якщо прив’язано |
| Дата початку | Початок дії |
| Дата завершення | Кінець оплаченого періоду |
| Статус | Активна, припинена, очікує оплату, прострочена |
Статуси хостингової послуги
| Статус | Значення |
|---|---|
| Нова | Послугу створено |
| Очікує оплату | Рахунок виставлено, оплати немає |
| Активна | Послуга оплачена і працює |
| Завершується | До кінця періоду залишилось мало часу |
| Прострочена | Період завершився, оплати немає |
| Призупинена | Послугу тимчасово зупинено |
| Припинена | Послуга більше не надається |
База «Домени»
Домени можуть бути окремою послугою клієнта або прив’язкою до хостингу.
Поля домену
| Поле | Опис |
|---|---|
| Доменне ім’я | Наприклад: example.com |
| Клієнт | Власник домену |
| Реєстратор | Де зареєстровано |
| Дата реєстрації | Коли зареєстровано |
| Дата завершення | Коли завершується дія |
| DNS-сервери | NS-записи |
| Статус | Активний, завершується, протермінований, видалений |
Спільний фінансовий модуль
Фінансовий модуль має працювати для обох напрямків.
Рахунки можуть створюватися для
- поштової доставки;
- додаткового страхування відправлення;
- міжнародної доставки;
- хостингової послуги;
- продовження VPS;
- продовження домену;
- SSL-сертифіката;
- адміністрування;
- інших послуг.
Поля рахунку
| Поле | Опис |
|---|---|
| Номер рахунку | Унікальний номер |
| Клієнт | Кому виставлено рахунок |
| Напрям послуги | Доставка або хостинг |
| Об’єкт оплати | Відправлення, хостингова послуга, домен |
| Дата рахунку | Коли сформовано |
| Сума | Сума до оплати |
| Оплачено | Скільки оплачено |
| Борг | Залишок |
| Статус | Новий, очікує оплату, частково оплачено, оплачено, прострочено, скасовано |
Способи оплати
- готівка;
- банківська картка;
- банківський переказ;
- LiqPay;
- Stripe;
- PayPal;
- внутрішній баланс клієнта;
- ручна оплата оператором.
Поля оплати
| Поле | Опис |
|---|---|
| Клієнт | Хто оплатив |
| Рахунок | До якого рахунку прив’язана оплата |
| Дата оплати | Коли отримано оплату |
| Сума | Розмір платежу |
| Спосіб оплати | Готівка, картка, LiqPay, Stripe, PayPal тощо |
| Статус | Очікує, успішно, помилка, повернення |
| Коментар | Примітка оператора |
Особистий кабінет клієнта
Клієнт повинен бачити всі свої послуги в одному кабінеті.
У кабінеті клієнт бачить
- активні відправлення;
- історію доставок;
- трекінг відправлень;
- активні хостингові послуги;
- домени;
- дати завершення послуг;
- рахунки;
- оплати;
- борги;
- можливість завантажити PDF-рахунок;
- контактні дані;
- повідомлення;
- звернення до підтримки, якщо реалізовано.
Панель адміністратора
Адмін-панель має дозволяти керувати обома напрямками.
В адмін-панелі потрібно бачити
- клієнтів;
- відправлення;
- кур’єрів;
- відділення;
- тарифи доставки;
- хостингові тарифи;
- сервери;
- домени;
- хостингові послуги;
- рахунки;
- оплати;
- прострочені послуги;
- відправлення з проблемами;
- звіти.
Сповіщення
Система має підтримувати сповіщення клієнтів і операторів.
Події для поштових сповіщень
- відправлення прийнято;
- відправлення у транзиті;
- відправлення прибуло у відділення;
- відправлення передано кур’єру;
- відправлення доставлено;
- доставка не відбулася;
- потрібна додаткова оплата;
- відправлення повертається.
Події для хостингових сповіщень
- створено хостингову послугу;
- виставлено рахунок;
- рахунок оплачено;
- послуга завершується через 30 днів;
- послуга завершується через 7 днів;
- послуга прострочена;
- домен завершується;
- домен продовжено;
- послугу призупинено.
Звіти
Звіт «Доставки за період»
У звіті потрібно відображати:
- кількість відправлень;
- кількість доставлених;
- кількість недоставлених;
- суму доходу;
- середню вартість доставки;
- кількість повернень.
Звіт «Робота кур’єрів»
У звіті потрібно відображати:
- кур’єра;
- кількість доставок;
- кількість успішних доставок;
- кількість невдалих доставок;
- суму доставок;
- середній час доставки, якщо реалізовано.
Звіт «Хостингові послуги»
У звіті потрібно відображати:
- кількість активних послуг;
- кількість прострочених послуг;
- кількість послуг, що завершуються;
- суму доходу;
- кількість послуг по тарифах.
Звіт «Домени, що завершуються»
У звіті потрібно відображати:
- домен;
- клієнта;
- дату завершення;
- кількість днів до завершення;
- статус рахунку;
- статус домену.
Загальний фінансовий звіт
У звіті потрібно відображати:
- доходи від доставки;
- доходи від хостингу;
- загальний дохід;
- оплачені рахунки;
- неоплачені рахунки;
- борги клієнтів;
- частку кожного напрямку в доході.
Звіт «Борги клієнтів»
У звіті потрібно відображати:
- клієнта;
- напрям послуги;
- рахунок;
- суму рахунку;
- оплачено;
- борг;
- кількість днів прострочення.
AJAX-інтерактив
Інтерфейс має працювати швидко й без перезавантаження сторінок.
Через AJAX мають працювати:
- пошук клієнтів;
- створення відправлення;
- розрахунок вартості доставки;
- зміна статусу відправлення;
- призначення кур’єра;
- створення хостингової послуги;
- прив’язка сервера;
- створення рахунку;
- фіксація оплати;
- продовження хостинг-послуги;
- фільтрація відправлень;
- фільтрація хостинг-послуг;
- фільтрація рахунків;
- оновлення особистого кабінету;
- формування звітів.
Логування змін
Модуль повинен фіксувати ключові дії.
Журнал змін має зберігати:
- хто створив клієнта;
- хто створив відправлення;
- хто змінив статус відправлення;
- хто призначив кур’єра;
- хто створив тариф доставки;
- хто створив хостинговий тариф;
- хто створив хостингову послугу;
- хто змінив дату завершення послуги;
- хто створив домен;
- хто створив рахунок;
- хто зафіксував оплату;
- хто продовжив послугу;
- хто надіслав сповіщення;
- дату й час дії;
- старе та нове значення, якщо це можливо.
Права доступу
Модуль має підтримувати рольову модель.
| Роль | Можливості |
|---|---|
| Клієнт | Бачить власні доставки, хостингові послуги, домени, рахунки й оплати |
| Оператор поштової служби | Створює відправлення, змінює статуси, працює з відділеннями |
| Кур’єр | Бачить свої доставки, змінює статус доставки |
| Хостинг-оператор | Створює хостингові послуги, домени, рахунки на продовження |
| Технічний адміністратор | Керує серверами, IP, DNS і технічними параметрами |
| Бухгалтер | Працює з рахунками, оплатами, боргами і фінансовими звітами |
| Керівник | Бачить загальні звіти по доставці, хостингу і фінансах |
| Адміністратор системи | Налаштовує права, тарифи, довідники, шаблони і службові параметри |
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Fetch API або Axios |
| UI-компоненти | DataTables для клієнтів, відправлень, хостинг-послуг, рахунків; Select2 для пошуку клієнтів, тарифів, кур’єрів і серверів |
| Календар | FullCalendar для планування кур’єрів або технічних робіт, опціонально |
| Друк | PDF-транспортні накладні, рахунки, акти, звіти |
| Експорт | Excel або PDF для фінансових і операційних звітів |
| Сповіщення | Email або внутрішні повідомлення |
| Оплати | Готівка, картка, LiqPay, Stripe, PayPal або ручна оплата |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- клієнти;
- контактні особи;
- пункти обслуговування;
- кур’єри;
- тарифи доставки;
- відправлення;
- трекінг відправлень;
- хостингові тарифи;
- сервери;
- домени;
- хостингові послуги;
- рахунки;
- позиції рахунків;
- оплати;
- сповіщення;
- тікети підтримки, опціонально;
- журнал змін;
- права доступу;
- звіти.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій для поштової частини:
- створити клієнта;
- створити пункт обслуговування;
- створити кур’єра;
- створити тариф доставки;
- створити відправлення;
- розрахувати вартість доставки;
- сформувати рахунок;
- зафіксувати оплату;
- змінити статус відправлення на «Прийнято»;
- змінити статус на «У транзиті»;
- призначити кур’єра;
- змінити статус на «Доставлено»;
- перевірити історію трекінгу.
Мінімальний сценарій для хостингової частини:
- створити хостинговий тариф;
- створити сервер;
- створити домен клієнта;
- створити хостингову послугу;
- прив’язати послугу до клієнта;
- прив’язати послугу до сервера;
- сформувати рахунок на хостинг;
- зафіксувати оплату;
- змінити статус послуги на «Активна»;
- виконати продовження послуги;
- перевірити зміну дати завершення.
Мінімальний сценарій для спільного фінансового блоку:
- сформувати рахунок на доставку;
- сформувати рахунок на хостинг;
- зафіксувати часткову оплату;
- перевірити борг;
- зафіксувати повну оплату;
- сформувати загальний фінансовий звіт;
- перевірити особистий кабінет клієнта;
- перевірити журнал змін.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація бази клієнтів, відправлень і хостинг-послуг | 20 | Єдина база клієнтів, поштові відправлення, кур’єри, відділення, тарифи, хостинг-послуги, сервери, домени |
| Управління оплатами і виставлення рахунків | 20 | Рахунки на доставку і хостинг, часткові оплати, повні оплати, борги, PDF-документи |
| Контроль продовження послуг і статусів | 20 | Статуси доставки, трекінг, статуси хостингу, дати завершення, продовження, сповіщення |
| Звіти по доходах | 20 | Окремі звіти по доставці, хостингу, боргах, доменах, кур’єрах і загальний фінансовий звіт |
| Інтерактивність через AJAX і мобільна адаптивність | 20 | AJAX-оновлення статусів, пошук, фільтри, кабінет клієнта, зручність роботи з телефону |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Модуль повністю працює: клієнти, доставки, хостинг, домени, рахунки, оплати, статуси, кабінет клієнта і звіти реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не руйнують роботу мультисервісної компанії |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: клієнти, відправлення, хостингові послуги, рахунки, оплати, статуси або звіти |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити клієнта;
- неможливо створити відправлення;
- відправлення не має статусу;
- відправлення не має трекінгу;
- неможливо створити хостингову послугу;
- хостингова послуга не має дати початку або завершення;
- рахунок не прив’язується до клієнта;
- рахунок не прив’язується до доставки або хостинг-послуги;
- часткова оплата не змінює борг;
- повна оплата не змінює статус рахунку;
- продовження хостингової послуги не змінює дату завершення;
- клієнт у кабінеті бачить чужі послуги або рахунки;
- звіти не відповідають фактичним доставкам, послугам і оплатам;
- зміни статусів, рахунків і оплат не логуються.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти два базові цикли: доставка → рахунок → оплата → статус → трекінг → звіт та хостинг → рахунок → оплата → активація → продовження → звіт.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений мультисервісний модуль у K2 ERP для компанії, що поєднує поштову доставку і хостингові послуги.
Модуль має підтримувати єдину базу клієнтів, відправлення, кур’єрів, пункти обслуговування, тарифи доставки, трекінг, хостингові тарифи, сервери, домени, хостингові послуги, рахунки, оплати, продовження, сповіщення, особистий кабінет клієнта, адмін-панель, звіти, AJAX-інтерактив і журнал змін.
Примітка
Єдина ERP-система для поштової служби та хостингової компанії дозволяє управляти кількома напрямками бізнесу через один інтерфейс.
Це знижує витрати на облік, об’єднує клієнтську базу, спрощує фінанси, підвищує якість сервісу і дозволяє бачити прибутковість кожного напрямку окремо.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Мультисервісний модуль: поштова доставка + хостинг |
| Що є спільним? | Клієнти, рахунки, оплати, кабінет клієнта, фінансові звіти |
| Що окреме для пошти? | Відправлення, кур’єри, відділення, тарифи доставки, трекінг |
| Що окреме для хостингу? | Тарифи, сервери, домени, хостинг-послуги, продовження |
| Що потрібно контролювати? | Статуси доставок, строки хостинг-послуг, рахунки, оплати, борги |
| Які документи потрібні? | Транспортні накладні, рахунки, акти, PDF-звіти |
| Які звіти потрібні? | Доставки, кур’єри, хостинг, домени, борги, загальний фінансовий звіт |
| Що є критичною вимогою? | Один клієнт має бачити всі свої доставки, хостингові послуги, рахунки й оплати в одному кабінеті |