Перейти до вмісту

Атестаційні завдання K2 ERP/Поштова служба

Матеріал з K2 ERP Wiki Ukraine — База знань з автоматизації та санкцій в Україні


Атестаційне завдання K2 ERP — Поштова служба + Хостинг — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні мультисервісного модуля для компанії, яка одночасно надає послуги поштової доставки та хостингові послуги.

Модуль має забезпечувати спільну базу клієнтів, єдину фінансову систему, окремі журнали для відправлень і хостингових послуг, контроль статусів, оплат, продовжень, сповіщень, особистий кабінет клієнта, адмін-панель і звіти по кожному напрямку бізнесу.

Коротко. Потрібно реалізувати мультисервісну ERP-систему: клієнти, поштові відправлення, кур’єри, відділення, тарифи доставки, хостингові тарифи, сервери, домени, хостинг-послуги, рахунки, оплати, статуси, продовження, сповіщення, кабінет клієнта, адмін-панель і звіти.

Назва завдання

Модуль обліку клієнтів, послуг, замовлень, рахунків і статусів для мультисервісної компанії: Поштова доставка + Хостинг.

Мета завдання

Мета завдання — створити в K2 ERP модуль для компанії, яка має два різні напрями діяльності:

  • поштова доставка;
  • хостингові та доменні послуги.

Система повинна дозволяти:

  • вести єдину базу клієнтів;
  • вести поштові відправлення;
  • вести пункти обслуговування;
  • вести кур’єрів;
  • вести маршрути доставки;
  • контролювати статуси відправлень;
  • формувати транспортні накладні;
  • вести хостингові тарифні плани;
  • вести сервери;
  • вести домени;
  • вести хостингові послуги клієнтів;
  • контролювати дати завершення хостинг-послуг;
  • формувати рахунки на доставку;
  • формувати рахунки на хостинг;
  • приймати оплати;
  • бачити борги клієнтів;
  • надсилати сповіщення;
  • вести особистий кабінет клієнта;
  • формувати окремі звіти по доставці;
  • формувати окремі звіти по хостингу;
  • формувати загальний фінансовий звіт.

Головний принцип. Клієнт має бути один у системі, навіть якщо він одночасно користується доставкою, хостингом, доменами та іншими послугами. Фінанси, рахунки й оплати мають обліковуватися централізовано.

Загальний бізнес-контекст

Компанія працює як мультисервісний оператор і надає два типи послуг.

Поштовий напрям:

  • доставка посилок;
  • доставка документів;
  • міжнародні відправлення;
  • кур’єрська доставка;
  • доставка між відділеннями;
  • адресна доставка.

Хостинговий напрям:

  • shared hosting;
  • VPS;
  • VDS;
  • dedicated server;
  • домени;
  • DNS;
  • SSL-сертифікати;
  • резервне копіювання;
  • технічна підтримка.

Компанії потрібно:

  • вести єдину базу клієнтів;
  • бачити всі послуги клієнта в одному кабінеті;
  • вести окремі операційні процеси для доставки і хостингу;
  • мати спільний фінансовий модуль;
  • контролювати статуси замовлень і послуг;
  • автоматично формувати рахунки;
  • надсилати повідомлення клієнтам;
  • аналізувати доходи по кожному напрямку.

Основний бізнес-процес

Типовий процес для поштової доставки:

  1. клієнт створюється або обирається із бази;
  2. оформлюється відправлення;
  3. вказується відправник, одержувач, адреса, вага і тип доставки;
  4. система розраховує вартість;
  5. створюється рахунок або оплата на місці;
  6. відправлення отримує статус «Прийнято»;
  7. далі статуси змінюються: «Відправлено», «У транзиті», «На доставці», «Доставлено»;
  8. клієнт отримує сповіщення;
  9. система формує звіти по доставках.

Типовий процес для хостингу:

  1. клієнт створюється або обирається із бази;
  2. обирається тариф хостингу;
  3. створюється хостингова послуга;
  4. послуга прив’язується до сервера або домену;
  5. система формує рахунок;
  6. клієнт оплачує;
  7. послуга переходить у статус «Активна»;
  8. перед завершенням періоду система надсилає нагадування;
  9. після оплати послуга продовжується;
  10. система формує звіти по хостингових послугах.

