Атестаційні завдання K2 ERP/Реєстратор доменів
Атестаційне завдання 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-записи, трансфер опціонально |
| Що має робити система перед завершенням домену? | Надсилати нагадування і формувати рахунок на продовження |
| Які документи потрібні? | Рахунок на реєстрацію або продовження |
| Які звіти потрібні? | Домени, що завершуються, прострочені домени, доходи по доменах, домени по клієнтах |
| Що є критичною вимогою? | Після продовження домену дата завершення має оновлюватися |