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