Основні об’єкти модуля

Об’єкт Призначення
Клієнти Єдина база фізичних і юридичних осіб
Пункти обслуговування Відділення поштової служби
Кур’єри Співробітники, які доставляють відправлення
Відправлення Посилки, документи, вантажі
Маршрути Напрями доставки
Тарифи доставки Правила розрахунку вартості доставки
Хостингові тарифи Пакети послуг хостингу
Сервери Інфраструктура для хостингових послуг
Домени Доменні імена клієнтів
Хостингові послуги Активні або завершені послуги клієнтів
Рахунки Документи на оплату доставки або хостингу
Оплати Фактичні платежі клієнтів
Сповіщення Повідомлення про статуси, рахунки, продовження
Кабінет клієнта Перегляд доставок, хостингу, рахунків і оплат
Звіти Аналітика по доставці, хостингу і фінансах

Спільна база «Клієнти»

Клієнт може користуватися однією або кількома послугами.

Типи клієнтів

  • фізична особа;
  • ФОП;
  • юридична особа;
  • корпоративний клієнт;
  • партнер;
  • внутрішній клієнт.

Поля клієнта

Поле Опис
ПІБ або назва компанії Назва клієнта
Тип клієнта Фізична особа, ФОП, юридична особа
Email Основний контакт і логін
Телефон Контактний номер
Контактна особа Для юридичних осіб
Адреса Адреса клієнта
Дата реєстрації Коли клієнт створений
Статус Активний, заблокований, архівний
Коментар Внутрішня примітка

Послуги клієнта

У картці клієнта потрібно бачити:

  • активні поштові відправлення;
  • історію доставок;
  • активні хостингові послуги;
  • домени;
  • рахунки;
  • оплати;
  • борги;
  • сповіщення;
  • тікети або звернення, якщо реалізовано.

Поштова частина

Довідник «Пункти обслуговування»

Пункти обслуговування — це відділення, де приймаються і видаються відправлення.

Поля пункту обслуговування

Поле Опис
Назва відділення Наприклад: Відділення №1
Адреса Фактична адреса
Телефон Контактний номер
Місто Населений пункт
Графік роботи Дні та години роботи
Відповідальний Керівник або оператор відділення
Статус Активне, тимчасово закрите, архівне

Довідник «Кур’єри»

Кур’єри виконують доставку відправлень.

Поля кур’єра

Поле Опис
ПІБ Повне ім’я кур’єра
Телефон Контактний номер
Email Опціонально
Місто / зона доставки Територія роботи
Тип транспорту Пішки, авто, мото, велосипед
Статус Активний, відпустка, лікарняний, звільнений

Довідник «Тарифи доставки»

Тарифи потрібні для розрахунку вартості доставки.

Варіанти тарифікації

  • за вагою;
  • за габаритами;
  • за містом;
  • за зоною доставки;
  • за країною;
  • за терміновістю;
  • фіксована ціна;
  • індивідуальна ціна для корпоративного клієнта.

Поля тарифу доставки

Поле Опис
Назва тарифу Наприклад: Стандарт, Експрес, Міжнародний
Тип доставки Документи, посилка, вантаж
Мінімальна вага Початок діапазону
Максимальна вага Кінець діапазону
Базова ціна Початкова ціна
Ціна за кг Додаткова ціна за вагу
Термін доставки Орієнтовна кількість днів
Статус Активний або архівний

База «Відправлення»

Відправлення — головний об’єкт поштової частини.

Колонки бази відправлень

Колонка Опис
Номер відправлення Унікальний трек-номер
Відправник Клієнт або контакт відправника
Одержувач Хто отримує
Адреса доставки Куди доставити
Тип відправлення Посилка, документи, вантаж
Вага Вага відправлення
Вартість доставки Розрахована сума
Статус Прийнято, у транзиті, доставлено тощо
Кур’єр Хто доставляє
Термін доставки Планова дата доставки

Поля відправлення

