Атестаційні завдання 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]] | |||