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

Атестаційні завдання K2 ERP/Дошка оголошень: відмінності між версіями

Матеріал з K2 ERP Wiki Ukraine — База знань з автоматизації та санкцій в Україні
Створена сторінка: = Модуль онлайн-дошки оголошень: публікація, пошук, фільтрація оголошень = == Реальний бізнес-контекст == Потрібно створити багатофункціональну дошку оголошень для розміщення пропозицій: * продаж товарів; * оренди нерухомості; * надання послуг; * пошуку...
 
Немає опису редагування
 
Рядок 1: Рядок 1:
= Модуль онлайн-дошки оголошень: публікація, пошук, фільтрація оголошень =
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Дошка оголошень}}
 
'''Атестаційне завдання K2 ERP — Дошка оголошень''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні модуля онлайн-дошки оголошень із публікацією, пошуком, фільтрацією, фото, особистим кабінетом користувача, модерацією та керуванням статусами оголошень.
 
Модуль має забезпечувати повний цикл роботи з оголошеннями: створення категорій і регіонів, публікацію оголошень, завантаження фото, пошук, фільтрацію, сортування, модерацію, архівування, редагування користувачем і сповіщення про зміну статусу.
 
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
'''Коротко.''' Потрібно реалізувати дошку оголошень, де користувачі можуть створювати оголошення, додавати фото, вибирати категорію й регіон, вказувати ціну та контакти, а відвідувачі — швидко шукати, фільтрувати й переглядати актуальні пропозиції.
</div>
 
__TOC__
 
== Назва завдання ==
 
'''Модуль онлайн-дошки оголошень: публікація, пошук і фільтрація оголошень'''.
 
== Мета завдання ==
 
Мета завдання — створити в K2 ERP модуль для розміщення, пошуку та керування оголошеннями.
 
Система повинна дозволяти:
 
* вести категорії оголошень;
* вести регіони, області та міста;
* створювати оголошення через форму;
* завантажувати кілька фото;
* вказувати ціну, опис і контактні дані;
* публікувати оголошення одразу або після модерації;
* редагувати власні оголошення;
* знімати оголошення з публікації;
* автоматично архівувати старі оголошення;
* виконувати пошук по назві та опису;
* фільтрувати оголошення за категорією, регіоном і ціною;
* сортувати оголошення за датою або ціною;
* переглядати оголошення у списку або картках;
* керувати оголошеннями в особистому кабінеті;
* надсилати email-сповіщення про публікацію, модерацію й архівування;
* формувати адміністративні звіти по оголошеннях, користувачах і категоріях.
 
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
'''Головний принцип.''' Дошка оголошень має бути простою для користувача, але керованою для адміністратора: швидка публікація, зручний пошук, зрозумілі статуси, фото, модерація і контроль актуальності.
</div>


== Реальний бізнес-контекст ==
== Реальний бізнес-контекст ==


Потрібно створити багатофункціональну дошку оголошень для розміщення пропозицій:
Потрібно створити багатофункціональну онлайн-дошку оголошень для розміщення пропозицій і запитів.
 
На такій платформі можуть публікуватися:


* продаж товарів;
* продаж товарів;
* оренди нерухомості;
* оренда нерухомості;
* продаж авто;
* надання послуг;
* надання послуг;
* пошуку роботи або працівників.
* пошук роботи;
* пошук працівників;
* B2B-пропозиції;
* локальні приватні оголошення;
* тематичні оголошення для окремої галузі.
 
Користувачу потрібно швидко створити оголошення, додати фото, вказати контакти й опублікувати пропозицію. Відвідувачу потрібно швидко знайти потрібне оголошення за категорією, містом, ціною або ключовим словом. Адміністратору потрібно контролювати якість публікацій, приховувати некоректні оголошення та бачити статистику платформи.
 
== Основний бізнес-процес ==
 
Типовий процес роботи дошки оголошень виглядає так:
 
# адміністратор створює категорії оголошень;
# адміністратор створює регіони, області та міста;
# користувач реєструється або входить у систему;
# користувач створює нове оголошення;
# вибирає категорію і регіон;
# вводить назву, опис, ціну та контакти;
# завантажує фото;
# підтверджує правила публікації;
# оголошення публікується або переходить на модерацію;
# модератор схвалює або відхиляє оголошення;
# відвідувачі знаходять оголошення через пошук і фільтри;
# користувач редагує або архівує власні оголошення;
# після закінчення строку дії оголошення автоматично архівується.
 
== Основні об’єкти модуля ==
 
{| class="wikitable" style="width:100%;"
! Об’єкт
! Призначення
|-
| Категорії оголошень
| Розділи дошки: авто, нерухомість, робота, послуги, товари
|-
| Регіони
| Географічна прив’язка оголошень: країна, область, місто
|-
| Користувачі
| Автори оголошень і власники особистих кабінетів
|-
| Оголошення
| Основні публікації на дошці
|-
| Фото оголошень
| Зображення товарів, об’єктів або послуг
|-
| Статуси оголошень
| На модерації, активне, відхилене, архівне, видалене
|-
| Модерація
| Перевірка оголошень перед публікацією
|-
| Пошук і фільтри
| Інструменти швидкого знаходження оголошень
|-
| Особистий кабінет
| Керування власними оголошеннями користувача
|-
| Сповіщення
| Email-повідомлення про статус оголошення
|-
| Звіти
| Статистика по категоріях, регіонах, користувачах і статусах
|}
 
== Довідник «Категорії оголошень» ==
 
Довідник категорій потрібен для структурування оголошень.
 
Категорії можуть бути однорівневими або мати вкладені підкатегорії.
 
== Приклади категорій ==
 
* авто;
* нерухомість;
* робота;
* послуги;
* товари;
* електроніка;
* будівництво;
* тварини;
* обладнання;
* бізнес-пропозиції.
 
== Поля категорії ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Назва категорії
| Наприклад: авто, нерухомість, робота, послуги
|-
| Батьківська категорія
| Для створення підкатегорій
|-
| Опис
| Короткий опис категорії
|-
| Іконка
| Опціонально, для візуального відображення
|-
| Порядок сортування
| Позиція категорії в меню
|-
| Активність
| Чи доступна категорія для нових оголошень
|}
 
== Приклад ієрархії категорій ==
 
{| class="wikitable" style="width:100%;"
! Категорія
! Підкатегорії
|-
| Авто
| Легкові авто, запчастини, мото, вантажівки
|-
| Нерухомість
| Продаж квартир, оренда квартир, будинки, комерційна нерухомість
|-
| Робота
| Вакансії, резюме, тимчасова робота
|-
| Послуги
| Ремонт, перевезення, навчання, IT-послуги
|-
| Товари
| Електроніка, меблі, одяг, інструменти
|}
 
== Довідник «Регіони» ==
 
Довідник регіонів потрібен для географічної фільтрації оголошень.
 
== Поля регіону ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Країна
| Країна розміщення оголошення
|-
| Область
| Область або регіон
|-
| Місто
| Населений пункт
|-
| Район
| Опціонально
|-
| Активність
| Чи доступний регіон для вибору
|}
 
== База «Оголошення» ==
 
База оголошень є головним журналом модуля.
 
== Колонки бази оголошень ==
 
{| class="wikitable" style="width:100%;"
! Колонка
! Опис
|-
| Номер оголошення
| Унікальний номер публікації
|-
| Назва оголошення
| Короткий заголовок
|-
| Категорія
| Розділ, у якому розміщено оголошення
|-
| Регіон
| Область і місто
|-
| Ціна
| Вартість товару, послуги або об’єкта
|-
| Дата публікації
| Коли оголошення стало активним
|-
| Автор
| Користувач, який створив оголошення
|-
| Статус
| Активне, на модерації, відхилене, архівне
|-
| Контактна інформація
| Телефон, email або інший канал зв’язку
|}
 
== Статуси оголошень ==
 
{| class="wikitable" style="width:100%;"
! Статус
! Значення
|-
| Чернетка
| Оголошення створюється, але ще не відправлене на публікацію
|-
| На модерації
| Оголошення очікує перевірки
|-
| Активне
| Оголошення опубліковане і доступне для перегляду
|-
| Відхилене
| Модератор не допустив оголошення до публікації
|-
| Архівне
| Оголошення більше неактивне, але зберігається в системі
|-
| Видалене
| Оголошення видалене користувачем або адміністратором
|}
 
== Форма створення оголошення ==
 
Форма створення оголошення повинна бути простою й зрозумілою.
 
== Поля форми оголошення ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Категорія
| Вибір розділу оголошення
|-
| Регіон
| Вибір області та міста
|-
| Назва
| Короткий заголовок оголошення
|-
| Опис
| Детальна інформація
|-
| Ціна
| Вартість або позначка «договірна»
|-
| Фото
| Одне або кілька зображень
|-
| Телефон
| Контактний номер
|-
| Email
| Контактна пошта
|-
| Ім’я контактної особи
| Хто відповідає на звернення
|-
| Правила публікації
| Підтвердження згоди з правилами
|}
 
== Кроки створення оголошення ==
 
# Користувач вибирає категорію.
# Вибирає регіон: область і місто.
# Вводить назву оголошення.
# Додає детальний опис.
# Вказує ціну або позначає ціну як договірну.
# Завантажує фото.
# Вказує контактну інформацію.
# Підтверджує правила публікації.
# Зберігає оголошення.
# Оголошення публікується або потрапляє на модерацію.
 
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;">
'''Важливо.''' Користувач повинен розуміти статус свого оголошення: воно вже опубліковане, очікує модерації, відхилене або перенесене в архів.
</div>
 
== Фото оголошень ==
 
Модуль має підтримувати завантаження кількох фото до одного оголошення.
 
== Вимоги до фото ==
 
Система повинна дозволяти:
 
* завантажити кілька зображень;
* вказати головне фото;
* переглядати фото в галереї;
* видаляти фото;
* змінювати порядок фото;
* обмежувати максимальний розмір файлу;
* перевіряти формат зображення.
 
== Відображення фото ==
 
Фото мають відображатися:
 
* у картці оголошення;
* у списку оголошень;
* у результатах пошуку;
* в особистому кабінеті користувача;
* в адміністративній модерації.
 
== Модерація оголошень ==
 
Модерація потрібна для контролю якості контенту.


Необхідно:
== Дії модератора ==


* дозволити користувачам створювати оголошення;
Модератор повинен мати можливість:
* фільтрувати за категоріями, місцем розташування, ціною;
* управляти статусом оголошень;
* мати простий і швидкий інтерфейс.


== Основні завдання ==
* переглянути нове оголошення;
* схвалити оголошення;
* відхилити оголошення;
* вказати причину відхилення;
* відправити оголошення на редагування;
* заблокувати оголошення;
* приховати некоректні фото.


=== 1. Структура довідників ===
== Причини відхилення ==


==== Довідник «Категорії оголошень» ====
Приклади причин:


Поля довідника:
* некоректна категорія;
* заборонений товар або послуга;
* недостатній опис;
* некоректні фото;
* дублювання оголошення;
* підозріле або шахрайське оголошення;
* порушення правил платформи.


* назва категорії, наприклад:
== Особистий кабінет користувача ==
** авто;
** нерухомість;
** робота;
** послуги;
** товари;
* батьківська категорія — опціонально.


==== Довідник «Регіони» ====
Особистий кабінет дозволяє користувачу керувати власними оголошеннями.


Поля довідника:
== Функції кабінету ==


* країна;
Користувач повинен мати можливість:
* область;
 
* місто.
* переглядати свої оголошення;
* створювати нові оголошення;
* редагувати активні оголошення;
* бачити статус модерації;
* архівувати оголошення;
* поновлювати оголошення;
* видаляти оголошення;
* переглядати повідомлення системи.
 
== Пошук оголошень ==
 
Пошук має працювати по ключових словах.
 
== Поля для пошуку ==
 
Пошук повинен перевіряти:
 
* назву оголошення;
* опис;
* категорію;
* місто;
* контактну особу, якщо це потрібно в адмінці.
 
== Фільтрація оголошень ==


=== 2. База «Оголошення» ===
Фільтри допомагають користувачу швидко знайти потрібну пропозицію.


==== Колонки бази ====
== Основні фільтри ==


* номер оголошення;
* назва оголошення;
* категорія;
* категорія;
* регіон;
* підкатегорія;
* ціна;
* область;
* місто;
* ціна від;
* ціна до;
* дата публікації;
* дата публікації;
* статус:
* наявність фото;
** активне;
* статус, для адміністратора.
** на модерації;
 
** архівне;
== Сортування оголошень ==
* контактна інформація;
 
Система повинна підтримувати сортування:
 
* за датою публікації;
* за ціною зростання;
* за ціною спадання;
* за популярністю, опціонально;
* за кількістю переглядів, опціонально.
 
== Пагінація ==
 
Список оголошень має підтримувати пагінацію.
 
Потрібно показувати:
 
* кількість оголошень на сторінці;
* поточну сторінку;
* загальну кількість сторінок;
* перехід на наступну й попередню сторінку.
 
== Картка оголошення ==
 
Картка оголошення — це повна сторінка конкретної публікації.
 
== Дані картки оголошення ==
 
Картка має містити:
 
* назву;
* фото;
* ціну;
* категорію;
* регіон і місто;
* дату публікації;
* опис;
* опис;
* фото — можливість завантаження кількох зображень.
* контактну інформацію;
* автора;
* статус;
* кнопку зв’язку з автором;
* схожі оголошення, опціонально.
 
== Автоматичне архівування ==
 
Система повинна автоматично архівувати оголошення після закінчення строку дії.
 
Наприклад:
 
<pre>
Строк активності оголошення = 30 днів
</pre>


==== Функціонал ====
Після завершення строку система повинна:


* публікація нового оголошення через форму;
* змінити статус на '''«Архівне»''';
* модерація оголошень — опціонально;
* прибрати оголошення з публічного пошуку;
* редагування або видалення оголошень користувачем.
* залишити його в особистому кабінеті;
* надіслати користувачу email;
* запропонувати поновити оголошення.


=== 3. Процес створення оголошення ===
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
'''Критично.''' Архівні або відхилені оголошення не повинні відображатися в публічному пошуку як активні.
</div>


==== Кроки ====
== Email-сповіщення ==


# Вибір категорії.
Модуль має підтримувати email-сповіщення користувачів.
# Вибір регіону:
#* область;
#* місто.
# Введення назви і опису оголошення.
# Вказання ціни.
# Завантаження фото.
# Введення контактної інформації:
#* телефон;
#* email.
# Підтвердження правил публікації.


Після створення оголошення:
== Події для сповіщень ==


* оголошення публікується;
Повідомлення бажано надсилати, коли:
* або потрапляє на модерацію.


=== 4. Пошук і фільтрація оголошень ===
* оголошення створено;
* оголошення відправлено на модерацію;
* оголошення схвалено;
* оголошення відхилено;
* оголошення архівовано;
* строк дії оголошення скоро завершується;
* оголошення поновлено.


Функціонал пошуку:
== Адміністративна панель ==


* пошук по ключових словах:
Адміністратор повинен мати окремий інтерфейс для керування дошкою оголошень.
** назва;
** опис.


Фільтрація:
== Функції адміністратора ==


* за категорією;
Адміністратор має керувати:
* за регіоном;
* за ціною:
** від;
** до.


Сортування:
* категоріями;
* регіонами;
* користувачами;
* оголошеннями;
* статусами;
* модерацією;
* причинами відхилення;
* строками активності;
* звітами;
* службовими налаштуваннями.


* за датою публікації;
== Звітність ==
* за ціною.
 
== Звіт «Оголошення за період» ==
 
Звіт показує кількість створених оголошень за вибраний період.
 
У звіті потрібно відображати:
 
* дату;
* кількість створених оголошень;
* кількість активних;
* кількість на модерації;
* кількість відхилених;
* кількість архівних.
 
== Звіт «Оголошення по категоріях» ==
 
Звіт показує активність у розділах дошки.
 
У звіті потрібно відображати:
 
* категорію;
* кількість оголошень;
* кількість активних;
* кількість архівних;
* кількість відхилених;
* частку категорії від загальної кількості.
 
== Звіт «Оголошення по регіонах» ==
 
Звіт показує географічну активність.
 
У звіті потрібно відображати:
 
* область;
* місто;
* кількість оголошень;
* кількість активних;
* середню ціну, якщо застосовується.
 
== Звіт «Активність користувачів» ==
 
Звіт показує, які користувачі створюють найбільше оголошень.
 
У звіті потрібно відображати:
 
* користувача;
* кількість створених оголошень;
* кількість активних;
* кількість архівних;
* кількість відхилених;
* дату останньої публікації.
 
== AJAX-інтерактив ==
 
Інтерфейс має працювати швидко та без зайвого перезавантаження сторінок.
 
Через AJAX мають працювати:
 
* вибір категорії;
* вибір регіону;
* завантаження фото;
* створення оголошення;
* редагування оголошення;
* пошук по ключових словах;
* фільтрація за категорією;
* фільтрація за регіоном;
* фільтрація за ціною;
* сортування;
* пагінація;
* зміна статусу в адмінці;
* модерація оголошення.
 
== Логування змін ==
 
Модуль повинен фіксувати важливі дії.
 
Журнал змін має зберігати:


Додатково:
* хто створив оголошення;
* хто змінив назву або опис;
* хто додав або видалив фото;
* хто змінив ціну;
* хто змінив категорію;
* хто змінив регіон;
* хто відправив оголошення на модерацію;
* хто схвалив або відхилив оголошення;
* хто архівував оголошення;
* хто видалив оголошення;
* дату й час зміни;
* старе та нове значення, якщо це можливо.


* пагінація оголошень.
== Права доступу ==


=== 5. Додаткові функції ===
Модуль має підтримувати розмежування прав.


* робота через AJAX без перезавантаження при пошуку і фільтрації;
{| class="wikitable" style="width:100%;"
* створення особистого кабінету користувача для перегляду своїх оголошень;
! Роль
* автоматичне архівування оголошень після закінчення терміну дії, наприклад через 30 днів;
! Можливості
* сповіщення на email про:
|-
** публікацію;
| Гість
** схвалення;
| Переглядає активні оголошення, користується пошуком і фільтрами
** архівування оголошення.
|-
| Користувач
| Створює, редагує, архівує і переглядає власні оголошення
|-
| Модератор
| Перевіряє оголошення, схвалює, відхиляє, приховує некоректний контент
|-
| Адміністратор
| Керує категоріями, регіонами, користувачами, статусами й налаштуваннями
|-
| Керівник
| Переглядає статистику, активність, звіти і загальний стан платформи
|}


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


{| class="wikitable"
{| class="wikitable" style="width:100%;"
! Параметр
! Параметр
! Опис
! Опис
Рядок 130: Рядок 656:
| K2 Cloud ERP на Python або PHP
| K2 Cloud ERP на Python або PHP
|-
|-
| БД
| База даних
| PostgreSQL або MySQL
| PostgreSQL або MySQL
|-
|-
| Фронтенд
| Фронтенд
| HTML5, JavaScript, AJAX, Axios або Fetch API
| HTML5, JavaScript
|-
| AJAX
| Axios або Fetch API
|-
|-
| UI-компоненти
| UI-компоненти
| DataTables для адмінки, Select2 для категорій і регіонів, галерея фото
| DataTables для адмінки, Select2 для категорій і регіонів
|-
| Фото
| Галерея зображень, перегляд фото, головне фото оголошення
|-
|-
| Друк
| Друк
| Не потрібно, вся інформація онлайн
| Не обов’язково, основна інформація працює онлайн
|-
| Email
| Сповіщення про статуси оголошень
|}
|}


== Критерії оцінки ==
== Рекомендовані сутності бази даних ==


{| class="wikitable"
Для реалізації задачі доцільно передбачити такі сутності:
 
* користувачі;
* ролі користувачів;
* категорії оголошень;
* регіони;
* області;
* міста;
* оголошення;
* фото оголошень;
* статуси оголошень;
* причини відхилення;
* модерація;
* перегляди оголошень, опціонально;
* обране, опціонально;
* повідомлення користувачів;
* email-сповіщення;
* журнал змін;
* звіти;
* права доступу.
 
== Практичне завдання ==
 
У межах атестації потрібно продемонструвати робочий сценарій.
 
Мінімальний сценарій:
 
# створити категорії оголошень;
# створити регіони, області та міста;
# створити користувача;
# створити нове оголошення;
# вибрати категорію і регіон;
# додати назву, опис, ціну і контакти;
# завантажити кілька фото;
# вказати головне фото;
# відправити оголошення на модерацію;
# схвалити оголошення модератором;
# перевірити, що оголошення стало активним;
# знайти оголошення через пошук;
# відфільтрувати оголошення за категорією;
# відфільтрувати оголошення за регіоном;
# відфільтрувати оголошення за ціною;
# відсортувати оголошення за датою;
# відредагувати оголошення в особистому кабінеті;
# відхилити тестове оголошення з причиною;
# архівувати оголошення;
# перевірити, що архівне оголошення не видно в публічному пошуку;
# сформувати звіт оголошень за період;
# сформувати звіт по категоріях;
# сформувати звіт по регіонах;
# перевірити журнал змін.
 
== Критерії оцінювання ==
 
{| class="wikitable" style="width:100%;"
! Критерій
! Критерій
! Бали
! Бали
! Що перевіряється
|-
|-
| Реалізація бази оголошень і створення оголошення
| Реалізація бази оголошень і створення оголошення
| 20
| 20
| Категорії, регіони, форма створення, опис, ціна, контакти, статуси
|-
|-
| Пошук, фільтрація і сортування оголошень
| Пошук, фільтрація і сортування оголошень
| 20
| 20
| Пошук по назві й опису, фільтри за категорією, регіоном, ціною, сортування і пагінація
|-
|-
| Завантаження і вивід фото оголошень
| Завантаження і вивід фото оголошень
| 20
| 20
| Кілька фото, головне фото, галерея, відображення в списку і картці
|-
|-
| Управління статусами оголошень: активні, на модерації, архівні
| Управління статусами оголошень
| 20
| 20
| Чернетка, модерація, активне, відхилене, архівне, видалене, причини відхилення
|-
|-
| Інтерактивність через AJAX і особистий кабінет користувача
| Інтерактивність через AJAX і особистий кабінет користувача
| 20
| 20
| AJAX-пошук, фільтри, створення, редагування, модерація, кабінет користувача
|-
! Разом
! 100
! Максимальна оцінка
|}
|}
== Шкала оцінювання ==
{| class="wikitable" style="width:100%;"
! Бали
! Рівень
! Опис
|-
| 90–100
| Відмінно
| Модуль повністю працює: категорії, регіони, оголошення, фото, пошук, фільтри, модерація, кабінет і AJAX реалізовані коректно
|-
| 75–89
| Добре
| Основна логіка працює, є незначні недоліки, які не руйнують роботу дошки оголошень
|-
| 60–74
| Зараховано
| Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання
|-
| 0–59
| Не зараховано
| Відсутня критична логіка: створення оголошення, статуси, фото, пошук, фільтри або модерація
|}
== Критичні помилки ==
Критичними помилками вважаються ситуації, коли:
* неможливо створити категорію;
* неможливо створити регіон;
* неможливо створити оголошення;
* оголошення не має назви або опису;
* оголошення не має категорії;
* оголошення не має регіону;
* фото не прив’язуються до оголошення, якщо ця функція заявлена;
* пошук по назві або опису не працює;
* фільтрація за категорією не працює;
* фільтрація за регіоном не працює;
* архівні або відхилені оголошення видно як активні;
* користувач може редагувати чуже оголошення без прав;
* модератор не може схвалити або відхилити оголошення;
* зміни статусів не логуються;
* звіти не відповідають фактичним оголошенням.
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
'''Умова складання.''' Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл дошки оголошень: категорія → регіон → оголошення → фото → модерація → публікація → пошук → архів.
</div>
== Очікуваний результат ==
У результаті виконання атестаційного завдання має бути створений модуль онлайн-дошки оголошень у K2 ERP.
Модуль має підтримувати категорії, регіони, користувачів, оголошення, фото, статуси, модерацію, особистий кабінет, пошук, фільтри, сортування, пагінацію, автоматичне архівування, email-сповіщення, звіти, AJAX-інтерактив і логування змін.


== Примітка ==
== Примітка ==


Дошка оголошень — це основа для:
Дошка оголошень може бути основою для маркетплейсу, локального торгового майданчика, тематичного порталу, B2B-платформи або внутрішньої корпоративної системи оголошень.
 
Правильна побудова пошуку, фільтрації, модерації та особистого кабінету критично важлива для зручності користувачів, довіри до платформи й ефективності роботи сервісу.
 
== Коротко ==
 
{| class="wikitable" style="width:100%;"
! Питання
! Відповідь
|-
| Що потрібно створити?
| Модуль онлайн-дошки оголошень
|-
| Які довідники потрібні?
| Категорії оголошень, регіони, області, міста
|-
| Який головний об’єкт?
| Оголошення з назвою, описом, ціною, фото, регіоном і контактами
|-
| Які статуси потрібні?
| Чернетка, на модерації, активне, відхилене, архівне, видалене
|-
| Який пошук потрібен?
| По назві, опису, категорії, регіону й ціні
|-
| Що має бути в кабінеті?
| Створення, редагування, архівування і перегляд власних оголошень
|-
| Які звіти потрібні?
| Оголошення за період, по категоріях, по регіонах, активність користувачів
|-
| Що є критичною вимогою?
| Активні оголошення мають бути доступні в пошуку, а архівні й відхилені — ні
|}


* маркетплейсів;
== Див. також ==
* локальних торгових майданчиків;
* тематичних порталів;
* B2B-платформ.


Правильна побудова пошуку, фільтрації і подачі оголошень критично важлива для:
* [[K2 Cloud ERP|K2 ERP]]
* [[K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[Дошка оголошень]]
* [[Маркетплейс]]
* [[Каталог]]
* [[Пошук]]
* [[Фільтрація]]
* [[Модерація]]
* [[Особистий кабінет]]
* [[CRM]]
* [[AJAX]]


* зручності користувачів;
[[Категорія:K2 ERP]]
* ефективності роботи платформи.
[[Категорія:Атестаційні завдання K2]]
[[Категорія:Дошка оголошень]]
[[Категорія:Маркетплейс]]
[[Категорія:Пошук]]
[[Категорія:Корпоративна Wiki]]

Поточна версія на 19:13, 1 травня 2026


Атестаційне завдання K2 ERP — Дошка оголошень — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля онлайн-дошки оголошень із публікацією, пошуком, фільтрацією, фото, особистим кабінетом користувача, модерацією та керуванням статусами оголошень.

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

Коротко. Потрібно реалізувати дошку оголошень, де користувачі можуть створювати оголошення, додавати фото, вибирати категорію й регіон, вказувати ціну та контакти, а відвідувачі — швидко шукати, фільтрувати й переглядати актуальні пропозиції.

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

Модуль онлайн-дошки оголошень: публікація, пошук і фільтрація оголошень.

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

Мета завдання — створити в K2 ERP модуль для розміщення, пошуку та керування оголошеннями.

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

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

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

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

Потрібно створити багатофункціональну онлайн-дошку оголошень для розміщення пропозицій і запитів.

На такій платформі можуть публікуватися:

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

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

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

Типовий процес роботи дошки оголошень виглядає так:

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

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

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

Довідник «Категорії оголошень»

Довідник категорій потрібен для структурування оголошень.

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

Приклади категорій

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

Поля категорії

Поле Опис
Назва категорії Наприклад: авто, нерухомість, робота, послуги
Батьківська категорія Для створення підкатегорій
Опис Короткий опис категорії
Іконка Опціонально, для візуального відображення
Порядок сортування Позиція категорії в меню
Активність Чи доступна категорія для нових оголошень

Приклад ієрархії категорій

Категорія Підкатегорії
Авто Легкові авто, запчастини, мото, вантажівки
Нерухомість Продаж квартир, оренда квартир, будинки, комерційна нерухомість
Робота Вакансії, резюме, тимчасова робота
Послуги Ремонт, перевезення, навчання, IT-послуги
Товари Електроніка, меблі, одяг, інструменти

Довідник «Регіони»

Довідник регіонів потрібен для географічної фільтрації оголошень.

Поля регіону

Поле Опис
Країна Країна розміщення оголошення
Область Область або регіон
Місто Населений пункт
Район Опціонально
Активність Чи доступний регіон для вибору

База «Оголошення»

База оголошень є головним журналом модуля.

Колонки бази оголошень

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

Статуси оголошень

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

Форма створення оголошення

Форма створення оголошення повинна бути простою й зрозумілою.

Поля форми оголошення

Поле Опис
Категорія Вибір розділу оголошення
Регіон Вибір області та міста
Назва Короткий заголовок оголошення
Опис Детальна інформація
Ціна Вартість або позначка «договірна»
Фото Одне або кілька зображень
Телефон Контактний номер
Email Контактна пошта
Ім’я контактної особи Хто відповідає на звернення
Правила публікації Підтвердження згоди з правилами

Кроки створення оголошення

  1. Користувач вибирає категорію.
  2. Вибирає регіон: область і місто.
  3. Вводить назву оголошення.
  4. Додає детальний опис.
  5. Вказує ціну або позначає ціну як договірну.
  6. Завантажує фото.
  7. Вказує контактну інформацію.
  8. Підтверджує правила публікації.
  9. Зберігає оголошення.
  10. Оголошення публікується або потрапляє на модерацію.

Важливо. Користувач повинен розуміти статус свого оголошення: воно вже опубліковане, очікує модерації, відхилене або перенесене в архів.

Фото оголошень

Модуль має підтримувати завантаження кількох фото до одного оголошення.

Вимоги до фото

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

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

Відображення фото

Фото мають відображатися:

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

Модерація оголошень

Модерація потрібна для контролю якості контенту.

Дії модератора

Модератор повинен мати можливість:

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

Причини відхилення

Приклади причин:

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

Особистий кабінет користувача

Особистий кабінет дозволяє користувачу керувати власними оголошеннями.

Функції кабінету

Користувач повинен мати можливість:

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

Пошук оголошень

Пошук має працювати по ключових словах.

Поля для пошуку

Пошук повинен перевіряти:

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

Фільтрація оголошень

Фільтри допомагають користувачу швидко знайти потрібну пропозицію.

Основні фільтри

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

Сортування оголошень

Система повинна підтримувати сортування:

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

Пагінація

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

Потрібно показувати:

  • кількість оголошень на сторінці;
  • поточну сторінку;
  • загальну кількість сторінок;
  • перехід на наступну й попередню сторінку.

Картка оголошення

Картка оголошення — це повна сторінка конкретної публікації.

Дані картки оголошення

Картка має містити:

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

Автоматичне архівування

Система повинна автоматично архівувати оголошення після закінчення строку дії.

Наприклад:

Строк активності оголошення = 30 днів

Після завершення строку система повинна:

  • змінити статус на «Архівне»;
  • прибрати оголошення з публічного пошуку;
  • залишити його в особистому кабінеті;
  • надіслати користувачу email;
  • запропонувати поновити оголошення.

Критично. Архівні або відхилені оголошення не повинні відображатися в публічному пошуку як активні.

Email-сповіщення

Модуль має підтримувати email-сповіщення користувачів.

Події для сповіщень

Повідомлення бажано надсилати, коли:

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

Адміністративна панель

Адміністратор повинен мати окремий інтерфейс для керування дошкою оголошень.

Функції адміністратора

Адміністратор має керувати:

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

Звітність

Звіт «Оголошення за період»

Звіт показує кількість створених оголошень за вибраний період.

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

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

Звіт «Оголошення по категоріях»

Звіт показує активність у розділах дошки.

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

  • категорію;
  • кількість оголошень;
  • кількість активних;
  • кількість архівних;
  • кількість відхилених;
  • частку категорії від загальної кількості.

Звіт «Оголошення по регіонах»

Звіт показує географічну активність.

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

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

Звіт «Активність користувачів»

Звіт показує, які користувачі створюють найбільше оголошень.

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

  • користувача;
  • кількість створених оголошень;
  • кількість активних;
  • кількість архівних;
  • кількість відхилених;
  • дату останньої публікації.

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

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

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

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

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

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

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

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

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

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

Роль Можливості
Гість Переглядає активні оголошення, користується пошуком і фільтрами
Користувач Створює, редагує, архівує і переглядає власні оголошення
Модератор Перевіряє оголошення, схвалює, відхиляє, приховує некоректний контент
Адміністратор Керує категоріями, регіонами, користувачами, статусами й налаштуваннями
Керівник Переглядає статистику, активність, звіти і загальний стан платформи

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

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

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

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

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

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

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

Мінімальний сценарій:

  1. створити категорії оголошень;
  2. створити регіони, області та міста;
  3. створити користувача;
  4. створити нове оголошення;
  5. вибрати категорію і регіон;
  6. додати назву, опис, ціну і контакти;
  7. завантажити кілька фото;
  8. вказати головне фото;
  9. відправити оголошення на модерацію;
  10. схвалити оголошення модератором;
  11. перевірити, що оголошення стало активним;
  12. знайти оголошення через пошук;
  13. відфільтрувати оголошення за категорією;
  14. відфільтрувати оголошення за регіоном;
  15. відфільтрувати оголошення за ціною;
  16. відсортувати оголошення за датою;
  17. відредагувати оголошення в особистому кабінеті;
  18. відхилити тестове оголошення з причиною;
  19. архівувати оголошення;
  20. перевірити, що архівне оголошення не видно в публічному пошуку;
  21. сформувати звіт оголошень за період;
  22. сформувати звіт по категоріях;
  23. сформувати звіт по регіонах;
  24. перевірити журнал змін.

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

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

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

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

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

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

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

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

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

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

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

Примітка

Дошка оголошень може бути основою для маркетплейсу, локального торгового майданчика, тематичного порталу, B2B-платформи або внутрішньої корпоративної системи оголошень.

Правильна побудова пошуку, фільтрації, модерації та особистого кабінету критично важлива для зручності користувачів, довіри до платформи й ефективності роботи сервісу.

Коротко

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

Див. також