Поле Опис
Номер відправлення Унікальний номер або трек-код
Відправник Клієнт або особа, що відправляє
Телефон відправника Контакт відправника
Одержувач ПІБ або назва компанії
Телефон одержувача Контакт одержувача
Адреса відправлення Звідки відправлено
Адреса доставки Куди доставити
Тип відправлення Посилка, документи, вантаж
Вага Вага у кг
Габарити Довжина, ширина, висота, опціонально
Оголошена вартість Опціонально
Вартість доставки Розрахована або ручна
Кур’єр Призначений виконавець
Пункт прийому Де прийнято
Пункт видачі Якщо доставка до відділення
Планова дата доставки Очікувана дата
Статус Поточний стан відправлення

Статуси відправлення

Статус Значення
Створено Відправлення створено в системі
Прийнято Посилку прийнято у відділенні або кур’єром
Відправлено Відправлення передано в доставку
У транзиті Відправлення переміщується між пунктами
Прибуло у відділення Відправлення готове до видачі
На доставці Кур’єр доставляє одержувачу
Доставлено Відправлення отримано
Не доставлено Доставка не відбулася
Повернення Відправлення повертається відправнику
Скасовано Відправлення скасовано

Трекінг відправлення

Система має зберігати історію статусів відправлення.

Поля трекінгу

Поле Опис
Відправлення До якого відправлення запис
Дата і час Коли змінився статус
Статус Новий статус
Локація Відділення, місто або зона
Користувач Хто змінив статус
Коментар Додаткова інформація

Хостингова частина

Довідник «Хостингові тарифні плани»

Тариф описує тип хостингової послуги, характеристики та вартість.

Типи хостингових послуг

  • shared hosting;
  • VPS;
  • VDS;
  • dedicated server;
  • domain;
  • DNS;
  • SSL;
  • backup;
  • email hosting;
  • administration.

Поля тарифного плану

Поле Опис
Назва тарифу Наприклад: Hosting Start, VPS 4GB
Тип послуги Хостинг, VPS, домен, SSL тощо
Вартість на місяць Ціна за місяць
Вартість на рік Ціна за рік
Дисковий простір Наприклад: 10 GB
RAM Для VPS або серверів
CPU Для VPS або серверів
Трафік Ліміт або безліміт
Статус Активний, прихований, архівний

Довідник «Сервери»

Сервери використовуються для розміщення хостингових послуг.

Поля сервера

Поле Опис
Назва сервера Hostname або внутрішня назва
Тип сервера Shared, VPS-node, Dedicated, DNS, Mail
IP-адреса Основна IP
Пул IP Доступні IP-адреси
Локація Датацентр або місто
Статус Активний, на обслуговуванні, виведений

База «Хостингові послуги»

Хостингова послуга — це активна або завершена послуга клієнта.

Колонки бази хостингових послуг

Колонка Опис
Клієнт Власник послуги
Тип послуги Хостинг, VPS, домен, SSL
Тариф Обраний тарифний план
Сервер Де розміщена послуга
Домен Якщо прив’язано
Дата початку Початок дії
Дата завершення Кінець оплаченого періоду
Статус Активна, припинена, очікує оплату, прострочена

Статуси хостингової послуги

Статус Значення
Нова Послугу створено
Очікує оплату Рахунок виставлено, оплати немає
Активна Послуга оплачена і працює
Завершується До кінця періоду залишилось мало часу
Прострочена Період завершився, оплати немає
Призупинена Послугу тимчасово зупинено
Припинена Послуга більше не надається

База «Домени»

Домени можуть бути окремою послугою клієнта або прив’язкою до хостингу.

Поля домену

Поле Опис
Доменне ім’я Наприклад: example.com
Клієнт Власник домену
Реєстратор Де зареєстровано
Дата реєстрації Коли зареєстровано
Дата завершення Коли завершується дія
DNS-сервери NS-записи
Статус Активний, завершується, протермінований, видалений

Спільний фінансовий модуль

Фінансовий модуль має працювати для обох напрямків.

Рахунки можуть створюватися для

  • поштової доставки;
  • додаткового страхування відправлення;
  • міжнародної доставки;
  • хостингової послуги;
  • продовження VPS;
  • продовження домену;
  • SSL-сертифіката;
  • адміністрування;
  • інших послуг.

Поля рахунку

