Атестаційні завдання K2 ERP/Хостинг
Атестаційне завдання 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, інтеграції з оплатами і панелями хостингу |