Атестаційні завдання 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;"> | |||
'''Коротко.''' Потрібно реалізувати модуль хостинг-провайдера: клієнти, тарифи, сервери, IP-адреси, домени, DNS, послуги клієнтів, рахунки, оплати, автопродовження, сповіщення, особистий кабінет, адмін-панель, SLA, тікети підтримки, звіти й AJAX-інтерактив. | |||
</div> | |||
__TOC__ | |||
== Назва завдання == | |||
'''Модуль обліку клієнтів, тарифів, серверів, доменів і виставлення рахунків для хостинг-провайдера'''. | |||
== Мета завдання == | |||
Мета завдання — створити в K2 ERP модуль для автоматизації роботи хостингової компанії. | |||
Система повинна дозволяти: | |||
* вести клієнтів; | |||
* вести тарифні плани; | |||
* вести сервери; | |||
* вести IP-адреси; | |||
* вести домени клієнтів; | |||
* вести DNS-сервери; | |||
* створювати послуги клієнтів; | |||
* прив’язувати послуги до тарифів; | |||
* прив’язувати послуги до серверів; | |||
* контролювати період дії послуг; | |||
* автоматично формувати рахунки; | |||
* фіксувати оплати; | |||
* бачити борги клієнтів; | |||
* контролювати прострочені послуги; | |||
* надсилати нагадування про оплату і продовження; | |||
* підтримувати ручне та автоматичне продовження; | |||
* вести особистий кабінет клієнта; | |||
* вести адмін-панель оператора; | |||
* формувати акти, рахунки та інші PDF-документи; | |||
* формувати звіти по доходах, клієнтах, послугах, доменах і серверах. | |||
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;"> | |||
'''Головний принцип.''' Хостинг-провайдер має чітко бачити, які послуги активні, коли вони завершуються, хто оплатив, хто має борг, на якому сервері розміщена послуга і які клієнти потребують нагадування. | |||
</div> | |||
== Реальний бізнес-контекст == | == Реальний бізнес-контекст == | ||
* | Хостингова компанія надає клієнтам цифрові послуги: | ||
** VPS; | |||
* shared hosting; | |||
* | * VPS; | ||
* | * VDS; | ||
* | * dedicated server; | ||
* | * colocation; | ||
* реєстрація доменів; | |||
* супровід доменів; | |||
* DNS-хостинг; | |||
* SSL-сертифікати; | |||
* резервне копіювання; | |||
* поштовий хостинг; | |||
* адміністрування серверів; | |||
* додаткові технічні послуги. | |||
Компанії потрібно: | |||
* зберігати базу клієнтів; | |||
* вести активні послуги кожного клієнта; | |||
* контролювати строки завершення послуг; | |||
* виставляти рахунки; | |||
* фіксувати платежі; | |||
* надсилати нагадування; | |||
* запобігати випадковому відключенню оплачених послуг; | |||
* бачити фінансову статистику; | |||
* контролювати завантаження серверів; | |||
* швидко відповідати клієнтам через особистий кабінет або підтримку. | |||
== Основний бізнес-процес == | |||
Типовий процес роботи хостинг-провайдера виглядає так: | |||
# менеджер або клієнт створює обліковий запис; | |||
# клієнт обирає тариф; | |||
# система створює послугу клієнта; | |||
# послуга прив’язується до сервера, домену або IP-адреси; | |||
# система формує рахунок; | |||
# клієнт оплачує рахунок; | |||
# послуга переходить у статус '''«Активна»'''; | |||
# перед завершенням періоду система надсилає нагадування; | |||
# формується рахунок на продовження; | |||
# після оплати період дії послуги продовжується; | |||
# якщо оплати немає — послуга переходить у статус '''«Очікує оплату»''' або '''«Прострочена»'''; | |||
# адміністратор бачить прострочені послуги у звіті. | |||
== Основні об’єкти модуля == | |||
{| class="wikitable" style="width:100%;" | |||
! Об’єкт | |||
! Призначення | |||
|- | |||
| Клієнти | |||
| Фізичні особи, ФОП або компанії, що купують послуги | |||
|- | |||
| Тарифні плани | |||
| Пакети послуг із цінами та характеристиками | |||
|- | |||
| Сервери | |||
| Фізичні або віртуальні сервери провайдера | |||
|- | |||
| IP-адреси | |||
| Пул адрес, прив’язаний до серверів або клієнтів | |||
|- | |||
| Послуги клієнтів | |||
| Активні або завершені послуги клієнтів | |||
|- | |||
| Домени | |||
| Доменні імена клієнтів | |||
|- | |||
| DNS | |||
| DNS-сервери або DNS-записи, якщо реалізовано | |||
|- | |||
| Рахунки | |||
| Документи для оплати | |||
|- | |||
| Оплати | |||
| Фактичні платежі клієнтів | |||
|- | |||
| Продовження | |||
| Операції продовження послуг | |||
|- | |||
| Сповіщення | |||
| Email або внутрішні повідомлення клієнтам | |||
|- | |||
| Тікети підтримки | |||
| Звернення клієнтів, опціонально | |||
|- | |||
| Звіти | |||
| Аналітика по доходах, послугах, клієнтах і серверах | |||
|} | |||
== Довідник «Клієнти» == | |||
Клієнти — це користувачі або компанії, які купують хостингові послуги. | |||
== Типи клієнтів == | |||
* фізична особа; | |||
* ФОП; | |||
* юридична особа; | |||
* корпоративний клієнт; | |||
* партнер; | |||
* внутрішній клієнт. | |||
== Поля клієнта == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| ПІБ або назва компанії | |||
| Ім’я клієнта або назва організації | |||
|- | |||
| Тип клієнта | |||
| Фізична особа, ФОП, юридична особа | |||
|- | |||
| Email | |||
| Основний контакт і логін | |||
|- | |||
| Телефон | |||
| Контактний номер | |||
|- | |||
| Контактна особа | |||
| Для компаній | |||
|- | |||
| Дата реєстрації | |||
| Коли клієнт створений у системі | |||
|- | |||
| Адреса | |||
| Юридична або фактична адреса, якщо потрібно | |||
|- | |||
| Коментар | |||
| Внутрішні нотатки менеджера | |||
|- | |||
| Статус | |||
| Активний, заблокований, архівний | |||
|} | |||
== Довідник «Тарифні плани» == | |||
Тарифний план описує послугу, її параметри та вартість. | |||
== Типи тарифів == | |||
* shared hosting; | |||
* VPS; | |||
* VDS; | |||
* dedicated server; | |||
* colocation; | |||
* domain registration; | |||
* DNS hosting; | |||
* email hosting; | |||
* backup; | |||
* SSL certificate; | |||
* administration; | |||
* інші додаткові послуги. | |||
== Поля тарифного плану == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва тарифу | |||
| Наприклад: Hosting Start, VPS 4GB, Dedicated Pro | |||
|- | |||
| Тип послуги | |||
| Хостинг, VPS, домен, сервер, SSL, backup | |||
|- | |||
| Опис | |||
| Короткий опис послуги | |||
|- | |||
| Вартість за місяць | |||
| Ціна за 1 місяць | |||
|- | |||
| Вартість за рік | |||
| Ціна за 12 місяців | |||
|- | |||
| Дисковий простір | |||
| Наприклад: 10 GB, 50 GB, 200 GB | |||
|- | |||
| RAM | |||
| Для VPS / VDS / Dedicated | |||
|- | |||
| CPU | |||
| Кількість ядер або частка CPU | |||
|- | |||
| Трафік | |||
| Ліміт або безліміт | |||
|- | |||
| Кількість сайтів | |||
| Для shared hosting | |||
|- | |||
| Кількість баз даних | |||
| Для shared hosting | |||
|- | |||
| Статус | |||
| Активний, прихований, архівний | |||
|} | |||
== Довідник «Сервери» == | |||
Сервери потрібні для прив’язки послуг клієнтів до фізичної або віртуальної інфраструктури. | |||
== Типи серверів == | |||
* Shared; | |||
* VPS-node; | |||
* Dedicated; | |||
* Backup; | |||
* DNS; | |||
* Mail; | |||
* Database; | |||
* Storage; | |||
* Service. | |||
== Поля сервера == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва сервера | |||
| Внутрішня назва або hostname | |||
|- | |||
| Локація | |||
| Датацентр або місто | |||
|- | |||
| Тип сервера | |||
| Shared, VPS-node, Dedicated, DNS тощо | |||
|- | |||
| IP-адреса | |||
| Основна IP-адреса | |||
|- | |||
| Пул IP | |||
| Доступні IP-адреси | |||
|- | |||
| CPU | |||
| Характеристика процесора | |||
|- | |||
| RAM | |||
| Обсяг пам’яті | |||
|- | |||
| Disk | |||
| Обсяг дискового простору | |||
|- | |||
| Статус | |||
| Активний, на обслуговуванні, виведений | |||
|- | |||
| Коментар | |||
| Внутрішня примітка | |||
|} | |||
== Статуси сервера == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Активний | |||
| Сервер використовується | |||
|- | |||
| На обслуговуванні | |||
| Тимчасово недоступний для нових послуг | |||
|- | |||
| Перевантажений | |||
| Потрібна увага адміністратора | |||
|- | |||
| Резерв | |||
| Сервер готовий, але не використовується | |||
|- | |||
| Виведений | |||
| Сервер більше не використовується | |||
|} | |||
== Довідник «IP-адреси» == | |||
IP-адреси використовуються для серверів, VPS, dedicated-серверів або окремих послуг. | |||
== Поля IP-адреси == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| IP-адреса | |||
| IPv4 або IPv6 | |||
|- | |||
| Сервер | |||
| До якого сервера належить | |||
|- | |||
| Клієнт | |||
| Якщо адреса виділена клієнту | |||
|- | |||
| Послуга | |||
| До якої послуги прив’язана | |||
|- | |||
| Статус | |||
| Вільна, зайнята, резерв, заблокована | |||
|- | |||
| Коментар | |||
| Технічна примітка | |||
|} | |||
== База «Послуги клієнтів» == | |||
Послуга клієнта — це конкретний активний або завершений продукт, який купив клієнт. | |||
== Колонки бази послуг == | |||
{| class="wikitable" style="width:100%;" | |||
! Колонка | |||
! Опис | |||
|- | |||
| Клієнт | |||
| Власник послуги | |||
|- | |||
| Тип послуги | |||
| Hosting, VPS, Domain, SSL тощо | |||
|- | |||
| Тарифний план | |||
| Який тариф використовується | |||
|- | |||
| Сервер | |||
| Де розміщена послуга | |||
|- | |||
| Домен | |||
| Якщо послуга пов’язана з доменом | |||
|- | |||
| Дата початку | |||
| Початок дії | |||
|- | |||
| Дата завершення | |||
| Кінець оплаченого періоду | |||
|- | |||
| Період оплати | |||
| Місяць, квартал, рік | |||
|- | |||
| Статус | |||
| Активна, очікує оплату, прострочена, припинена | |||
|} | |||
== Поля послуги клієнта == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Номер послуги | |||
| Унікальний номер | |||
|- | |||
| Клієнт | |||
| Власник послуги | |||
|- | |||
| Тариф | |||
| Обраний тарифний план | |||
|- | |||
| Тип послуги | |||
| Хостинг, VPS, домен, сервер, SSL | |||
|- | |||
| Сервер | |||
| Сервер розміщення | |||
|- | |||
| IP-адреса | |||
| Якщо виділена | |||
|- | |||
| Домен | |||
| Якщо прив’язаний | |||
|- | |||
| Дата початку | |||
| Початок дії послуги | |||
|- | |||
| Дата завершення | |||
| Завершення оплаченого періоду | |||
|- | |||
| Автопродовження | |||
| Так або ні | |||
|- | |||
| Період оплати | |||
| Місяць, квартал, рік | |||
|- | |||
| Статус | |||
| Поточний стан послуги | |||
|- | |||
| Коментар | |||
| Службова примітка | |||
|} | |||
== Статуси послуг == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Нова | |||
| Послугу створено, але ще не активовано | |||
|- | |||
| Очікує оплату | |||
| Рахунок виставлено, оплати ще немає | |||
|- | |||
| Активна | |||
| Послуга оплачена і діє | |||
|- | |||
| Завершується | |||
| До завершення лишилось мало часу | |||
|- | |||
| Прострочена | |||
| Період дії завершився, оплати немає | |||
|- | |||
| Призупинена | |||
| Послуга тимчасово зупинена | |||
|- | |||
| Припинена | |||
| Послуга більше не надається | |||
|- | |||
| Архівна | |||
| Збережена для історії | |||
|} | |||
== База «Домени» == | |||
Домени можуть реєструватися провайдером або просто супроводжуватися в системі. | |||
== Поля домену == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Доменне ім’я | |||
| Наприклад: example.com | |||
|- | |||
| Клієнт | |||
| Власник домену | |||
|- | |||
| Реєстратор | |||
| Компанія-реєстратор | |||
|- | |||
| Зона домену | |||
| .com, .net, .ua, .org тощо | |||
|- | |||
| Дата реєстрації | |||
| Коли зареєстровано | |||
|- | |||
| Дата завершення | |||
| Коли завершується строк дії | |||
|- | |||
| DNS-сервери | |||
| NS-записи | |||
|- | |||
| Статус | |||
| Активний, завершується, протермінований, видалений | |||
|- | |||
| Автопродовження | |||
| Так або ні | |||
|} | |||
== Сповіщення по доменах == | |||
Система має надсилати нагадування: | |||
* за 30 днів до завершення; | |||
* за 15 днів до завершення; | |||
* за 7 днів до завершення; | |||
* у день завершення; | |||
* після прострочення, якщо домен не продовжено. | |||
== DNS, опціонально == | |||
Опціонально можна реалізувати простий облік DNS. | |||
== Типи DNS-записів == | |||
* A; | |||
* AAAA; | |||
* CNAME; | |||
* MX; | |||
* TXT; | |||
* NS; | |||
* SRV. | |||
== Поля DNS-запису == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Домен | |||
| До якого домену належить запис | |||
|- | |||
| Тип запису | |||
| A, MX, TXT тощо | |||
|- | |||
| Ім’я | |||
| Host або піддомен | |||
|- | |||
| Значення | |||
| IP, текст або інше значення | |||
|- | |||
| TTL | |||
| Час життя запису | |||
|- | |||
| Статус | |||
| Активний або вимкнений | |||
|} | |||
== Рахунки і оплати == | |||
Модуль має підтримувати виставлення рахунків і контроль оплат. | |||
== Рахунки формуються для == | |||
* нової послуги; | |||
* продовження послуги; | |||
* реєстрації домену; | |||
* продовження домену; | |||
* SSL-сертифіката; | |||
* адміністрування; | |||
* додаткових послуг; | |||
* разових робіт. | |||
== Поля рахунку == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Номер рахунку | |||
| Унікальний номер | |||
|- | |||
| Клієнт | |||
| Кому виставлено рахунок | |||
|- | |||
| Послуга | |||
| За яку послугу рахунок | |||
|- | |||
| Дата рахунку | |||
| Коли сформовано | |||
|- | |||
| Період | |||
| За який період оплата | |||
|- | |||
| Сума | |||
| Сума до оплати | |||
|- | |||
| Валюта | |||
| UAH, USD, EUR тощо | |||
|- | |||
| Оплачено | |||
| Скільки оплачено | |||
|- | |||
| Борг | |||
| Залишок до оплати | |||
|- | |||
| Статус | |||
| Новий, очікує оплату, частково оплачено, оплачено, прострочено, скасовано | |||
|} | |||
== Способи оплати == | |||
* LiqPay; | |||
* Stripe; | |||
* PayPal; | |||
* банківський переказ; | |||
* ручна оплата; | |||
* внутрішній баланс клієнта. | |||
== Поля оплати == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Клієнт | |||
| Хто оплатив | |||
|- | |||
| Рахунок | |||
| До якого рахунку прив’язана оплата | |||
|- | |||
| Дата оплати | |||
| Коли отримано оплату | |||
|- | |||
| Сума | |||
| Розмір платежу | |||
|- | |||
| Спосіб оплати | |||
| LiqPay, Stripe, PayPal, вручну тощо | |||
|- | |||
| Статус платежу | |||
| Очікує, успішно, помилка, повернення | |||
|- | |||
| Коментар | |||
| Примітка оператора | |||
|} | |||
== Автоматичне продовження послуг == | |||
Система повинна підтримувати логіку продовження. | |||
== Варіанти продовження == | |||
* ручне продовження адміністратором; | |||
* автоматичне продовження після оплати; | |||
* продовження з балансу клієнта; | |||
* продовження тільки після підтвердження менеджера. | |||
== Логіка продовження == | |||
# система знаходить послуги, які скоро завершуються; | |||
# формує рахунок на продовження; | |||
# надсилає клієнту повідомлення; | |||
# клієнт оплачує рахунок; | |||
# система продовжує дату завершення послуги; | |||
# статус послуги оновлюється на '''«Активна»'''; | |||
# операція потрапляє в журнал змін. | |||
== Особистий кабінет клієнта == | |||
Клієнт повинен мати доступ до особистого кабінету. | |||
== У кабінеті клієнт бачить == | |||
* свої послуги; | |||
* статуси послуг; | |||
* дати завершення; | |||
* домени; | |||
* рахунки; | |||
* оплати; | |||
* борги; | |||
* можливість продовження; | |||
* контактні дані; | |||
* історію звернень у підтримку; | |||
* документи для завантаження. | |||
== Панель адміністратора == | |||
Адміністратор або оператор має керувати всіма об’єктами системи. | |||
== В адмін-панелі потрібно бачити == | |||
* клієнтів; | |||
* активні послуги; | |||
* прострочені послуги; | |||
* рахунки; | |||
* оплати; | |||
* домени, що завершуються; | |||
* сервери; | |||
* тарифи; | |||
* сповіщення; | |||
* тікети підтримки; | |||
* фінансову статистику. | |||
== Тікети підтримки, опціонально == | |||
Модуль може містити просту систему звернень. | |||
== Поля тікета == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Клієнт | |||
| Хто звернувся | |||
|- | |||
| Послуга | |||
| До якої послуги звернення | |||
|- | |||
| Тема | |||
| Короткий опис | |||
|- | |||
| Опис | |||
| Деталі звернення | |||
|- | |||
| Пріоритет | |||
| Низький, середній, високий, критичний | |||
|- | |||
| Статус | |||
| Новий, в роботі, очікує клієнта, закритий | |||
|- | |||
| Відповідальний | |||
| Оператор або адміністратор | |||
|} | |||
== SLA, опціонально == | |||
Для корпоративних клієнтів можна реалізувати SLA. | |||
== | == SLA може містити == | ||
* час реакції; | |||
* час вирішення; | |||
* рівень доступності; | |||
* пріоритет підтримки; | |||
* відповідального менеджера; | |||
* спеціальні умови договору. | |||
==== | == Сповіщення == | ||
Система має підтримувати email або внутрішні повідомлення. | |||
==== | == Події для сповіщень == | ||
* | * створено нову послугу; | ||
* | * виставлено рахунок; | ||
* | * рахунок оплачено; | ||
* | * платіж не пройшов; | ||
* | * послуга завершується через 30 днів; | ||
* | * послуга завершується через 7 днів; | ||
* | * послуга прострочена; | ||
* | * домен завершується; | ||
* | * домен прострочений; | ||
* | * послугу продовжено; | ||
* | * послугу призупинено; | ||
* | * створено тікет підтримки; | ||
* | * відповідь у тікеті підтримки. | ||
==== | == Звіти == | ||
== Звіт «Активні послуги» == | |||
У звіті потрібно відображати: | |||
* клієнта; | |||
* тип послуги; | |||
* тариф; | |||
* сервер; | |||
* дату початку; | |||
* дату завершення; | |||
* статус; | |||
* суму оплати. | |||
== Звіт «Послуги, що завершуються» == | |||
У звіті потрібно відображати: | |||
* | * клієнта; | ||
* | * послугу; | ||
* | * дату завершення; | ||
* кількість днів до завершення; | |||
* статус рахунку; | |||
* чи надіслано нагадування. | |||
== | == Звіт «Домени, що завершуються» == | ||
У звіті потрібно відображати: | |||
* | * домен; | ||
* | * клієнта; | ||
* | * реєстратора; | ||
* | * дату завершення; | ||
* статус; | |||
* статус | * наявність рахунку на продовження. | ||
* | |||
== | == Звіт «Доходи по тарифах» == | ||
У звіті потрібно відображати: | |||
* тариф; | |||
* кількість активних послуг; | |||
* суму нарахувань; | |||
* суму оплат; | |||
* частку в загальному доході. | |||
== Звіт «Борги клієнтів» == | |||
У звіті потрібно відображати: | |||
* | * клієнта; | ||
* | * рахунок; | ||
** | * послугу; | ||
** | * суму рахунку; | ||
** | * оплачено; | ||
** | * борг; | ||
* | * кількість днів прострочення. | ||
** | |||
** | == Звіт «Завантаження серверів» == | ||
** | |||
* | У звіті потрібно відображати: | ||
** | |||
** | * сервер; | ||
** | * кількість послуг; | ||
* кількість клієнтів; | |||
* використані IP-адреси; | |||
* статус сервера; | |||
* коментар адміністратора. | |||
== AJAX-інтерактив == | |||
Інтерфейс має працювати швидко й без перезавантаження сторінок. | |||
Через AJAX мають працювати: | |||
* пошук клієнтів; | |||
* пошук тарифів; | |||
* створення послуги; | |||
* прив’язка послуги до сервера; | |||
* прив’язка домену; | |||
* формування рахунку; | |||
* фіксація оплати; | |||
* продовження послуги; | |||
* зміна статусу послуги; | |||
* фільтрація послуг; | |||
* фільтрація доменів; | |||
* фільтрація рахунків; | |||
* оновлення особистого кабінету; | |||
* створення тікета підтримки. | |||
== Логування змін == | |||
Модуль повинен фіксувати важливі дії. | |||
Журнал змін має зберігати: | |||
* хто створив клієнта; | |||
* хто створив тариф; | |||
* хто створив послугу; | |||
* хто змінив тариф послуги; | |||
* хто змінив дату завершення; | |||
* хто створив рахунок; | |||
* хто зафіксував оплату; | |||
* хто продовжив послугу; | |||
* хто призупинив послугу; | |||
* хто змінив сервер; | |||
* хто змінив IP-адресу; | |||
* хто додав домен; | |||
* хто змінив DNS-запис; | |||
* хто надіслав сповіщення; | |||
* хто закрив тікет; | |||
* дату й час дії; | |||
* старе та нове значення, якщо це можливо. | |||
== Права доступу == | |||
Модуль має підтримувати рольову модель. | |||
{| class="wikitable" style="width:100%;" | |||
! Роль | |||
! Можливості | |||
|- | |||
| Клієнт | |||
| Переглядає свої послуги, рахунки, оплати, домени, тікети | |||
|- | |||
| Оператор | |||
| Створює клієнтів, послуги, рахунки, фіксує звернення | |||
|- | |||
| Бухгалтер | |||
| Працює з рахунками, оплатами, боргами, актами і фінансовими звітами | |||
|- | |||
| Технічний адміністратор | |||
| Керує серверами, IP-адресами, технічними параметрами послуг | |||
|- | |||
| Менеджер | |||
| Переглядає клієнтів, договори, послуги, борги і звіти | |||
|- | |||
| Адміністратор системи | |||
| Налаштовує тарифи, права, шаблони, інтеграції і службові параметри | |||
|} | |||
== Технічні вимоги == | == Технічні вимоги == | ||
{| class="wikitable" | |||
!Параметр | {| class="wikitable" style="width:100%;" | ||
!Опис | ! Параметр | ||
! Опис | |||
|- | |- | ||
|Бекенд | | Бекенд | ||
|K2 Cloud ERP на Python або PHP | | K2 Cloud ERP на Python або PHP | ||
|- | |- | ||
| | | База даних | ||
|PostgreSQL або MySQL | | PostgreSQL або MySQL | ||
|- | |- | ||
|Фронтенд | | Фронтенд | ||
|HTML5, JavaScript | | HTML5, JavaScript | ||
|- | |- | ||
| | | AJAX | ||
| | | Fetch API або Axios | ||
|- | |- | ||
| | | UI-компоненти | ||
| | | DataTables для списків клієнтів, послуг, рахунків і доменів; Select2 для пошуку тарифів, клієнтів і серверів | ||
|- | |||
| Оплати | |||
| LiqPay, Stripe, PayPal або ручна фіксація оплат | |||
|- | |||
| Друк | |||
| PDF-рахунки, акти, звіти | |||
|- | |||
| Експорт | |||
| Excel або PDF для звітів | |||
|- | |||
| Сповіщення | |||
| Email або внутрішні повідомлення | |||
|- | |||
| API | |||
| Інтеграція з панелями хостингу, реєстраторами або платіжними шлюзами, опціонально | |||
|} | |} | ||
== Критерії | == Рекомендовані сутності бази даних == | ||
{| class="wikitable" | |||
!Критерій | Для реалізації задачі доцільно передбачити такі сутності: | ||
!Бали | |||
* клієнти; | |||
* контактні особи; | |||
* тарифні плани; | |||
* сервери; | |||
* IP-адреси; | |||
* послуги клієнтів; | |||
* домени; | |||
* DNS-записи; | |||
* рахунки; | |||
* позиції рахунків; | |||
* оплати; | |||
* продовження послуг; | |||
* сповіщення; | |||
* тікети підтримки; | |||
* SLA; | |||
* журнал змін; | |||
* звіти; | |||
* права доступу. | |||
== Практичне завдання == | |||
У межах атестації потрібно продемонструвати робочий сценарій. | |||
Мінімальний сценарій: | |||
# створити клієнта; | |||
# створити тарифний план; | |||
# створити сервер; | |||
# створити IP-адресу; | |||
# створити послугу клієнта; | |||
# прив’язати послугу до тарифу; | |||
# прив’язати послугу до сервера; | |||
# створити домен клієнта; | |||
# сформувати рахунок на оплату; | |||
# зафіксувати часткову оплату; | |||
# перевірити борг по рахунку; | |||
# зафіксувати повну оплату; | |||
# змінити статус послуги на '''«Активна»'''; | |||
# виконати продовження послуги; | |||
# перевірити зміну дати завершення; | |||
# створити нагадування про завершення домену; | |||
# сформувати звіт активних послуг; | |||
# сформувати звіт послуг, що завершуються; | |||
# сформувати звіт боргів клієнтів; | |||
# перевірити особистий кабінет клієнта; | |||
# перевірити журнал змін. | |||
== Критерії оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Критерій | |||
! Бали | |||
! Що перевіряється | |||
|- | |||
| Реалізація бази клієнтів, послуг, тарифів і доменів | |||
| 20 | |||
| Клієнти, тарифи, сервери, IP-адреси, послуги клієнтів, домени, DNS | |||
|- | |- | ||
| | | Управління оплатами і рахунками | ||
|20 | | 20 | ||
| Рахунки, позиції рахунків, часткові оплати, повні оплати, борги, PDF-документи | |||
|- | |- | ||
| | | Контроль продовження послуг і сповіщення | ||
|20 | | 20 | ||
| Дати завершення, автопродовження, нагадування, прострочені послуги, завершення доменів | |||
|- | |- | ||
| | | Інтерактивність через AJAX і особисті кабінети | ||
|20 | | 20 | ||
| AJAX-пошук, створення послуг, оплати, продовження, кабінет клієнта, тікети | |||
|- | |- | ||
| | | Масштабованість системи для великої кількості клієнтів | ||
|20 | | 20 | ||
| Фільтри, звіти, сервери, масове продовження, обробка великої кількості послуг | |||
|- | |- | ||
! Разом | |||
! 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. | |||
Модуль має підтримувати клієнтів, контактних осіб, тарифні плани, сервери, IP-адреси, послуги клієнтів, домени, DNS-записи, рахунки, оплати, продовження, сповіщення, особистий кабінет, тікети підтримки, SLA, звіти, AJAX-інтерактив і журнал змін. | |||
== Примітка == | == Примітка == | ||
ERP для хостинг-провайдера є критично важливою для обліку клієнтів, своєчасного виставлення рахунків, контролю продовжень, запобігання простроченню доменів і послуг, а також для зменшення ручної роботи операторів. | |||
Якісне управління послугами підвищує лояльність клієнтів, зменшує кількість помилок і дозволяє масштабувати бізнес без хаосу в оплатах та строках дії послуг. | |||
== Коротко == | |||
{| class="wikitable" style="width:100%;" | |||
! Питання | |||
! Відповідь | |||
|- | |||
| Що потрібно створити? | |||
| Модуль обліку хостинг-провайдера | |||
|- | |||
| Які довідники потрібні? | |||
| Клієнти, тарифи, сервери, IP-адреси, домени | |||
|- | |||
| Який головний процес? | |||
| Створення послуги, виставлення рахунку, оплата і продовження | |||
|- | |||
| Що потрібно контролювати? | |||
| Дати завершення послуг, домени, рахунки, борги, статуси оплат | |||
|- | |||
| Які документи потрібні? | |||
| Рахунки, акти, PDF-документи, звіти | |||
|- | |||
| Які звіти потрібні? | |||
| Активні послуги, послуги що завершуються, домени, борги, доходи, сервери | |||
|- | |||
| Що є критичною вимогою? | |||
| Оплата має змінювати статус рахунку і продовжувати послугу за правилами системи | |||
|- | |||
| Що бажано додати? | |||
| Особистий кабінет клієнта, тікети підтримки, SLA, DNS, інтеграції з оплатами і панелями хостингу | |||
|} | |||
== Див. також == | |||
* [[K2 Cloud ERP|K2 ERP]] | |||
* [[K2 ERP]] | |||
* [[Атестаційні завдання K2 ERP]] | |||
* [[Датацентр, інтернет-провайдер]] | |||
* [[Реєстратор доменів]] | |||
* [[CRM]] | |||
* [[Каса]] | |||
* [[Договір]] | |||
* [[Рахунок на оплату]] | |||
* [[Особистий кабінет]] | |||
* [[DNS]] | |||
* [[VPS]] | |||
* [[SLA]] | |||
* [[AJAX]] | |||
[[Категорія:K2 ERP]] | |||
[[Категорія:Атестаційні завдання K2]] | |||
[[Категорія:Хостинг]] | |||
[[Категорія:Датацентр]] | |||
[[Категорія:Білінг]] | |||
[[Категорія:Домени]] | |||
[[Категорія:CRM]] | |||
[[Категорія:Корпоративна Wiki]] | |||
Поточна версія на 20:46, 1 травня 2026
Атестаційне завдання K2 ERP — Хостинг — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля обліку клієнтів, тарифних планів, серверів, доменів, активних послуг, рахунків, оплат, продовжень, сповіщень і особистого кабінету клієнта для хостинг-провайдера.
Модуль має забезпечувати повний цикл роботи хостингової компанії: клієнт → тариф → послуга → сервер або домен → період дії → рахунок → оплата → продовження → сповіщення → звітність.
Коротко. Потрібно реалізувати модуль хостинг-провайдера: клієнти, тарифи, сервери, IP-адреси, домени, DNS, послуги клієнтів, рахунки, оплати, автопродовження, сповіщення, особистий кабінет, адмін-панель, SLA, тікети підтримки, звіти й AJAX-інтерактив.
Назва завдання
Модуль обліку клієнтів, тарифів, серверів, доменів і виставлення рахунків для хостинг-провайдера.
Мета завдання
Мета завдання — створити в K2 ERP модуль для автоматизації роботи хостингової компанії.
Система повинна дозволяти:
- вести клієнтів;
- вести тарифні плани;
- вести сервери;
- вести IP-адреси;
- вести домени клієнтів;
- вести DNS-сервери;
- створювати послуги клієнтів;
- прив’язувати послуги до тарифів;
- прив’язувати послуги до серверів;
- контролювати період дії послуг;
- автоматично формувати рахунки;
- фіксувати оплати;
- бачити борги клієнтів;
- контролювати прострочені послуги;
- надсилати нагадування про оплату і продовження;
- підтримувати ручне та автоматичне продовження;
- вести особистий кабінет клієнта;
- вести адмін-панель оператора;
- формувати акти, рахунки та інші PDF-документи;
- формувати звіти по доходах, клієнтах, послугах, доменах і серверах.
Головний принцип. Хостинг-провайдер має чітко бачити, які послуги активні, коли вони завершуються, хто оплатив, хто має борг, на якому сервері розміщена послуга і які клієнти потребують нагадування.
Реальний бізнес-контекст
Хостингова компанія надає клієнтам цифрові послуги:
- shared hosting;
- VPS;
- VDS;
- dedicated server;
- colocation;
- реєстрація доменів;
- супровід доменів;
- DNS-хостинг;
- SSL-сертифікати;
- резервне копіювання;
- поштовий хостинг;
- адміністрування серверів;
- додаткові технічні послуги.
Компанії потрібно:
- зберігати базу клієнтів;
- вести активні послуги кожного клієнта;
- контролювати строки завершення послуг;
- виставляти рахунки;
- фіксувати платежі;
- надсилати нагадування;
- запобігати випадковому відключенню оплачених послуг;
- бачити фінансову статистику;
- контролювати завантаження серверів;
- швидко відповідати клієнтам через особистий кабінет або підтримку.
Основний бізнес-процес
Типовий процес роботи хостинг-провайдера виглядає так:
- менеджер або клієнт створює обліковий запис;
- клієнт обирає тариф;
- система створює послугу клієнта;
- послуга прив’язується до сервера, домену або IP-адреси;
- система формує рахунок;
- клієнт оплачує рахунок;
- послуга переходить у статус «Активна»;
- перед завершенням періоду система надсилає нагадування;
- формується рахунок на продовження;
- після оплати період дії послуги продовжується;
- якщо оплати немає — послуга переходить у статус «Очікує оплату» або «Прострочена»;
- адміністратор бачить прострочені послуги у звіті.
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Клієнти | Фізичні особи, ФОП або компанії, що купують послуги |
| Тарифні плани | Пакети послуг із цінами та характеристиками |
| Сервери | Фізичні або віртуальні сервери провайдера |
| IP-адреси | Пул адрес, прив’язаний до серверів або клієнтів |
| Послуги клієнтів | Активні або завершені послуги клієнтів |
| Домени | Доменні імена клієнтів |
| DNS | DNS-сервери або DNS-записи, якщо реалізовано |
| Рахунки | Документи для оплати |
| Оплати | Фактичні платежі клієнтів |
| Продовження | Операції продовження послуг |
| Сповіщення | Email або внутрішні повідомлення клієнтам |
| Тікети підтримки | Звернення клієнтів, опціонально |
| Звіти | Аналітика по доходах, послугах, клієнтах і серверах |
Довідник «Клієнти»
Клієнти — це користувачі або компанії, які купують хостингові послуги.
Типи клієнтів
- фізична особа;
- ФОП;
- юридична особа;
- корпоративний клієнт;
- партнер;
- внутрішній клієнт.
Поля клієнта
| Поле | Опис |
|---|---|
| ПІБ або назва компанії | Ім’я клієнта або назва організації |
| Тип клієнта | Фізична особа, ФОП, юридична особа |
| Основний контакт і логін | |
| Телефон | Контактний номер |
| Контактна особа | Для компаній |
| Дата реєстрації | Коли клієнт створений у системі |
| Адреса | Юридична або фактична адреса, якщо потрібно |
| Коментар | Внутрішні нотатки менеджера |
| Статус | Активний, заблокований, архівний |
Довідник «Тарифні плани»
Тарифний план описує послугу, її параметри та вартість.
Типи тарифів
- shared hosting;
- VPS;
- VDS;
- dedicated server;
- colocation;
- domain registration;
- DNS hosting;
- email hosting;
- backup;
- SSL certificate;
- administration;
- інші додаткові послуги.
Поля тарифного плану
| Поле | Опис |
|---|---|
| Назва тарифу | Наприклад: Hosting Start, VPS 4GB, Dedicated Pro |
| Тип послуги | Хостинг, VPS, домен, сервер, SSL, backup |
| Опис | Короткий опис послуги |
| Вартість за місяць | Ціна за 1 місяць |
| Вартість за рік | Ціна за 12 місяців |
| Дисковий простір | Наприклад: 10 GB, 50 GB, 200 GB |
| RAM | Для VPS / VDS / Dedicated |
| CPU | Кількість ядер або частка CPU |
| Трафік | Ліміт або безліміт |
| Кількість сайтів | Для shared hosting |
| Кількість баз даних | Для shared hosting |
| Статус | Активний, прихований, архівний |
Довідник «Сервери»
Сервери потрібні для прив’язки послуг клієнтів до фізичної або віртуальної інфраструктури.
Типи серверів
- Shared;
- VPS-node;
- Dedicated;
- Backup;
- DNS;
- Mail;
- Database;
- Storage;
- Service.
Поля сервера
| Поле | Опис |
|---|---|
| Назва сервера | Внутрішня назва або hostname |
| Локація | Датацентр або місто |
| Тип сервера | Shared, VPS-node, Dedicated, DNS тощо |
| IP-адреса | Основна IP-адреса |
| Пул IP | Доступні IP-адреси |
| CPU | Характеристика процесора |
| RAM | Обсяг пам’яті |
| Disk | Обсяг дискового простору |
| Статус | Активний, на обслуговуванні, виведений |
| Коментар | Внутрішня примітка |
Статуси сервера
| Статус | Значення |
|---|---|
| Активний | Сервер використовується |
| На обслуговуванні | Тимчасово недоступний для нових послуг |
| Перевантажений | Потрібна увага адміністратора |
| Резерв | Сервер готовий, але не використовується |
| Виведений | Сервер більше не використовується |
Довідник «IP-адреси»
IP-адреси використовуються для серверів, VPS, dedicated-серверів або окремих послуг.
Поля IP-адреси
| Поле | Опис |
|---|---|
| IP-адреса | IPv4 або IPv6 |
| Сервер | До якого сервера належить |
| Клієнт | Якщо адреса виділена клієнту |
| Послуга | До якої послуги прив’язана |
| Статус | Вільна, зайнята, резерв, заблокована |
| Коментар | Технічна примітка |
База «Послуги клієнтів»
Послуга клієнта — це конкретний активний або завершений продукт, який купив клієнт.
Колонки бази послуг
| Колонка | Опис |
|---|---|
| Клієнт | Власник послуги |
| Тип послуги | Hosting, VPS, Domain, SSL тощо |
| Тарифний план | Який тариф використовується |
| Сервер | Де розміщена послуга |
| Домен | Якщо послуга пов’язана з доменом |
| Дата початку | Початок дії |
| Дата завершення | Кінець оплаченого періоду |
| Період оплати | Місяць, квартал, рік |
| Статус | Активна, очікує оплату, прострочена, припинена |
Поля послуги клієнта
| Поле | Опис |
|---|---|
| Номер послуги | Унікальний номер |
| Клієнт | Власник послуги |
| Тариф | Обраний тарифний план |
| Тип послуги | Хостинг, VPS, домен, сервер, SSL |
| Сервер | Сервер розміщення |
| IP-адреса | Якщо виділена |
| Домен | Якщо прив’язаний |
| Дата початку | Початок дії послуги |
| Дата завершення | Завершення оплаченого періоду |
| Автопродовження | Так або ні |
| Період оплати | Місяць, квартал, рік |
| Статус | Поточний стан послуги |
| Коментар | Службова примітка |
Статуси послуг
| Статус | Значення |
|---|---|
| Нова | Послугу створено, але ще не активовано |
| Очікує оплату | Рахунок виставлено, оплати ще немає |
| Активна | Послуга оплачена і діє |
| Завершується | До завершення лишилось мало часу |
| Прострочена | Період дії завершився, оплати немає |
| Призупинена | Послуга тимчасово зупинена |
| Припинена | Послуга більше не надається |
| Архівна | Збережена для історії |
База «Домени»
Домени можуть реєструватися провайдером або просто супроводжуватися в системі.
Поля домену
| Поле | Опис |
|---|---|
| Доменне ім’я | Наприклад: example.com |
| Клієнт | Власник домену |
| Реєстратор | Компанія-реєстратор |
| Зона домену | .com, .net, .ua, .org тощо |
| Дата реєстрації | Коли зареєстровано |
| Дата завершення | Коли завершується строк дії |
| DNS-сервери | NS-записи |
| Статус | Активний, завершується, протермінований, видалений |
| Автопродовження | Так або ні |
Сповіщення по доменах
Система має надсилати нагадування:
- за 30 днів до завершення;
- за 15 днів до завершення;
- за 7 днів до завершення;
- у день завершення;
- після прострочення, якщо домен не продовжено.
DNS, опціонально
Опціонально можна реалізувати простий облік DNS.
Типи DNS-записів
- A;
- AAAA;
- CNAME;
- MX;
- TXT;
- NS;
- SRV.
Поля DNS-запису
| Поле | Опис |
|---|---|
| Домен | До якого домену належить запис |
| Тип запису | A, MX, TXT тощо |
| Ім’я | Host або піддомен |
| Значення | IP, текст або інше значення |
| TTL | Час життя запису |
| Статус | Активний або вимкнений |
Рахунки і оплати
Модуль має підтримувати виставлення рахунків і контроль оплат.
Рахунки формуються для
- нової послуги;
- продовження послуги;
- реєстрації домену;
- продовження домену;
- SSL-сертифіката;
- адміністрування;
- додаткових послуг;
- разових робіт.
Поля рахунку
| Поле | Опис |
|---|---|
| Номер рахунку | Унікальний номер |
| Клієнт | Кому виставлено рахунок |
| Послуга | За яку послугу рахунок |
| Дата рахунку | Коли сформовано |
| Період | За який період оплата |
| Сума | Сума до оплати |
| Валюта | UAH, USD, EUR тощо |
| Оплачено | Скільки оплачено |
| Борг | Залишок до оплати |
| Статус | Новий, очікує оплату, частково оплачено, оплачено, прострочено, скасовано |
Способи оплати
- LiqPay;
- Stripe;
- PayPal;
- банківський переказ;
- ручна оплата;
- внутрішній баланс клієнта.
Поля оплати
| Поле | Опис |
|---|---|
| Клієнт | Хто оплатив |
| Рахунок | До якого рахунку прив’язана оплата |
| Дата оплати | Коли отримано оплату |
| Сума | Розмір платежу |
| Спосіб оплати | LiqPay, Stripe, PayPal, вручну тощо |
| Статус платежу | Очікує, успішно, помилка, повернення |
| Коментар | Примітка оператора |
Автоматичне продовження послуг
Система повинна підтримувати логіку продовження.
Варіанти продовження
- ручне продовження адміністратором;
- автоматичне продовження після оплати;
- продовження з балансу клієнта;
- продовження тільки після підтвердження менеджера.
Логіка продовження
- система знаходить послуги, які скоро завершуються;
- формує рахунок на продовження;
- надсилає клієнту повідомлення;
- клієнт оплачує рахунок;
- система продовжує дату завершення послуги;
- статус послуги оновлюється на «Активна»;
- операція потрапляє в журнал змін.
Особистий кабінет клієнта
Клієнт повинен мати доступ до особистого кабінету.
У кабінеті клієнт бачить
- свої послуги;
- статуси послуг;
- дати завершення;
- домени;
- рахунки;
- оплати;
- борги;
- можливість продовження;
- контактні дані;
- історію звернень у підтримку;
- документи для завантаження.
Панель адміністратора
Адміністратор або оператор має керувати всіма об’єктами системи.
В адмін-панелі потрібно бачити
- клієнтів;
- активні послуги;
- прострочені послуги;
- рахунки;
- оплати;
- домени, що завершуються;
- сервери;
- тарифи;
- сповіщення;
- тікети підтримки;
- фінансову статистику.
Тікети підтримки, опціонально
Модуль може містити просту систему звернень.
Поля тікета
| Поле | Опис |
|---|---|
| Клієнт | Хто звернувся |
| Послуга | До якої послуги звернення |
| Тема | Короткий опис |
| Опис | Деталі звернення |
| Пріоритет | Низький, середній, високий, критичний |
| Статус | Новий, в роботі, очікує клієнта, закритий |
| Відповідальний | Оператор або адміністратор |
SLA, опціонально
Для корпоративних клієнтів можна реалізувати SLA.
SLA може містити
- час реакції;
- час вирішення;
- рівень доступності;
- пріоритет підтримки;
- відповідального менеджера;
- спеціальні умови договору.
Сповіщення
Система має підтримувати email або внутрішні повідомлення.
Події для сповіщень
- створено нову послугу;
- виставлено рахунок;
- рахунок оплачено;
- платіж не пройшов;
- послуга завершується через 30 днів;
- послуга завершується через 7 днів;
- послуга прострочена;
- домен завершується;
- домен прострочений;
- послугу продовжено;
- послугу призупинено;
- створено тікет підтримки;
- відповідь у тікеті підтримки.
Звіти
Звіт «Активні послуги»
У звіті потрібно відображати:
- клієнта;
- тип послуги;
- тариф;
- сервер;
- дату початку;
- дату завершення;
- статус;
- суму оплати.
Звіт «Послуги, що завершуються»
У звіті потрібно відображати:
- клієнта;
- послугу;
- дату завершення;
- кількість днів до завершення;
- статус рахунку;
- чи надіслано нагадування.
Звіт «Домени, що завершуються»
У звіті потрібно відображати:
- домен;
- клієнта;
- реєстратора;
- дату завершення;
- статус;
- наявність рахунку на продовження.
Звіт «Доходи по тарифах»
У звіті потрібно відображати:
- тариф;
- кількість активних послуг;
- суму нарахувань;
- суму оплат;
- частку в загальному доході.
Звіт «Борги клієнтів»
У звіті потрібно відображати:
- клієнта;
- рахунок;
- послугу;
- суму рахунку;
- оплачено;
- борг;
- кількість днів прострочення.
Звіт «Завантаження серверів»
У звіті потрібно відображати:
- сервер;
- кількість послуг;
- кількість клієнтів;
- використані IP-адреси;
- статус сервера;
- коментар адміністратора.
AJAX-інтерактив
Інтерфейс має працювати швидко й без перезавантаження сторінок.
Через AJAX мають працювати:
- пошук клієнтів;
- пошук тарифів;
- створення послуги;
- прив’язка послуги до сервера;
- прив’язка домену;
- формування рахунку;
- фіксація оплати;
- продовження послуги;
- зміна статусу послуги;
- фільтрація послуг;
- фільтрація доменів;
- фільтрація рахунків;
- оновлення особистого кабінету;
- створення тікета підтримки.
Логування змін
Модуль повинен фіксувати важливі дії.
Журнал змін має зберігати:
- хто створив клієнта;
- хто створив тариф;
- хто створив послугу;
- хто змінив тариф послуги;
- хто змінив дату завершення;
- хто створив рахунок;
- хто зафіксував оплату;
- хто продовжив послугу;
- хто призупинив послугу;
- хто змінив сервер;
- хто змінив IP-адресу;
- хто додав домен;
- хто змінив DNS-запис;
- хто надіслав сповіщення;
- хто закрив тікет;
- дату й час дії;
- старе та нове значення, якщо це можливо.
Права доступу
Модуль має підтримувати рольову модель.
| Роль | Можливості |
|---|---|
| Клієнт | Переглядає свої послуги, рахунки, оплати, домени, тікети |
| Оператор | Створює клієнтів, послуги, рахунки, фіксує звернення |
| Бухгалтер | Працює з рахунками, оплатами, боргами, актами і фінансовими звітами |
| Технічний адміністратор | Керує серверами, IP-адресами, технічними параметрами послуг |
| Менеджер | Переглядає клієнтів, договори, послуги, борги і звіти |
| Адміністратор системи | Налаштовує тарифи, права, шаблони, інтеграції і службові параметри |
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Fetch API або Axios |
| UI-компоненти | DataTables для списків клієнтів, послуг, рахунків і доменів; Select2 для пошуку тарифів, клієнтів і серверів |
| Оплати | LiqPay, Stripe, PayPal або ручна фіксація оплат |
| Друк | PDF-рахунки, акти, звіти |
| Експорт | Excel або PDF для звітів |
| Сповіщення | Email або внутрішні повідомлення |
| API | Інтеграція з панелями хостингу, реєстраторами або платіжними шлюзами, опціонально |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- клієнти;
- контактні особи;
- тарифні плани;
- сервери;
- IP-адреси;
- послуги клієнтів;
- домени;
- DNS-записи;
- рахунки;
- позиції рахунків;
- оплати;
- продовження послуг;
- сповіщення;
- тікети підтримки;
- SLA;
- журнал змін;
- звіти;
- права доступу.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
- створити клієнта;
- створити тарифний план;
- створити сервер;
- створити IP-адресу;
- створити послугу клієнта;
- прив’язати послугу до тарифу;
- прив’язати послугу до сервера;
- створити домен клієнта;
- сформувати рахунок на оплату;
- зафіксувати часткову оплату;
- перевірити борг по рахунку;
- зафіксувати повну оплату;
- змінити статус послуги на «Активна»;
- виконати продовження послуги;
- перевірити зміну дати завершення;
- створити нагадування про завершення домену;
- сформувати звіт активних послуг;
- сформувати звіт послуг, що завершуються;
- сформувати звіт боргів клієнтів;
- перевірити особистий кабінет клієнта;
- перевірити журнал змін.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація бази клієнтів, послуг, тарифів і доменів | 20 | Клієнти, тарифи, сервери, IP-адреси, послуги клієнтів, домени, DNS |
| Управління оплатами і рахунками | 20 | Рахунки, позиції рахунків, часткові оплати, повні оплати, борги, PDF-документи |
| Контроль продовження послуг і сповіщення | 20 | Дати завершення, автопродовження, нагадування, прострочені послуги, завершення доменів |
| Інтерактивність через AJAX і особисті кабінети | 20 | AJAX-пошук, створення послуг, оплати, продовження, кабінет клієнта, тікети |
| Масштабованість системи для великої кількості клієнтів | 20 | Фільтри, звіти, сервери, масове продовження, обробка великої кількості послуг |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Модуль повністю працює: клієнти, тарифи, сервери, послуги, домени, рахунки, оплати, продовження, кабінет клієнта і звіти реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не руйнують процес роботи хостинг-провайдера |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: клієнти, тарифи, послуги, рахунки, оплати, продовження або звіти |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити клієнта;
- неможливо створити тариф;
- неможливо створити послугу клієнта;
- послуга не має дати початку або завершення;
- послуга не прив’язується до клієнта;
- рахунок не прив’язується до послуги;
- часткова оплата не змінює борг;
- повна оплата не змінює статус рахунку;
- продовження не змінює дату завершення послуги;
- система не показує прострочені послуги;
- система не показує домени, що завершуються;
- клієнт бачить чужі послуги в особистому кабінеті;
- звіти не відповідають фактичним рахункам, оплатам і послугам;
- зміни оплат, послуг і продовжень не логуються.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл хостинг-провайдера: клієнт → тариф → послуга → рахунок → оплата → активація → продовження → сповіщення → звіт.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений модуль хостинг-провайдера в K2 ERP.
Модуль має підтримувати клієнтів, контактних осіб, тарифні плани, сервери, IP-адреси, послуги клієнтів, домени, DNS-записи, рахунки, оплати, продовження, сповіщення, особистий кабінет, тікети підтримки, SLA, звіти, AJAX-інтерактив і журнал змін.
Примітка
ERP для хостинг-провайдера є критично важливою для обліку клієнтів, своєчасного виставлення рахунків, контролю продовжень, запобігання простроченню доменів і послуг, а також для зменшення ручної роботи операторів.
Якісне управління послугами підвищує лояльність клієнтів, зменшує кількість помилок і дозволяє масштабувати бізнес без хаосу в оплатах та строках дії послуг.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Модуль обліку хостинг-провайдера |
| Які довідники потрібні? | Клієнти, тарифи, сервери, IP-адреси, домени |
| Який головний процес? | Створення послуги, виставлення рахунку, оплата і продовження |
| Що потрібно контролювати? | Дати завершення послуг, домени, рахунки, борги, статуси оплат |
| Які документи потрібні? | Рахунки, акти, PDF-документи, звіти |
| Які звіти потрібні? | Активні послуги, послуги що завершуються, домени, борги, доходи, сервери |
| Що є критичною вимогою? | Оплата має змінювати статус рахунку і продовжувати послугу за правилами системи |
| Що бажано додати? | Особистий кабінет клієнта, тікети підтримки, SLA, DNS, інтеграції з оплатами і панелями хостингу |