Поле Опис
Номер рахунку Унікальний номер
Клієнт Кому виставлено рахунок
Напрям послуги Доставка або хостинг
Об’єкт оплати Відправлення, хостингова послуга, домен
Дата рахунку Коли сформовано
Сума Сума до оплати
Оплачено Скільки оплачено
Борг Залишок
Статус Новий, очікує оплату, частково оплачено, оплачено, прострочено, скасовано

Способи оплати

  • готівка;
  • банківська картка;
  • банківський переказ;
  • LiqPay;
  • Stripe;
  • PayPal;
  • внутрішній баланс клієнта;
  • ручна оплата оператором.

Поля оплати

Поле Опис
Клієнт Хто оплатив
Рахунок До якого рахунку прив’язана оплата
Дата оплати Коли отримано оплату
Сума Розмір платежу
Спосіб оплати Готівка, картка, LiqPay, Stripe, PayPal тощо
Статус Очікує, успішно, помилка, повернення
Коментар Примітка оператора

Особистий кабінет клієнта

Клієнт повинен бачити всі свої послуги в одному кабінеті.

У кабінеті клієнт бачить

  • активні відправлення;
  • історію доставок;
  • трекінг відправлень;
  • активні хостингові послуги;
  • домени;
  • дати завершення послуг;
  • рахунки;
  • оплати;
  • борги;
  • можливість завантажити PDF-рахунок;
  • контактні дані;
  • повідомлення;
  • звернення до підтримки, якщо реалізовано.

Панель адміністратора

Адмін-панель має дозволяти керувати обома напрямками.

В адмін-панелі потрібно бачити

  • клієнтів;
  • відправлення;
  • кур’єрів;
  • відділення;
  • тарифи доставки;
  • хостингові тарифи;
  • сервери;
  • домени;
  • хостингові послуги;
  • рахунки;
  • оплати;
  • прострочені послуги;
  • відправлення з проблемами;
  • звіти.

Сповіщення

Система має підтримувати сповіщення клієнтів і операторів.

Події для поштових сповіщень

  • відправлення прийнято;
  • відправлення у транзиті;
  • відправлення прибуло у відділення;
  • відправлення передано кур’єру;
  • відправлення доставлено;
  • доставка не відбулася;
  • потрібна додаткова оплата;
  • відправлення повертається.

Події для хостингових сповіщень

  • створено хостингову послугу;
  • виставлено рахунок;
  • рахунок оплачено;
  • послуга завершується через 30 днів;
  • послуга завершується через 7 днів;
  • послуга прострочена;
  • домен завершується;
  • домен продовжено;
  • послугу призупинено.

Звіти

Звіт «Доставки за період»

У звіті потрібно відображати:

  • кількість відправлень;
  • кількість доставлених;
  • кількість недоставлених;
  • суму доходу;
  • середню вартість доставки;
  • кількість повернень.

Звіт «Робота кур’єрів»

У звіті потрібно відображати:

  • кур’єра;
  • кількість доставок;
  • кількість успішних доставок;
  • кількість невдалих доставок;
  • суму доставок;
  • середній час доставки, якщо реалізовано.

Звіт «Хостингові послуги»

У звіті потрібно відображати:

  • кількість активних послуг;
  • кількість прострочених послуг;
  • кількість послуг, що завершуються;
  • суму доходу;
  • кількість послуг по тарифах.

Звіт «Домени, що завершуються»

У звіті потрібно відображати:

  • домен;
  • клієнта;
  • дату завершення;
  • кількість днів до завершення;
  • статус рахунку;
  • статус домену.

Загальний фінансовий звіт

У звіті потрібно відображати:

  • доходи від доставки;
  • доходи від хостингу;
  • загальний дохід;
  • оплачені рахунки;
  • неоплачені рахунки;
  • борги клієнтів;
  • частку кожного напрямку в доході.

Звіт «Борги клієнтів»

У звіті потрібно відображати:

  • клієнта;
  • напрям послуги;
  • рахунок;
  • суму рахунку;
  • оплачено;
  • борг;
  • кількість днів прострочення.

AJAX-інтерактив

Інтерфейс має працювати швидко й без перезавантаження сторінок.

