Атестаційні завдання K2 ERP/Реєстратор доменів: відмінності між версіями
R (обговорення | внесок) Первинна публікація |
R (обговорення | внесок) Немає опису редагування |
||
| Рядок 1: | Рядок 1: | ||
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Реєстратор доменів}} | |||
= Модуль реєстрації, продовження і обліку доменних імен = | '''Атестаційне завдання K2 ERP — Реєстратор доменів''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні модуля реєстрації, продовження, обліку та супроводу доменних імен. | ||
Модуль має забезпечувати облік клієнтів, доменних зон, доменів, строків дії, DNS-серверів, DNS-записів, заявок на реєстрацію, рахунків, оплат, нагадувань про продовження та історії операцій по кожному домену. | |||
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
'''Коротко.''' Потрібно реалізувати модуль реєстратора доменів: клієнти, доменні зони, домени, перевірка доступності, реєстрація, продовження, зміна NS, DNS-записи, рахунки, оплати, нагадування про завершення строку та особистий кабінет клієнта. | |||
</div> | |||
__TOC__ | |||
== Назва завдання == | |||
'''Модуль реєстрації, продовження і обліку доменних імен'''. | |||
== Мета завдання == | |||
Мета завдання — створити в K2 ERP модуль для автоматизації роботи компанії, яка надає послуги реєстрації та супроводу доменних імен. | |||
Система повинна дозволяти: | |||
* вести клієнтів; | |||
* вести доменні зони; | |||
* вести доменні імена клієнтів; | |||
* контролювати дати реєстрації та завершення доменів; | |||
* створювати заявки на реєстрацію домену; | |||
* перевіряти доступність домену; | |||
* виставляти рахунки за реєстрацію; | |||
* виставляти рахунки за продовження; | |||
* фіксувати оплати; | |||
* змінювати статуси доменів; | |||
* продовжувати домени на новий період; | |||
* вести NS-сервери; | |||
* вести DNS-записи, якщо реалізується DNS-модуль; | |||
* надсилати нагадування про завершення строку дії; | |||
* зберігати історію операцій по домену; | |||
* підтримувати особистий кабінет клієнта; | |||
* інтегруватися з API зовнішніх реєстраторів, якщо потрібно; | |||
* формувати звіти по доменах, продовженнях, оплатах і простроченнях. | |||
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;"> | |||
'''Головний принцип.''' Домен не можна “забути”. Якщо строк дії завершується, система повинна завчасно попередити клієнта, сформувати рахунок і допомогти продовжити домен до його втрати. | |||
</div> | |||
== Реальний бізнес-контекст == | == Реальний бізнес-контекст == | ||
* реєстрації доменних імен для клієнтів; | Компанія-реєстратор або хостинг-провайдер надає клієнтам послуги з реєстрації, продовження та обслуговування доменних імен. | ||
* продовження | |||
* | Клієнти можуть замовляти: | ||
* | |||
* реєстрацію нового домену; | |||
* продовження існуючого домену; | |||
* перенесення домену від іншого реєстратора; | |||
* зміну DNS-серверів; | |||
* управління DNS-записами; | |||
* супутні послуги: хостинг, VPS, SSL, email, технічну підтримку. | |||
Основний ризик у такому бізнесі — пропущений строк продовження. Якщо домен вчасно не продовжити, клієнт може втратити сайт, пошту, бренд, рекламні кампанії та доступність сервісів. | |||
Тому модуль має не просто зберігати список доменів, а активно контролювати строки, рахунки, оплати, статуси й нагадування. | |||
== Основний бізнес-процес == | |||
Типовий процес роботи з доменом виглядає так: | |||
# клієнт подає заявку на реєстрацію домену; | |||
# система або менеджер перевіряє доступність домену; | |||
# створюється рахунок на оплату; | |||
# клієнт оплачує рахунок; | |||
# домен реєструється вручну або через API; | |||
# у системі фіксується дата реєстрації та дата завершення; | |||
# клієнт отримує сповіщення про успішну реєстрацію; | |||
# за 30, 15 і 5 днів до завершення система надсилає нагадування; | |||
# формується рахунок на продовження; | |||
# після оплати домен продовжується; | |||
# історія операцій зберігається в картці домену. | |||
== Основні об’єкти модуля == | |||
{| class="wikitable" style="width:100%;" | |||
! Об’єкт | |||
! Призначення | |||
|- | |||
| Клієнти | |||
| Власники або замовники доменних імен | |||
|- | |||
| Доменні зони | |||
| .com, .net, .ua, .org, .shop та інші зони | |||
|- | |||
| Домени | |||
| Конкретні доменні імена клієнтів | |||
|- | |||
| Заявки | |||
| Запити на реєстрацію, продовження, перенесення або зміну DNS | |||
|- | |||
| DNS-сервери | |||
| NS-записи домену | |||
|- | |||
| DNS-записи | |||
| A, MX, TXT, CNAME та інші записи, якщо реалізовано DNS-модуль | |||
|- | |||
| Рахунки | |||
| Документи для оплати реєстрації або продовження | |||
|- | |||
| Оплати | |||
| Факти надходження коштів | |||
|- | |||
| Нагадування | |||
| Повідомлення клієнтам про завершення строку дії | |||
|- | |||
| Історія операцій | |||
| Усі дії з доменом: реєстрація, продовження, зміна NS, оплата | |||
|- | |||
| Особистий кабінет | |||
| Інтерфейс клієнта для керування доменами | |||
|- | |||
| Звіти | |||
| Аналітика по доменах, строках, оплатах і простроченнях | |||
|} | |||
== Довідник «Клієнти» == | |||
Довідник клієнтів містить фізичних осіб, ФОП або компанії, які замовляють доменні послуги. | |||
== Поля клієнта == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва компанії або ПІБ | |||
| Ім’я клієнта або назва юридичної особи | |||
|- | |||
| Тип клієнта | |||
| Приватний, ФОП, юридична особа | |||
|- | |||
| Контактна особа | |||
| Представник клієнта | |||
|- | |||
| Телефон | |||
| Контактний номер | |||
|- | |||
| Email | |||
| Адреса для рахунків і нагадувань | |||
|- | |||
| Адреса | |||
| Поштова або юридична адреса | |||
|- | |||
| ЄДРПОУ / ІПН | |||
| Для юридичних осіб або ФОП | |||
|- | |||
| Статус | |||
| Активний, заблокований, архівний | |||
|- | |||
| Примітки | |||
| Внутрішні коментарі менеджера | |||
|} | |||
== Довідник «Зони доменів» == | |||
Довідник зон містить доменні зони, з якими працює реєстратор. | |||
== Приклади доменних зон == | |||
* .com; | |||
* .net; | |||
* .org; | |||
* .ua; | |||
* .com.ua; | |||
* .kyiv.ua; | |||
* .shop; | |||
* .biz; | |||
* .info; | |||
* .eu. | |||
== Поля доменної зони == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва зони | |||
| Наприклад: .com, .ua, .shop | |||
|- | |||
| Опис | |||
| Короткий опис або умови зони | |||
|- | |||
| Вартість реєстрації | |||
| Ціна першої реєстрації | |||
|- | |||
| Вартість продовження | |||
| Ціна продовження | |||
|- | |||
| Вартість трансферу | |||
| Якщо підтримується перенесення домену | |||
|- | |||
| Мінімальний період реєстрації | |||
| Наприклад: 1 рік | |||
|- | |||
| Максимальний період реєстрації | |||
| Наприклад: 10 років | |||
|- | |||
| Потребує документів | |||
| Так / ні, якщо зона має особливі правила | |||
|- | |||
| Активність | |||
| Чи доступна зона для нових замовлень | |||
|} | |||
== База «Доменні імена» == | |||
База доменів містить усі доменні імена клієнтів. | |||
== Колонки бази доменів == | |||
{| class="wikitable" style="width:100%;" | |||
! Колонка | |||
! Опис | |||
|- | |||
| Назва домену | |||
| Повне доменне ім’я | |||
|- | |||
| Клієнт | |||
| Власник або замовник домену | |||
|- | |||
| Зона домену | |||
| .com, .ua, .net тощо | |||
|- | |||
| Дата реєстрації | |||
| Коли домен зареєстровано | |||
|- | |||
| Дата завершення | |||
| До якої дати домен активний | |||
|- | |||
| Статус | |||
| Активний, очікує продовження, прострочений, видалений | |||
|- | |||
| DNS-сервери | |||
| Поточні NS-записи | |||
|- | |||
| Автопродовження | |||
| Чи потрібно автоматично створювати рахунок на продовження | |||
|} | |||
== Поля домену == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Доменне ім’я | |||
| Наприклад: example.com | |||
|- | |||
| Клієнт | |||
| До кого прив’язаний домен | |||
|- | |||
| Доменна зона | |||
| Зона домену | |||
|- | |||
| Дата реєстрації | |||
| Дата початку дії | |||
|- | |||
| Дата завершення | |||
| Дата, до якої домен потрібно продовжити | |||
|- | |||
| Період реєстрації | |||
| 1 рік, 2 роки тощо | |||
|- | |||
| Статус | |||
| Поточний стан домену | |||
|- | |||
| NS-сервери | |||
| Список DNS-серверів | |||
|- | |||
| Реєстратор / API-провайдер | |||
| Через кого зареєстровано домен | |||
|- | |||
| Автопродовження | |||
| Увімкнено або вимкнено | |||
|- | |||
| Коментар | |||
| Службова інформація | |||
|} | |||
== Статуси домену == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Заявка | |||
| Клієнт подав заявку, домен ще не зареєстрований | |||
|- | |||
| Очікує оплати | |||
| Рахунок сформовано, але не оплачено | |||
|- | |||
| Активний | |||
| Домен зареєстрований і діє | |||
|- | |||
| Очікує продовження | |||
| До завершення строку залишилось мало часу | |||
|- | |||
| Прострочений | |||
| Строк дії завершився | |||
|- | |||
| На трансфері | |||
| Домен переноситься від іншого реєстратора або до іншого реєстратора | |||
|- | |||
| Заблокований | |||
| Домен заблокований вручну або реєстратором | |||
|- | |||
| Видалений | |||
| Домен більше не обслуговується | |||
|} | |||
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;"> | |||
'''Важливо.''' Домен зі статусом '''«Прострочений»''' має бути добре видимий менеджеру і клієнту, бо це зона ризику втрати доменного імені. | |||
</div> | |||
== Заявка на реєстрацію домену == | |||
Заявка фіксує намір клієнта зареєструвати новий домен. | |||
== Поля заявки == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Клієнт | |||
| Хто замовляє домен | |||
|- | |||
| Бажане доменне ім’я | |||
| Назва домену | |||
|- | |||
| Доменна зона | |||
| Обрана зона | |||
|- | |||
| Період реєстрації | |||
| На скільки років реєструється домен | |||
|- | |||
| Статус заявки | |||
| Нова, перевіряється, очікує оплати, виконана, відхилена | |||
|- | |||
| Рахунок | |||
| Пов’язаний рахунок на оплату | |||
|- | |||
| Коментар | |||
| Примітки менеджера або клієнта | |||
|} | |||
== Перевірка доступності домену == | |||
Система має підтримувати перевірку доступності домену. | |||
== Варіанти перевірки == | |||
* ручна перевірка менеджером; | |||
* перевірка через API реєстратора; | |||
* перевірка через зовнішній сервіс; | |||
* кешування результату на короткий час. | |||
== Результати перевірки == | |||
{| class="wikitable" style="width:100%;" | |||
! Результат | |||
! Значення | |||
|- | |||
| Доступний | |||
| Домен можна зареєструвати | |||
|- | |||
| Зайнятий | |||
| Домен уже зареєстрований | |||
|- | |||
| Недоступна зона | |||
| Обрана зона не підтримується | |||
|- | |||
| Потрібні документи | |||
| Для реєстрації потрібні додаткові дані | |||
|- | |||
| Помилка перевірки | |||
| API або сервіс перевірки недоступний | |||
|} | |||
== Процес реєстрації домену == | |||
== Кроки реєстрації == | |||
# Клієнт подає заявку на домен. | |||
# Система перевіряє доступність домену. | |||
# Якщо домен доступний — формується рахунок. | |||
# Клієнт оплачує рахунок. | |||
# Система або менеджер реєструє домен. | |||
# У картці домену фіксуються дата реєстрації та дата завершення. | |||
# Домен отримує статус '''«Активний»'''. | |||
# Клієнту надсилається повідомлення про успішну реєстрацію. | |||
== Процес продовження домену == | |||
== | == Кроки продовження == | ||
# Система перевіряє домени, строк дії яких завершується. | |||
# Клієнту надсилається нагадування. | |||
# Формується рахунок на продовження. | |||
# Клієнт оплачує рахунок. | |||
# Домен продовжується на новий період. | |||
# Дата завершення оновлюється. | |||
# У історію домену додається операція продовження. | |||
# Клієнт отримує повідомлення про успішне продовження. | |||
==== | == Формула нової дати завершення == | ||
<pre> | |||
Нова дата завершення = Поточна дата завершення + Період продовження | |||
</pre> | |||
Якщо домен уже прострочений, правило може бути іншим і залежати від умов доменної зони або реєстратора. | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
'''Критично.''' Оплачений домен має бути продовжений у системі, а дата завершення повинна змінитися. Інакше система буде надалі показувати домен як проблемний. | |||
</div> | |||
== | == Сповіщення про завершення строку == | ||
Система повинна автоматично нагадувати клієнтам про необхідність продовження домену. | |||
== Рекомендовані нагадування == | |||
* за 30 днів до завершення; | |||
* за 15 днів до завершення; | |||
* за 5 днів до завершення; | |||
* у день завершення; | |||
* після прострочення, якщо домен не продовжено. | |||
* | == Дані сповіщення == | ||
Сповіщення має містити: | |||
* назву домену; | |||
* дату завершення; | |||
* суму продовження; | |||
* посилання на рахунок; | |||
* контакт підтримки; | |||
* попередження про ризик втрати домену. | |||
== Виставлення рахунків == | |||
Рахунки формуються для: | |||
* реєстрації нового домену; | |||
* продовження домену; | * продовження домену; | ||
* | * трансферу домену; | ||
* додаткових DNS або технічних послуг. | |||
== | == Дані рахунку == | ||
Рахунок має містити: | |||
* номер рахунку; | |||
* дату; | |||
* клієнта; | |||
* домен; | |||
* доменну зону; | |||
* операцію: реєстрація, продовження, трансфер; | |||
* період; | |||
* ціну; | |||
* суму; | |||
* статус оплати; | |||
* реквізити для оплати. | |||
== | == Статуси рахунку == | ||
* | {| class="wikitable" style="width:100%;" | ||
* | ! Статус | ||
* | ! Значення | ||
|- | |||
| Чернетка | |||
| Рахунок створено, але не відправлено | |||
|- | |||
| Виставлений | |||
| Рахунок надіслано клієнту | |||
|- | |||
| Оплачений | |||
| Оплата отримана повністю | |||
|- | |||
| Частково оплачений | |||
| Оплачена частина суми | |||
|- | |||
| Прострочений | |||
| Термін оплати минув | |||
|- | |||
| Скасований | |||
| Рахунок анульовано | |||
|} | |||
== Оплати == | |||
Модуль має фіксувати оплати клієнтів. | |||
== Поля оплати == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Дата оплати | |||
| Коли надійшли кошти | |||
|- | |||
| Клієнт | |||
| Хто оплатив | |||
|- | |||
| Рахунок | |||
| За який рахунок оплата | |||
|- | |||
| Домен | |||
| До якого домену належить оплата | |||
|- | |||
| Сума | |||
| Сума оплати | |||
|- | |||
| Спосіб оплати | |||
| Банківський переказ, картка, онлайн-оплата, готівка | |||
|- | |||
| Коментар | |||
| Призначення платежу або службова примітка | |||
|} | |||
== DNS-сервери == | |||
Для кожного домену потрібно зберігати NS-сервери. | |||
== Поля NS-запису == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Домен | |||
| До якого домену належить NS | |||
|- | |||
| NS-сервер | |||
| Наприклад: ns1.example.com | |||
|- | |||
| Порядок | |||
| Перший, другий, третій DNS-сервер | |||
|- | |||
| Дата зміни | |||
| Коли запис було змінено | |||
|- | |||
| Хто змінив | |||
| Користувач або клієнт | |||
|} | |||
== DNS-записи == | |||
Опціонально можна реалізувати базовий DNS-модуль. | |||
== Типи DNS-записів == | |||
* A; | |||
* AAAA; | |||
* CNAME; | |||
* MX; | |||
* TXT; | |||
* NS; | |||
* SRV; | |||
* SPF, як TXT-запис. | |||
== Поля DNS-запису == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Домен | |||
| До якого домену належить запис | |||
|- | |||
| Тип запису | |||
| A, MX, TXT, CNAME тощо | |||
|- | |||
| Ім’я / Host | |||
| Наприклад: @, www, mail | |||
|- | |||
| Значення | |||
| IP-адреса, домен, текст або інше значення | |||
|- | |||
| TTL | |||
| Час кешування | |||
|- | |||
| Пріоритет | |||
| Для MX та деяких інших записів | |||
|- | |||
| Статус | |||
| Активний або вимкнений | |||
|} | |||
== Історія операцій по домену == | |||
Для кожного домену потрібно зберігати історію дій. | |||
== Типи операцій == | |||
* заявка на реєстрацію; | |||
* перевірка доступності; | |||
* виставлення рахунку; | |||
* оплата; | |||
* реєстрація; | |||
* продовження; | |||
* зміна NS; | |||
* зміна DNS-записів; | |||
* трансфер; | |||
* блокування; | |||
* видалення; | |||
* відновлення. | |||
== Поля історії == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Домен | |||
| До якого домену належить операція | |||
|- | |||
| Дата і час | |||
| Коли виконано дію | |||
|- | |||
| Тип операції | |||
| Реєстрація, продовження, зміна NS тощо | |||
|- | |||
| Користувач | |||
| Хто виконав дію | |||
|- | |||
| Опис | |||
| Що саме змінилося | |||
|- | |||
| Старе значення | |||
| Якщо застосовується | |||
|- | |||
| Нове значення | |||
| Якщо застосовується | |||
|} | |||
=== | == Особистий кабінет клієнта == | ||
Особистий кабінет дозволяє клієнту самостійно контролювати домени. | |||
== Функції кабінету == | |||
Клієнт повинен мати можливість: | |||
* бачити список своїх доменів; | |||
* бачити дати завершення; | |||
* бачити статуси доменів; | |||
* завантажувати рахунки; | |||
* переглядати історію оплат; | |||
* подати заявку на реєстрацію нового домену; | |||
* подати заявку на продовження; | |||
* змінити NS-сервери, якщо дозволено; | |||
* керувати DNS-записами, якщо реалізовано; | |||
* бачити нагадування про домени, які скоро завершуються. | |||
* | == API-інтеграція з реєстраторами == | ||
* | |||
** | Опціонально модуль може інтегруватися з API зовнішнього реєстратора. | ||
** продовження; | |||
** | == Можливості API == | ||
* | |||
* | Через API можна реалізувати: | ||
** | |||
** | * перевірку доступності домену; | ||
** | * реєстрацію домену; | ||
** | * продовження домену; | ||
* зміну NS-серверів; | |||
* отримання статусу домену; | |||
* синхронізацію дат завершення; | |||
* керування DNS-записами. | |||
== Звітність == | |||
== Звіт «Домени, що завершуються» == | |||
Звіт показує домени, які потрібно продовжити найближчим часом. | |||
У звіті потрібно відображати: | |||
* домен; | |||
* клієнта; | |||
* дату завершення; | |||
* кількість днів до завершення; | |||
* статус домену; | |||
* чи виставлено рахунок; | |||
* чи оплачено продовження. | |||
== Звіт «Прострочені домени» == | |||
Звіт показує домени, строк дії яких уже завершився. | |||
У звіті потрібно відображати: | |||
* домен; | |||
* клієнта; | |||
* дату завершення; | |||
* кількість днів прострочення; | |||
* статус; | |||
* суму до оплати; | |||
* останнє нагадування. | |||
== Звіт «Доходи по доменах» == | |||
Звіт показує фінансовий результат по доменних послугах. | |||
У звіті потрібно відображати: | |||
* період; | |||
* кількість реєстрацій; | |||
* кількість продовжень; | |||
* суму рахунків; | |||
* суму оплат; | |||
* дохід по доменних зонах. | |||
== Звіт «Домени по клієнтах» == | |||
Звіт показує портфель доменів кожного клієнта. | |||
У звіті потрібно відображати: | |||
* клієнта; | |||
* кількість доменів; | |||
* активні домени; | |||
* домени, що завершуються; | |||
* прострочені домени; | |||
* суму рахунків за домени. | |||
== AJAX-інтерактив == | |||
Інтерфейс має працювати швидко та зручно для менеджера і клієнта. | |||
Через AJAX мають працювати: | |||
* пошук клієнта; | |||
* вибір доменної зони; | |||
* перевірка доступності домену; | |||
* створення заявки; | |||
* формування рахунку; | |||
* реєстрація оплати; | |||
* зміна статусу домену; | |||
* зміна NS-серверів; | |||
* додавання DNS-запису; | |||
* редагування DNS-запису; | |||
* фільтрація доменів; | |||
* оновлення звітів. | |||
== Логування змін == | |||
Модуль повинен фіксувати важливі зміни. | |||
Журнал змін має зберігати: | |||
* хто створив клієнта; | |||
* хто створив домен; | |||
* хто перевірив доступність; | |||
* хто сформував рахунок; | |||
* хто зареєстрував оплату; | |||
* хто зареєстрував домен; | |||
* хто продовжив домен; | |||
* хто змінив дату завершення; | |||
* хто змінив NS; | |||
* хто змінив DNS-записи; | |||
* хто змінив статус домену; | |||
* дату й час дії; | |||
* старе та нове значення, якщо це можливо. | |||
== Права доступу == | |||
Модуль має підтримувати розмежування прав. | |||
{| class="wikitable" style="width:100%;" | |||
! Роль | |||
! Можливості | |||
|- | |||
| Менеджер | |||
| Створює клієнтів, заявки, домени, рахунки, контролює продовження | |||
|- | |||
| Бухгалтер | |||
| Фіксує оплати, контролює рахунки і заборгованість | |||
|- | |||
| Технічний спеціаліст | |||
| Керує NS, DNS-записами, API-операціями і технічними статусами | |||
|- | |||
| Клієнт | |||
| Переглядає свої домени, рахунки, дати завершення і керує DNS, якщо дозволено | |||
|- | |||
| Керівник | |||
| Переглядає звіти по доменах, оплатах, простроченнях і доходах | |||
|- | |||
| Адміністратор | |||
| Налаштовує доменні зони, тарифи, права, API та службові параметри | |||
|} | |||
== Технічні вимоги == | == Технічні вимоги == | ||
{| 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 для вибору зони і клієнта | ||
|- | |||
| Email | |||
| Нагадування про продовження, рахунки, повідомлення про реєстрацію | |||
|- | |||
| API | |||
| Інтеграція з реєстратором доменів, опціонально | |||
|- | |||
| Друк | |||
| Генерація PDF-рахунків | |||
|- | |||
| Експорт | |||
| Excel або PDF для звітів | |||
|} | |} | ||
== Критерії | == Рекомендовані сутності бази даних == | ||
{| class="wikitable" | |||
!Критерій | Для реалізації задачі доцільно передбачити такі сутності: | ||
!Бали | |||
* клієнти; | |||
* контактні особи; | |||
* доменні зони; | |||
* домени; | |||
* заявки на домени; | |||
* статуси доменів; | |||
* NS-сервери; | |||
* DNS-записи; | |||
* рахунки; | |||
* рядки рахунків; | |||
* оплати; | |||
* нагадування; | |||
* історія операцій; | |||
* API-провайдери; | |||
* особистий кабінет; | |||
* email-шаблони; | |||
* журнал змін; | |||
* звіти; | |||
* права доступу. | |||
== Практичне завдання == | |||
У межах атестації потрібно продемонструвати робочий сценарій. | |||
Мінімальний сценарій: | |||
# створити клієнта; | |||
# створити доменні зони; | |||
# створити заявку на реєстрацію домену; | |||
# перевірити доступність домену; | |||
# сформувати рахунок на реєстрацію; | |||
# зареєструвати оплату; | |||
# створити домен зі статусом '''«Активний»'''; | |||
# вказати дату реєстрації і дату завершення; | |||
# додати NS-сервери; | |||
# додати DNS-запис A; | |||
# додати DNS-запис MX або TXT; | |||
# сформувати нагадування за 30 днів до завершення; | |||
# сформувати рахунок на продовження; | |||
# зареєструвати оплату продовження; | |||
# продовжити домен на новий період; | |||
# перевірити зміну дати завершення; | |||
# переглянути історію операцій по домену; | |||
# перевірити домен у кабінеті клієнта; | |||
# сформувати звіт доменів, що завершуються; | |||
# сформувати звіт прострочених доменів; | |||
# сформувати звіт доходів по доменах; | |||
# перевірити журнал змін. | |||
== Критерії оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Критерій | |||
! Бали | |||
! Що перевіряється | |||
|- | |- | ||
|Реалізація бази клієнтів, зон доменів і доменів | | Реалізація бази клієнтів, зон доменів і доменів | ||
|20 | | 20 | ||
| Клієнти, доменні зони, домени, статуси, дати реєстрації та завершення | |||
|- | |- | ||
|Процес реєстрації і продовження доменів | | Процес реєстрації і продовження доменів | ||
|20 | | 20 | ||
| Заявка, перевірка доступності, рахунок, оплата, реєстрація, продовження, зміна дати завершення | |||
|- | |- | ||
|Сповіщення про закінчення доменів | | Сповіщення про закінчення доменів | ||
|20 | | 20 | ||
| Нагадування за 30, 15, 5 днів, повідомлення про прострочення і успішне продовження | |||
|- | |- | ||
|Виставлення рахунків і облік оплат | | Виставлення рахунків і облік оплат | ||
|20 | | 20 | ||
| PDF-рахунки, статуси рахунків, часткова або повна оплата, прив’язка оплати до домену | |||
|- | |- | ||
|Інтерактивність через AJAX і особистий кабінет клієнта | | Інтерактивність через AJAX і особистий кабінет клієнта | ||
|20 | | 20 | ||
| AJAX-перевірка, оновлення статусів, кабінет клієнта, перегляд доменів, DNS і рахунків | |||
|- | |||
! Разом | |||
! 100 | |||
! Максимальна оцінка | |||
|} | |} | ||
== Шкала оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Бали | |||
! Рівень | |||
! Опис | |||
|- | |||
| 90–100 | |||
| Відмінно | |||
| Модуль повністю працює: клієнти, доменні зони, домени, реєстрація, продовження, DNS, рахунки, оплати, нагадування, кабінет і звіти реалізовані коректно | |||
|- | |||
| 75–89 | |||
| Добре | |||
| Основна логіка працює, є незначні недоліки, які не руйнують процес обліку доменів | |||
|- | |||
| 60–74 | |||
| Зараховано | |||
| Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання | |||
|- | |||
| 0–59 | |||
| Не зараховано | |||
| Відсутня критична логіка: клієнти, домени, дати завершення, продовження, рахунки або нагадування | |||
|} | |||
== Критичні помилки == | |||
Критичними помилками вважаються ситуації, коли: | |||
* неможливо створити клієнта; | |||
* неможливо створити доменну зону; | |||
* неможливо створити домен; | |||
* домен не має дати завершення; | |||
* домен не прив’язується до клієнта; | |||
* неможливо сформувати рахунок на реєстрацію; | |||
* неможливо зареєструвати оплату; | |||
* оплачений домен не переводиться в активний статус; | |||
* неможливо продовжити домен; | |||
* дата завершення не змінюється після продовження; | |||
* нагадування про завершення не створюються; | |||
* прострочені домени не відображаються в звіті; | |||
* клієнт бачить чужі домени в особистому кабінеті; | |||
* зміна NS або DNS не логуються, якщо ця функція заявлена; | |||
* звіти не відповідають фактичним доменам, рахункам і оплатам. | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
'''Умова складання.''' Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл реєстратора: клієнт → заявка → домен → рахунок → оплата → реєстрація → нагадування → продовження → звіт. | |||
</div> | |||
== Очікуваний результат == | |||
У результаті виконання атестаційного завдання має бути створений модуль реєстратора доменів у K2 ERP. | |||
Модуль має підтримувати клієнтів, доменні зони, домени, заявки, перевірку доступності, реєстрацію, продовження, NS-сервери, DNS-записи, рахунки, оплати, нагадування про завершення, особистий кабінет клієнта, історію операцій, API-інтеграції, звіти, AJAX-інтерактив і логування змін. | |||
== Примітка == | == Примітка == | ||
Модуль реєстратора доменів потрібен хостинг-провайдерам, ІТ-компаніям, веб-студіям, датацентрам, маркетплейсам і компаніям, які обслуговують велику кількість доменів клієнтів. | |||
* | |||
* | Вчасне нагадування, правильний облік строків і автоматизація рахунків мінімізують ризик втрати доменних імен та підвищують якість обслуговування клієнтів. | ||
== Коротко == | |||
{| class="wikitable" style="width:100%;" | |||
! Питання | |||
! Відповідь | |||
|- | |||
| Що потрібно створити? | |||
| Модуль реєстрації, продовження і обліку доменних імен | |||
|- | |||
| Які довідники потрібні? | |||
| Клієнти, доменні зони, домени | |||
|- | |||
| Який головний облік? | |||
| Дати реєстрації, дати завершення, статуси доменів і продовження | |||
|- | |||
| Які операції потрібні? | |||
| Реєстрація, продовження, зміна NS, DNS-записи, трансфер опціонально | |||
|- | |||
| Що має робити система перед завершенням домену? | |||
| Надсилати нагадування і формувати рахунок на продовження | |||
|- | |||
| Які документи потрібні? | |||
| Рахунок на реєстрацію або продовження | |||
|- | |||
| Які звіти потрібні? | |||
| Домени, що завершуються, прострочені домени, доходи по доменах, домени по клієнтах | |||
|- | |||
| Що є критичною вимогою? | |||
| Після продовження домену дата завершення має оновлюватися | |||
|} | |||
== Див. також == | |||
* [[K2 Cloud ERP|K2 ERP]] | |||
* [[K2 ERP]] | |||
* [[Атестаційні завдання K2 ERP]] | |||
* [[Датацентр, інтернет-провайдер]] | |||
* [[Білінг]] | |||
* [[Домен]] | |||
* [[DNS]] | |||
* [[Хостинг]] | |||
* [[Рахунок на оплату]] | |||
* [[Особистий кабінет]] | |||
* [[Заборгованість]] | |||
* [[Email-сповіщення]] | |||
* [[AJAX]] | |||
[[Категорія:K2 ERP]] | |||
[[Категорія:Атестаційні завдання K2]] | |||
[[Категорія:Реєстратор доменів]] | |||
[[Категорія:Домени]] | |||
[[Категорія:DNS]] | |||
[[Категорія:Білінг]] | |||
[[Категорія:Корпоративна Wiki]] | |||
Поточна версія на 19:53, 1 травня 2026
Атестаційне завдання K2 ERP — Реєстратор доменів — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля реєстрації, продовження, обліку та супроводу доменних імен.
Модуль має забезпечувати облік клієнтів, доменних зон, доменів, строків дії, DNS-серверів, DNS-записів, заявок на реєстрацію, рахунків, оплат, нагадувань про продовження та історії операцій по кожному домену.
Коротко. Потрібно реалізувати модуль реєстратора доменів: клієнти, доменні зони, домени, перевірка доступності, реєстрація, продовження, зміна NS, DNS-записи, рахунки, оплати, нагадування про завершення строку та особистий кабінет клієнта.
Назва завдання
Модуль реєстрації, продовження і обліку доменних імен.
Мета завдання
Мета завдання — створити в K2 ERP модуль для автоматизації роботи компанії, яка надає послуги реєстрації та супроводу доменних імен.
Система повинна дозволяти:
- вести клієнтів;
- вести доменні зони;
- вести доменні імена клієнтів;
- контролювати дати реєстрації та завершення доменів;
- створювати заявки на реєстрацію домену;
- перевіряти доступність домену;
- виставляти рахунки за реєстрацію;
- виставляти рахунки за продовження;
- фіксувати оплати;
- змінювати статуси доменів;
- продовжувати домени на новий період;
- вести NS-сервери;
- вести DNS-записи, якщо реалізується DNS-модуль;
- надсилати нагадування про завершення строку дії;
- зберігати історію операцій по домену;
- підтримувати особистий кабінет клієнта;
- інтегруватися з API зовнішніх реєстраторів, якщо потрібно;
- формувати звіти по доменах, продовженнях, оплатах і простроченнях.
Головний принцип. Домен не можна “забути”. Якщо строк дії завершується, система повинна завчасно попередити клієнта, сформувати рахунок і допомогти продовжити домен до його втрати.
Реальний бізнес-контекст
Компанія-реєстратор або хостинг-провайдер надає клієнтам послуги з реєстрації, продовження та обслуговування доменних імен.
Клієнти можуть замовляти:
- реєстрацію нового домену;
- продовження існуючого домену;
- перенесення домену від іншого реєстратора;
- зміну DNS-серверів;
- управління DNS-записами;
- супутні послуги: хостинг, VPS, SSL, email, технічну підтримку.
Основний ризик у такому бізнесі — пропущений строк продовження. Якщо домен вчасно не продовжити, клієнт може втратити сайт, пошту, бренд, рекламні кампанії та доступність сервісів.
Тому модуль має не просто зберігати список доменів, а активно контролювати строки, рахунки, оплати, статуси й нагадування.
Основний бізнес-процес
Типовий процес роботи з доменом виглядає так:
- клієнт подає заявку на реєстрацію домену;
- система або менеджер перевіряє доступність домену;
- створюється рахунок на оплату;
- клієнт оплачує рахунок;
- домен реєструється вручну або через API;
- у системі фіксується дата реєстрації та дата завершення;
- клієнт отримує сповіщення про успішну реєстрацію;
- за 30, 15 і 5 днів до завершення система надсилає нагадування;
- формується рахунок на продовження;
- після оплати домен продовжується;
- історія операцій зберігається в картці домену.
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Клієнти | Власники або замовники доменних імен |
| Доменні зони | .com, .net, .ua, .org, .shop та інші зони |
| Домени | Конкретні доменні імена клієнтів |
| Заявки | Запити на реєстрацію, продовження, перенесення або зміну DNS |
| DNS-сервери | NS-записи домену |
| DNS-записи | A, MX, TXT, CNAME та інші записи, якщо реалізовано DNS-модуль |
| Рахунки | Документи для оплати реєстрації або продовження |
| Оплати | Факти надходження коштів |
| Нагадування | Повідомлення клієнтам про завершення строку дії |
| Історія операцій | Усі дії з доменом: реєстрація, продовження, зміна NS, оплата |
| Особистий кабінет | Інтерфейс клієнта для керування доменами |
| Звіти | Аналітика по доменах, строках, оплатах і простроченнях |
Довідник «Клієнти»
Довідник клієнтів містить фізичних осіб, ФОП або компанії, які замовляють доменні послуги.
Поля клієнта
| Поле | Опис |
|---|---|
| Назва компанії або ПІБ | Ім’я клієнта або назва юридичної особи |
| Тип клієнта | Приватний, ФОП, юридична особа |
| Контактна особа | Представник клієнта |
| Телефон | Контактний номер |
| Адреса для рахунків і нагадувань | |
| Адреса | Поштова або юридична адреса |
| ЄДРПОУ / ІПН | Для юридичних осіб або ФОП |
| Статус | Активний, заблокований, архівний |
| Примітки | Внутрішні коментарі менеджера |
Довідник «Зони доменів»
Довідник зон містить доменні зони, з якими працює реєстратор.
Приклади доменних зон
- .com;
- .net;
- .org;
- .ua;
- .com.ua;
- .kyiv.ua;
- .shop;
- .biz;
- .info;
- .eu.
Поля доменної зони
| Поле | Опис |
|---|---|
| Назва зони | Наприклад: .com, .ua, .shop |
| Опис | Короткий опис або умови зони |
| Вартість реєстрації | Ціна першої реєстрації |
| Вартість продовження | Ціна продовження |
| Вартість трансферу | Якщо підтримується перенесення домену |
| Мінімальний період реєстрації | Наприклад: 1 рік |
| Максимальний період реєстрації | Наприклад: 10 років |
| Потребує документів | Так / ні, якщо зона має особливі правила |
| Активність | Чи доступна зона для нових замовлень |
База «Доменні імена»
База доменів містить усі доменні імена клієнтів.
Колонки бази доменів
| Колонка | Опис |
|---|---|
| Назва домену | Повне доменне ім’я |
| Клієнт | Власник або замовник домену |
| Зона домену | .com, .ua, .net тощо |
| Дата реєстрації | Коли домен зареєстровано |
| Дата завершення | До якої дати домен активний |
| Статус | Активний, очікує продовження, прострочений, видалений |
| DNS-сервери | Поточні NS-записи |
| Автопродовження | Чи потрібно автоматично створювати рахунок на продовження |
Поля домену
| Поле | Опис |
|---|---|
| Доменне ім’я | Наприклад: example.com |
| Клієнт | До кого прив’язаний домен |
| Доменна зона | Зона домену |
| Дата реєстрації | Дата початку дії |
| Дата завершення | Дата, до якої домен потрібно продовжити |
| Період реєстрації | 1 рік, 2 роки тощо |
| Статус | Поточний стан домену |
| NS-сервери | Список DNS-серверів |
| Реєстратор / API-провайдер | Через кого зареєстровано домен |
| Автопродовження | Увімкнено або вимкнено |
| Коментар | Службова інформація |
Статуси домену
| Статус | Значення |
|---|---|
| Заявка | Клієнт подав заявку, домен ще не зареєстрований |
| Очікує оплати | Рахунок сформовано, але не оплачено |
| Активний | Домен зареєстрований і діє |
| Очікує продовження | До завершення строку залишилось мало часу |
| Прострочений | Строк дії завершився |
| На трансфері | Домен переноситься від іншого реєстратора або до іншого реєстратора |
| Заблокований | Домен заблокований вручну або реєстратором |
| Видалений | Домен більше не обслуговується |
Важливо. Домен зі статусом «Прострочений» має бути добре видимий менеджеру і клієнту, бо це зона ризику втрати доменного імені.
Заявка на реєстрацію домену
Заявка фіксує намір клієнта зареєструвати новий домен.
Поля заявки
| Поле | Опис |
|---|---|
| Клієнт | Хто замовляє домен |
| Бажане доменне ім’я | Назва домену |
| Доменна зона | Обрана зона |
| Період реєстрації | На скільки років реєструється домен |
| Статус заявки | Нова, перевіряється, очікує оплати, виконана, відхилена |
| Рахунок | Пов’язаний рахунок на оплату |
| Коментар | Примітки менеджера або клієнта |
Перевірка доступності домену
Система має підтримувати перевірку доступності домену.
Варіанти перевірки
- ручна перевірка менеджером;
- перевірка через API реєстратора;
- перевірка через зовнішній сервіс;
- кешування результату на короткий час.
Результати перевірки
| Результат | Значення |
|---|---|
| Доступний | Домен можна зареєструвати |
| Зайнятий | Домен уже зареєстрований |
| Недоступна зона | Обрана зона не підтримується |
| Потрібні документи | Для реєстрації потрібні додаткові дані |
| Помилка перевірки | API або сервіс перевірки недоступний |
Процес реєстрації домену
Кроки реєстрації
- Клієнт подає заявку на домен.
- Система перевіряє доступність домену.
- Якщо домен доступний — формується рахунок.
- Клієнт оплачує рахунок.
- Система або менеджер реєструє домен.
- У картці домену фіксуються дата реєстрації та дата завершення.
- Домен отримує статус «Активний».
- Клієнту надсилається повідомлення про успішну реєстрацію.
Процес продовження домену
Кроки продовження
- Система перевіряє домени, строк дії яких завершується.
- Клієнту надсилається нагадування.
- Формується рахунок на продовження.
- Клієнт оплачує рахунок.
- Домен продовжується на новий період.
- Дата завершення оновлюється.
- У історію домену додається операція продовження.
- Клієнт отримує повідомлення про успішне продовження.
Формула нової дати завершення
Нова дата завершення = Поточна дата завершення + Період продовження
Якщо домен уже прострочений, правило може бути іншим і залежати від умов доменної зони або реєстратора.
Критично. Оплачений домен має бути продовжений у системі, а дата завершення повинна змінитися. Інакше система буде надалі показувати домен як проблемний.
Сповіщення про завершення строку
Система повинна автоматично нагадувати клієнтам про необхідність продовження домену.
Рекомендовані нагадування
- за 30 днів до завершення;
- за 15 днів до завершення;
- за 5 днів до завершення;
- у день завершення;
- після прострочення, якщо домен не продовжено.
Дані сповіщення
Сповіщення має містити:
- назву домену;
- дату завершення;
- суму продовження;
- посилання на рахунок;
- контакт підтримки;
- попередження про ризик втрати домену.
Виставлення рахунків
Рахунки формуються для:
- реєстрації нового домену;
- продовження домену;
- трансферу домену;
- додаткових DNS або технічних послуг.
Дані рахунку
Рахунок має містити:
- номер рахунку;
- дату;
- клієнта;
- домен;
- доменну зону;
- операцію: реєстрація, продовження, трансфер;
- період;
- ціну;
- суму;
- статус оплати;
- реквізити для оплати.
Статуси рахунку
| Статус | Значення |
|---|---|
| Чернетка | Рахунок створено, але не відправлено |
| Виставлений | Рахунок надіслано клієнту |
| Оплачений | Оплата отримана повністю |
| Частково оплачений | Оплачена частина суми |
| Прострочений | Термін оплати минув |
| Скасований | Рахунок анульовано |
Оплати
Модуль має фіксувати оплати клієнтів.
Поля оплати
| Поле | Опис |
|---|---|
| Дата оплати | Коли надійшли кошти |
| Клієнт | Хто оплатив |
| Рахунок | За який рахунок оплата |
| Домен | До якого домену належить оплата |
| Сума | Сума оплати |
| Спосіб оплати | Банківський переказ, картка, онлайн-оплата, готівка |
| Коментар | Призначення платежу або службова примітка |
DNS-сервери
Для кожного домену потрібно зберігати NS-сервери.
Поля NS-запису
| Поле | Опис |
|---|---|
| Домен | До якого домену належить NS |
| NS-сервер | Наприклад: ns1.example.com |
| Порядок | Перший, другий, третій DNS-сервер |
| Дата зміни | Коли запис було змінено |
| Хто змінив | Користувач або клієнт |
DNS-записи
Опціонально можна реалізувати базовий DNS-модуль.
Типи DNS-записів
- A;
- AAAA;
- CNAME;
- MX;
- TXT;
- NS;
- SRV;
- SPF, як TXT-запис.
Поля DNS-запису
| Поле | Опис |
|---|---|
| Домен | До якого домену належить запис |
| Тип запису | A, MX, TXT, CNAME тощо |
| Ім’я / Host | Наприклад: @, www, mail |
| Значення | IP-адреса, домен, текст або інше значення |
| TTL | Час кешування |
| Пріоритет | Для MX та деяких інших записів |
| Статус | Активний або вимкнений |
Історія операцій по домену
Для кожного домену потрібно зберігати історію дій.
Типи операцій
- заявка на реєстрацію;
- перевірка доступності;
- виставлення рахунку;
- оплата;
- реєстрація;
- продовження;
- зміна NS;
- зміна DNS-записів;
- трансфер;
- блокування;
- видалення;
- відновлення.
Поля історії
| Поле | Опис |
|---|---|
| Домен | До якого домену належить операція |
| Дата і час | Коли виконано дію |
| Тип операції | Реєстрація, продовження, зміна NS тощо |
| Користувач | Хто виконав дію |
| Опис | Що саме змінилося |
| Старе значення | Якщо застосовується |
| Нове значення | Якщо застосовується |
Особистий кабінет клієнта
Особистий кабінет дозволяє клієнту самостійно контролювати домени.
Функції кабінету
Клієнт повинен мати можливість:
- бачити список своїх доменів;
- бачити дати завершення;
- бачити статуси доменів;
- завантажувати рахунки;
- переглядати історію оплат;
- подати заявку на реєстрацію нового домену;
- подати заявку на продовження;
- змінити NS-сервери, якщо дозволено;
- керувати DNS-записами, якщо реалізовано;
- бачити нагадування про домени, які скоро завершуються.
API-інтеграція з реєстраторами
Опціонально модуль може інтегруватися з API зовнішнього реєстратора.
Можливості API
Через API можна реалізувати:
- перевірку доступності домену;
- реєстрацію домену;
- продовження домену;
- зміну NS-серверів;
- отримання статусу домену;
- синхронізацію дат завершення;
- керування DNS-записами.
Звітність
Звіт «Домени, що завершуються»
Звіт показує домени, які потрібно продовжити найближчим часом.
У звіті потрібно відображати:
- домен;
- клієнта;
- дату завершення;
- кількість днів до завершення;
- статус домену;
- чи виставлено рахунок;
- чи оплачено продовження.
Звіт «Прострочені домени»
Звіт показує домени, строк дії яких уже завершився.
У звіті потрібно відображати:
- домен;
- клієнта;
- дату завершення;
- кількість днів прострочення;
- статус;
- суму до оплати;
- останнє нагадування.
Звіт «Доходи по доменах»
Звіт показує фінансовий результат по доменних послугах.
У звіті потрібно відображати:
- період;
- кількість реєстрацій;
- кількість продовжень;
- суму рахунків;
- суму оплат;
- дохід по доменних зонах.
Звіт «Домени по клієнтах»
Звіт показує портфель доменів кожного клієнта.
У звіті потрібно відображати:
- клієнта;
- кількість доменів;
- активні домени;
- домени, що завершуються;
- прострочені домени;
- суму рахунків за домени.
AJAX-інтерактив
Інтерфейс має працювати швидко та зручно для менеджера і клієнта.
Через AJAX мають працювати:
- пошук клієнта;
- вибір доменної зони;
- перевірка доступності домену;
- створення заявки;
- формування рахунку;
- реєстрація оплати;
- зміна статусу домену;
- зміна NS-серверів;
- додавання DNS-запису;
- редагування DNS-запису;
- фільтрація доменів;
- оновлення звітів.
Логування змін
Модуль повинен фіксувати важливі зміни.
Журнал змін має зберігати:
- хто створив клієнта;
- хто створив домен;
- хто перевірив доступність;
- хто сформував рахунок;
- хто зареєстрував оплату;
- хто зареєстрував домен;
- хто продовжив домен;
- хто змінив дату завершення;
- хто змінив NS;
- хто змінив DNS-записи;
- хто змінив статус домену;
- дату й час дії;
- старе та нове значення, якщо це можливо.
Права доступу
Модуль має підтримувати розмежування прав.
| Роль | Можливості |
|---|---|
| Менеджер | Створює клієнтів, заявки, домени, рахунки, контролює продовження |
| Бухгалтер | Фіксує оплати, контролює рахунки і заборгованість |
| Технічний спеціаліст | Керує NS, DNS-записами, API-операціями і технічними статусами |
| Клієнт | Переглядає свої домени, рахунки, дати завершення і керує DNS, якщо дозволено |
| Керівник | Переглядає звіти по доменах, оплатах, простроченнях і доходах |
| Адміністратор | Налаштовує доменні зони, тарифи, права, API та службові параметри |
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Fetch API або Axios |
| UI-компоненти | DataTables для таблиці доменів, Select2 для вибору зони і клієнта |
| Нагадування про продовження, рахунки, повідомлення про реєстрацію | |
| API | Інтеграція з реєстратором доменів, опціонально |
| Друк | Генерація PDF-рахунків |
| Експорт | Excel або PDF для звітів |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- клієнти;
- контактні особи;
- доменні зони;
- домени;
- заявки на домени;
- статуси доменів;
- NS-сервери;
- DNS-записи;
- рахунки;
- рядки рахунків;
- оплати;
- нагадування;
- історія операцій;
- API-провайдери;
- особистий кабінет;
- email-шаблони;
- журнал змін;
- звіти;
- права доступу.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
- створити клієнта;
- створити доменні зони;
- створити заявку на реєстрацію домену;
- перевірити доступність домену;
- сформувати рахунок на реєстрацію;
- зареєструвати оплату;
- створити домен зі статусом «Активний»;
- вказати дату реєстрації і дату завершення;
- додати NS-сервери;
- додати DNS-запис A;
- додати DNS-запис MX або TXT;
- сформувати нагадування за 30 днів до завершення;
- сформувати рахунок на продовження;
- зареєструвати оплату продовження;
- продовжити домен на новий період;
- перевірити зміну дати завершення;
- переглянути історію операцій по домену;
- перевірити домен у кабінеті клієнта;
- сформувати звіт доменів, що завершуються;
- сформувати звіт прострочених доменів;
- сформувати звіт доходів по доменах;
- перевірити журнал змін.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація бази клієнтів, зон доменів і доменів | 20 | Клієнти, доменні зони, домени, статуси, дати реєстрації та завершення |
| Процес реєстрації і продовження доменів | 20 | Заявка, перевірка доступності, рахунок, оплата, реєстрація, продовження, зміна дати завершення |
| Сповіщення про закінчення доменів | 20 | Нагадування за 30, 15, 5 днів, повідомлення про прострочення і успішне продовження |
| Виставлення рахунків і облік оплат | 20 | PDF-рахунки, статуси рахунків, часткова або повна оплата, прив’язка оплати до домену |
| Інтерактивність через AJAX і особистий кабінет клієнта | 20 | AJAX-перевірка, оновлення статусів, кабінет клієнта, перегляд доменів, DNS і рахунків |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Модуль повністю працює: клієнти, доменні зони, домени, реєстрація, продовження, DNS, рахунки, оплати, нагадування, кабінет і звіти реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не руйнують процес обліку доменів |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: клієнти, домени, дати завершення, продовження, рахунки або нагадування |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити клієнта;
- неможливо створити доменну зону;
- неможливо створити домен;
- домен не має дати завершення;
- домен не прив’язується до клієнта;
- неможливо сформувати рахунок на реєстрацію;
- неможливо зареєструвати оплату;
- оплачений домен не переводиться в активний статус;
- неможливо продовжити домен;
- дата завершення не змінюється після продовження;
- нагадування про завершення не створюються;
- прострочені домени не відображаються в звіті;
- клієнт бачить чужі домени в особистому кабінеті;
- зміна NS або DNS не логуються, якщо ця функція заявлена;
- звіти не відповідають фактичним доменам, рахункам і оплатам.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл реєстратора: клієнт → заявка → домен → рахунок → оплата → реєстрація → нагадування → продовження → звіт.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений модуль реєстратора доменів у K2 ERP.
Модуль має підтримувати клієнтів, доменні зони, домени, заявки, перевірку доступності, реєстрацію, продовження, NS-сервери, DNS-записи, рахунки, оплати, нагадування про завершення, особистий кабінет клієнта, історію операцій, API-інтеграції, звіти, AJAX-інтерактив і логування змін.
Примітка
Модуль реєстратора доменів потрібен хостинг-провайдерам, ІТ-компаніям, веб-студіям, датацентрам, маркетплейсам і компаніям, які обслуговують велику кількість доменів клієнтів.
Вчасне нагадування, правильний облік строків і автоматизація рахунків мінімізують ризик втрати доменних імен та підвищують якість обслуговування клієнтів.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Модуль реєстрації, продовження і обліку доменних імен |
| Які довідники потрібні? | Клієнти, доменні зони, домени |
| Який головний облік? | Дати реєстрації, дати завершення, статуси доменів і продовження |
| Які операції потрібні? | Реєстрація, продовження, зміна NS, DNS-записи, трансфер опціонально |
| Що має робити система перед завершенням домену? | Надсилати нагадування і формувати рахунок на продовження |
| Які документи потрібні? | Рахунок на реєстрацію або продовження |
| Які звіти потрібні? | Домени, що завершуються, прострочені домени, доходи по доменах, домени по клієнтах |
| Що є критичною вимогою? | Після продовження домену дата завершення має оновлюватися |