Через AJAX мають працювати:

  • пошук клієнтів;
  • створення відправлення;
  • розрахунок вартості доставки;
  • зміна статусу відправлення;
  • призначення кур’єра;
  • створення хостингової послуги;
  • прив’язка сервера;
  • створення рахунку;
  • фіксація оплати;
  • продовження хостинг-послуги;
  • фільтрація відправлень;
  • фільтрація хостинг-послуг;
  • фільтрація рахунків;
  • оновлення особистого кабінету;
  • формування звітів.

Логування змін

Модуль повинен фіксувати ключові дії.

Журнал змін має зберігати:

  • хто створив клієнта;
  • хто створив відправлення;
  • хто змінив статус відправлення;
  • хто призначив кур’єра;
  • хто створив тариф доставки;
  • хто створив хостинговий тариф;
  • хто створив хостингову послугу;
  • хто змінив дату завершення послуги;
  • хто створив домен;
  • хто створив рахунок;
  • хто зафіксував оплату;
  • хто продовжив послугу;
  • хто надіслав сповіщення;
  • дату й час дії;
  • старе та нове значення, якщо це можливо.

Права доступу

Модуль має підтримувати рольову модель.

Роль Можливості
Клієнт Бачить власні доставки, хостингові послуги, домени, рахунки й оплати
Оператор поштової служби Створює відправлення, змінює статуси, працює з відділеннями
Кур’єр Бачить свої доставки, змінює статус доставки
Хостинг-оператор Створює хостингові послуги, домени, рахунки на продовження
Технічний адміністратор Керує серверами, IP, DNS і технічними параметрами
Бухгалтер Працює з рахунками, оплатами, боргами і фінансовими звітами
Керівник Бачить загальні звіти по доставці, хостингу і фінансах
Адміністратор системи Налаштовує права, тарифи, довідники, шаблони і службові параметри

Технічні вимоги

Параметр Опис
Бекенд K2 Cloud ERP на Python або PHP
База даних PostgreSQL або MySQL
Фронтенд HTML5, JavaScript
AJAX Fetch API або Axios
UI-компоненти DataTables для клієнтів, відправлень, хостинг-послуг, рахунків; Select2 для пошуку клієнтів, тарифів, кур’єрів і серверів
Календар FullCalendar для планування кур’єрів або технічних робіт, опціонально
Друк PDF-транспортні накладні, рахунки, акти, звіти
Експорт Excel або PDF для фінансових і операційних звітів
Сповіщення Email або внутрішні повідомлення
Оплати Готівка, картка, LiqPay, Stripe, PayPal або ручна оплата

Рекомендовані сутності бази даних

Для реалізації задачі доцільно передбачити такі сутності:

  • клієнти;
  • контактні особи;
  • пункти обслуговування;
  • кур’єри;
  • тарифи доставки;
  • відправлення;
  • трекінг відправлень;
  • хостингові тарифи;
  • сервери;
  • домени;
  • хостингові послуги;
  • рахунки;
  • позиції рахунків;
  • оплати;
  • сповіщення;
  • тікети підтримки, опціонально;
  • журнал змін;
  • права доступу;
  • звіти.

Практичне завдання

У межах атестації потрібно продемонструвати робочий сценарій.

Мінімальний сценарій для поштової частини:

  1. створити клієнта;
  2. створити пункт обслуговування;
  3. створити кур’єра;
  4. створити тариф доставки;
  5. створити відправлення;
  6. розрахувати вартість доставки;
  7. сформувати рахунок;
  8. зафіксувати оплату;
  9. змінити статус відправлення на «Прийнято»;
  10. змінити статус на «У транзиті»;
  11. призначити кур’єра;
  12. змінити статус на «Доставлено»;
  13. перевірити історію трекінгу.

Мінімальний сценарій для хостингової частини:

  1. створити хостинговий тариф;
  2. створити сервер;
  3. створити домен клієнта;
  4. створити хостингову послугу;
  5. прив’язати послугу до клієнта;
  6. прив’язати послугу до сервера;
  7. сформувати рахунок на хостинг;
  8. зафіксувати оплату;
  9. змінити статус послуги на «Активна»;
  10. виконати продовження послуги;
  11. перевірити зміну дати завершення.

Мінімальний сценарій для спільного фінансового блоку:

  1. сформувати рахунок на доставку;
  2. сформувати рахунок на хостинг;
  3. зафіксувати часткову оплату;
  4. перевірити борг;
  5. зафіксувати повну оплату;
  6. сформувати загальний фінансовий звіт;
  7. перевірити особистий кабінет клієнта;
  8. перевірити журнал змін.

Критерії оцінювання

Критерій Бали Що перевіряється
Реалізація бази клієнтів, відправлень і хостинг-послуг 20 Єдина база клієнтів, поштові відправлення, кур’єри, відділення, тарифи, хостинг-послуги, сервери, домени
Управління оплатами і виставлення рахунків 20 Рахунки на доставку і хостинг, часткові оплати, повні оплати, борги, PDF-документи
Контроль продовження послуг і статусів 20 Статуси доставки, трекінг, статуси хостингу, дати завершення, продовження, сповіщення
Звіти по доходах 20 Окремі звіти по доставці, хостингу, боргах, доменах, кур’єрах і загальний фінансовий звіт
Інтерактивність через AJAX і мобільна адаптивність 20 AJAX-оновлення статусів, пошук, фільтри, кабінет клієнта, зручність роботи з телефону
Разом 100 Максимальна оцінка

Шкала оцінювання

Бали Рівень Опис
90–100 Відмінно Модуль повністю працює: клієнти, доставки, хостинг, домени, рахунки, оплати, статуси, кабінет клієнта і звіти реалізовані коректно
75–89 Добре Основна логіка працює, є незначні недоліки, які не руйнують роботу мультисервісної компанії
60–74 Зараховано Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання
0–59 Не зараховано Відсутня критична логіка: клієнти, відправлення, хостингові послуги, рахунки, оплати, статуси або звіти

Критичні помилки

Критичними помилками вважаються ситуації, коли:

  • неможливо створити клієнта;
  • неможливо створити відправлення;
  • відправлення не має статусу;
  • відправлення не має трекінгу;
  • неможливо створити хостингову послугу;
  • хостингова послуга не має дати початку або завершення;
  • рахунок не прив’язується до клієнта;
  • рахунок не прив’язується до доставки або хостинг-послуги;
  • часткова оплата не змінює борг;
  • повна оплата не змінює статус рахунку;
  • продовження хостингової послуги не змінює дату завершення;
  • клієнт у кабінеті бачить чужі послуги або рахунки;
  • звіти не відповідають фактичним доставкам, послугам і оплатам;
  • зміни статусів, рахунків і оплат не логуються.

Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти два базові цикли: доставка → рахунок → оплата → статус → трекінг → звіт та хостинг → рахунок → оплата → активація → продовження → звіт.

Очікуваний результат

У результаті виконання атестаційного завдання має бути створений мультисервісний модуль у K2 ERP для компанії, що поєднує поштову доставку і хостингові послуги.

Модуль має підтримувати єдину базу клієнтів, відправлення, кур’єрів, пункти обслуговування, тарифи доставки, трекінг, хостингові тарифи, сервери, домени, хостингові послуги, рахунки, оплати, продовження, сповіщення, особистий кабінет клієнта, адмін-панель, звіти, AJAX-інтерактив і журнал змін.

Примітка

Єдина ERP-система для поштової служби та хостингової компанії дозволяє управляти кількома напрямками бізнесу через один інтерфейс.

Це знижує витрати на облік, об’єднує клієнтську базу, спрощує фінанси, підвищує якість сервісу і дозволяє бачити прибутковість кожного напрямку окремо.

Коротко

Питання Відповідь
Що потрібно створити? Мультисервісний модуль: поштова доставка + хостинг
Що є спільним? Клієнти, рахунки, оплати, кабінет клієнта, фінансові звіти
Що окреме для пошти? Відправлення, кур’єри, відділення, тарифи доставки, трекінг
Що окреме для хостингу? Тарифи, сервери, домени, хостинг-послуги, продовження
Що потрібно контролювати? Статуси доставок, строки хостинг-послуг, рахунки, оплати, борги
Які документи потрібні? Транспортні накладні, рахунки, акти, PDF-звіти
Які звіти потрібні? Доставки, кур’єри, хостинг, домени, борги, загальний фінансовий звіт
Що є критичною вимогою? Один клієнт має бачити всі свої доставки, хостингові послуги, рахунки й оплати в одному кабінеті

Див. також