Атестаційні завдання K2 ERP/Дошка оголошень: відмінності між версіями
R (обговорення | внесок) Створена сторінка: = Модуль онлайн-дошки оголошень: публікація, пошук, фільтрація оголошень = == Реальний бізнес-контекст == Потрібно створити багатофункціональну дошку оголошень для розміщення пропозицій: * продаж товарів; * оренди нерухомості; * надання послуг; * пошуку... |
R (обговорення | внесок) Немає опису редагування |
||
| Рядок 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> | |||
== Фото оголошень == | |||
Модуль має підтримувати завантаження кількох фото до одного оголошення. | |||
== Вимоги до фото == | |||
Система повинна дозволяти: | |||
* завантажити кілька зображень; | |||
* вказати головне фото; | |||
* переглядати фото в галереї; | |||
* видаляти фото; | |||
* змінювати порядок фото; | |||
* обмежувати максимальний розмір файлу; | |||
* перевіряти формат зображення. | |||
== Відображення фото == | |||
Фото мають відображатися: | |||
* у картці оголошення; | |||
* у списку оголошень; | |||
* у результатах пошуку; | |||
* в особистому кабінеті користувача; | |||
* в адміністративній модерації. | |||
== Модерація оголошень == | |||
Модерація потрібна для контролю якості контенту. | |||
== Дії модератора == | |||
Модератор повинен мати можливість: | |||
* переглянути нове оголошення; | |||
* схвалити оголошення; | |||
* відхилити оголошення; | |||
* вказати причину відхилення; | |||
* відправити оголошення на редагування; | |||
* заблокувати оголошення; | |||
* приховати некоректні фото. | |||
== | == Причини відхилення == | ||
Приклади причин: | |||
* некоректна категорія; | |||
* заборонений товар або послуга; | |||
* недостатній опис; | |||
* некоректні фото; | |||
* дублювання оголошення; | |||
* підозріле або шахрайське оголошення; | |||
* порушення правил платформи. | |||
== Особистий кабінет користувача == | |||
Особистий кабінет дозволяє користувачу керувати власними оголошеннями. | |||
== Функції кабінету == | |||
* | Користувач повинен мати можливість: | ||
* | |||
* місто. | * переглядати свої оголошення; | ||
* створювати нові оголошення; | |||
* редагувати активні оголошення; | |||
* бачити статус модерації; | |||
* архівувати оголошення; | |||
* поновлювати оголошення; | |||
* видаляти оголошення; | |||
* переглядати повідомлення системи. | |||
== Пошук оголошень == | |||
Пошук має працювати по ключових словах. | |||
== Поля для пошуку == | |||
Пошук повинен перевіряти: | |||
* назву оголошення; | |||
* опис; | |||
* категорію; | |||
* місто; | |||
* контактну особу, якщо це потрібно в адмінці. | |||
== Фільтрація оголошень == | |||
Фільтри допомагають користувачу швидко знайти потрібну пропозицію. | |||
== | == Основні фільтри == | ||
* категорія; | * категорія; | ||
* | * підкатегорія; | ||
* ціна; | * область; | ||
* місто; | |||
* ціна від; | |||
* ціна до; | |||
* дата публікації; | * дата публікації; | ||
* статус: | * наявність фото; | ||
** | * статус, для адміністратора. | ||
** на | |||
** | == Сортування оголошень == | ||
* | |||
Система повинна підтримувати сортування: | |||
* за датою публікації; | |||
* за ціною зростання; | |||
* за ціною спадання; | |||
* за популярністю, опціонально; | |||
* за кількістю переглядів, опціонально. | |||
== Пагінація == | |||
Список оголошень має підтримувати пагінацію. | |||
Потрібно показувати: | |||
* кількість оголошень на сторінці; | |||
* поточну сторінку; | |||
* загальну кількість сторінок; | |||
* перехід на наступну й попередню сторінку. | |||
== Картка оголошення == | |||
Картка оголошення — це повна сторінка конкретної публікації. | |||
== Дані картки оголошення == | |||
Картка має містити: | |||
* назву; | |||
* фото; | |||
* ціну; | |||
* категорію; | |||
* регіон і місто; | |||
* дату публікації; | |||
* опис; | * опис; | ||
* | * контактну інформацію; | ||
* автора; | |||
* статус; | |||
* кнопку зв’язку з автором; | |||
* схожі оголошення, опціонально. | |||
== Автоматичне архівування == | |||
Система повинна автоматично архівувати оголошення після закінчення строку дії. | |||
Наприклад: | |||
<pre> | |||
Строк активності оголошення = 30 днів | |||
</pre> | |||
Після завершення строку система повинна: | |||
* | * змінити статус на '''«Архівне»'''; | ||
* | * прибрати оголошення з публічного пошуку; | ||
* | * залишити його в особистому кабінеті; | ||
* надіслати користувачу email; | |||
* запропонувати поновити оголошення. | |||
= | <div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | ||
'''Критично.''' Архівні або відхилені оголошення не повинні відображатися в публічному пошуку як активні. | |||
</div> | |||
== | == Email-сповіщення == | ||
Модуль має підтримувати email-сповіщення користувачів. | |||
== Події для сповіщень == | |||
Повідомлення бажано надсилати, коли: | |||
* оголошення створено; | |||
* оголошення відправлено на модерацію; | |||
* оголошення схвалено; | |||
* оголошення відхилено; | |||
* оголошення архівовано; | |||
* строк дії оголошення скоро завершується; | |||
* оголошення поновлено. | |||
== Адміністративна панель == | |||
Адміністратор повинен мати окремий інтерфейс для керування дошкою оголошень. | |||
== Функції адміністратора == | |||
Адміністратор має керувати: | |||
* категоріями; | |||
* регіонами; | |||
* користувачами; | |||
* оголошеннями; | |||
* статусами; | |||
* модерацією; | |||
* причинами відхилення; | |||
* строками активності; | |||
* звітами; | |||
* службовими налаштуваннями. | |||
* за | == Звітність == | ||
* за ціною. | |||
== Звіт «Оголошення за період» == | |||
Звіт показує кількість створених оголошень за вибраний період. | |||
У звіті потрібно відображати: | |||
* дату; | |||
* кількість створених оголошень; | |||
* кількість активних; | |||
* кількість на модерації; | |||
* кількість відхилених; | |||
* кількість архівних. | |||
== Звіт «Оголошення по категоріях» == | |||
Звіт показує активність у розділах дошки. | |||
У звіті потрібно відображати: | |||
* категорію; | |||
* кількість оголошень; | |||
* кількість активних; | |||
* кількість архівних; | |||
* кількість відхилених; | |||
* частку категорії від загальної кількості. | |||
== Звіт «Оголошення по регіонах» == | |||
Звіт показує географічну активність. | |||
У звіті потрібно відображати: | |||
* область; | |||
* місто; | |||
* кількість оголошень; | |||
* кількість активних; | |||
* середню ціну, якщо застосовується. | |||
== Звіт «Активність користувачів» == | |||
Звіт показує, які користувачі створюють найбільше оголошень. | |||
У звіті потрібно відображати: | |||
* користувача; | |||
* кількість створених оголошень; | |||
* кількість активних; | |||
* кількість архівних; | |||
* кількість відхилених; | |||
* дату останньої публікації. | |||
== AJAX-інтерактив == | |||
Інтерфейс має працювати швидко та без зайвого перезавантаження сторінок. | |||
Через AJAX мають працювати: | |||
* вибір категорії; | |||
* вибір регіону; | |||
* завантаження фото; | |||
* створення оголошення; | |||
* редагування оголошення; | |||
* пошук по ключових словах; | |||
* фільтрація за категорією; | |||
* фільтрація за регіоном; | |||
* фільтрація за ціною; | |||
* сортування; | |||
* пагінація; | |||
* зміна статусу в адмінці; | |||
* модерація оголошення. | |||
== Логування змін == | |||
Модуль повинен фіксувати важливі дії. | |||
Журнал змін має зберігати: | |||
* хто створив оголошення; | |||
* хто змінив назву або опис; | |||
* хто додав або видалив фото; | |||
* хто змінив ціну; | |||
* хто змінив категорію; | |||
* хто змінив регіон; | |||
* хто відправив оголошення на модерацію; | |||
* хто схвалив або відхилив оголошення; | |||
* хто архівував оголошення; | |||
* хто видалив оголошення; | |||
* дату й час зміни; | |||
* старе та нове значення, якщо це можливо. | |||
== Права доступу == | |||
Модуль має підтримувати розмежування прав. | |||
{| class="wikitable" style="width:100%;" | |||
! Роль | |||
! Можливості | |||
|- | |||
| Гість | |||
| Переглядає активні оголошення, користується пошуком і фільтрами | |||
|- | |||
| Користувач | |||
| Створює, редагує, архівує і переглядає власні оголошення | |||
|- | |||
| Модератор | |||
| Перевіряє оголошення, схвалює, відхиляє, приховує некоректний контент | |||
|- | |||
| Адміністратор | |||
| Керує категоріями, регіонами, користувачами, статусами й налаштуваннями | |||
|- | |||
| Керівник | |||
| Переглядає статистику, активність, звіти і загальний стан платформи | |||
|} | |||
== Технічні вимоги == | == Технічні вимоги == | ||
{| 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 | | 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%;" | |||
! Питання | |||
! Відповідь | |||
|- | |||
| Що потрібно створити? | |||
| Модуль онлайн-дошки оголошень | |||
|- | |||
| Які довідники потрібні? | |||
| Категорії оголошень, регіони, області, міста | |||
|- | |||
| Який головний об’єкт? | |||
| Оголошення з назвою, описом, ціною, фото, регіоном і контактами | |||
|- | |||
| Які статуси потрібні? | |||
| Чернетка, на модерації, активне, відхилене, архівне, видалене | |||
|- | |||
| Який пошук потрібен? | |||
| По назві, опису, категорії, регіону й ціні | |||
|- | |||
| Що має бути в кабінеті? | |||
| Створення, редагування, архівування і перегляд власних оголошень | |||
|- | |||
| Які звіти потрібні? | |||
| Оголошення за період, по категоріях, по регіонах, активність користувачів | |||
|- | |||
| Що є критичною вимогою? | |||
| Активні оголошення мають бути доступні в пошуку, а архівні й відхилені — ні | |||
|} | |||
== Див. також == | |||
* [[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-пропозиції;
- локальні приватні оголошення;
- тематичні оголошення для окремої галузі.
Користувачу потрібно швидко створити оголошення, додати фото, вказати контакти й опублікувати пропозицію. Відвідувачу потрібно швидко знайти потрібне оголошення за категорією, містом, ціною або ключовим словом. Адміністратору потрібно контролювати якість публікацій, приховувати некоректні оголошення та бачити статистику платформи.
Основний бізнес-процес
Типовий процес роботи дошки оголошень виглядає так:
- адміністратор створює категорії оголошень;
- адміністратор створює регіони, області та міста;
- користувач реєструється або входить у систему;
- користувач створює нове оголошення;
- вибирає категорію і регіон;
- вводить назву, опис, ціну та контакти;
- завантажує фото;
- підтверджує правила публікації;
- оголошення публікується або переходить на модерацію;
- модератор схвалює або відхиляє оголошення;
- відвідувачі знаходять оголошення через пошук і фільтри;
- користувач редагує або архівує власні оголошення;
- після закінчення строку дії оголошення автоматично архівується.
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Категорії оголошень | Розділи дошки: авто, нерухомість, робота, послуги, товари |
| Регіони | Географічна прив’язка оголошень: країна, область, місто |
| Користувачі | Автори оголошень і власники особистих кабінетів |
| Оголошення | Основні публікації на дошці |
| Фото оголошень | Зображення товарів, об’єктів або послуг |
| Статуси оголошень | На модерації, активне, відхилене, архівне, видалене |
| Модерація | Перевірка оголошень перед публікацією |
| Пошук і фільтри | Інструменти швидкого знаходження оголошень |
| Особистий кабінет | Керування власними оголошеннями користувача |
| Сповіщення | Email-повідомлення про статус оголошення |
| Звіти | Статистика по категоріях, регіонах, користувачах і статусах |
Довідник «Категорії оголошень»
Довідник категорій потрібен для структурування оголошень.
Категорії можуть бути однорівневими або мати вкладені підкатегорії.
Приклади категорій
- авто;
- нерухомість;
- робота;
- послуги;
- товари;
- електроніка;
- будівництво;
- тварини;
- обладнання;
- бізнес-пропозиції.
Поля категорії
| Поле | Опис |
|---|---|
| Назва категорії | Наприклад: авто, нерухомість, робота, послуги |
| Батьківська категорія | Для створення підкатегорій |
| Опис | Короткий опис категорії |
| Іконка | Опціонально, для візуального відображення |
| Порядок сортування | Позиція категорії в меню |
| Активність | Чи доступна категорія для нових оголошень |
Приклад ієрархії категорій
| Категорія | Підкатегорії |
|---|---|
| Авто | Легкові авто, запчастини, мото, вантажівки |
| Нерухомість | Продаж квартир, оренда квартир, будинки, комерційна нерухомість |
| Робота | Вакансії, резюме, тимчасова робота |
| Послуги | Ремонт, перевезення, навчання, IT-послуги |
| Товари | Електроніка, меблі, одяг, інструменти |
Довідник «Регіони»
Довідник регіонів потрібен для географічної фільтрації оголошень.
Поля регіону
| Поле | Опис |
|---|---|
| Країна | Країна розміщення оголошення |
| Область | Область або регіон |
| Місто | Населений пункт |
| Район | Опціонально |
| Активність | Чи доступний регіон для вибору |
База «Оголошення»
База оголошень є головним журналом модуля.
Колонки бази оголошень
| Колонка | Опис |
|---|---|
| Номер оголошення | Унікальний номер публікації |
| Назва оголошення | Короткий заголовок |
| Категорія | Розділ, у якому розміщено оголошення |
| Регіон | Область і місто |
| Ціна | Вартість товару, послуги або об’єкта |
| Дата публікації | Коли оголошення стало активним |
| Автор | Користувач, який створив оголошення |
| Статус | Активне, на модерації, відхилене, архівне |
| Контактна інформація | Телефон, email або інший канал зв’язку |
Статуси оголошень
| Статус | Значення |
|---|---|
| Чернетка | Оголошення створюється, але ще не відправлене на публікацію |
| На модерації | Оголошення очікує перевірки |
| Активне | Оголошення опубліковане і доступне для перегляду |
| Відхилене | Модератор не допустив оголошення до публікації |
| Архівне | Оголошення більше неактивне, але зберігається в системі |
| Видалене | Оголошення видалене користувачем або адміністратором |
Форма створення оголошення
Форма створення оголошення повинна бути простою й зрозумілою.
Поля форми оголошення
| Поле | Опис |
|---|---|
| Категорія | Вибір розділу оголошення |
| Регіон | Вибір області та міста |
| Назва | Короткий заголовок оголошення |
| Опис | Детальна інформація |
| Ціна | Вартість або позначка «договірна» |
| Фото | Одне або кілька зображень |
| Телефон | Контактний номер |
| Контактна пошта | |
| Ім’я контактної особи | Хто відповідає на звернення |
| Правила публікації | Підтвердження згоди з правилами |
Кроки створення оголошення
- Користувач вибирає категорію.
- Вибирає регіон: область і місто.
- Вводить назву оголошення.
- Додає детальний опис.
- Вказує ціну або позначає ціну як договірну.
- Завантажує фото.
- Вказує контактну інформацію.
- Підтверджує правила публікації.
- Зберігає оголошення.
- Оголошення публікується або потрапляє на модерацію.
Важливо. Користувач повинен розуміти статус свого оголошення: воно вже опубліковане, очікує модерації, відхилене або перенесене в архів.
Фото оголошень
Модуль має підтримувати завантаження кількох фото до одного оголошення.
Вимоги до фото
Система повинна дозволяти:
- завантажити кілька зображень;
- вказати головне фото;
- переглядати фото в галереї;
- видаляти фото;
- змінювати порядок фото;
- обмежувати максимальний розмір файлу;
- перевіряти формат зображення.
Відображення фото
Фото мають відображатися:
- у картці оголошення;
- у списку оголошень;
- у результатах пошуку;
- в особистому кабінеті користувача;
- в адміністративній модерації.
Модерація оголошень
Модерація потрібна для контролю якості контенту.
Дії модератора
Модератор повинен мати можливість:
- переглянути нове оголошення;
- схвалити оголошення;
- відхилити оголошення;
- вказати причину відхилення;
- відправити оголошення на редагування;
- заблокувати оголошення;
- приховати некоректні фото.
Причини відхилення
Приклади причин:
- некоректна категорія;
- заборонений товар або послуга;
- недостатній опис;
- некоректні фото;
- дублювання оголошення;
- підозріле або шахрайське оголошення;
- порушення правил платформи.
Особистий кабінет користувача
Особистий кабінет дозволяє користувачу керувати власними оголошеннями.
Функції кабінету
Користувач повинен мати можливість:
- переглядати свої оголошення;
- створювати нові оголошення;
- редагувати активні оголошення;
- бачити статус модерації;
- архівувати оголошення;
- поновлювати оголошення;
- видаляти оголошення;
- переглядати повідомлення системи.
Пошук оголошень
Пошук має працювати по ключових словах.
Поля для пошуку
Пошук повинен перевіряти:
- назву оголошення;
- опис;
- категорію;
- місто;
- контактну особу, якщо це потрібно в адмінці.
Фільтрація оголошень
Фільтри допомагають користувачу швидко знайти потрібну пропозицію.
Основні фільтри
- категорія;
- підкатегорія;
- область;
- місто;
- ціна від;
- ціна до;
- дата публікації;
- наявність фото;
- статус, для адміністратора.
Сортування оголошень
Система повинна підтримувати сортування:
- за датою публікації;
- за ціною зростання;
- за ціною спадання;
- за популярністю, опціонально;
- за кількістю переглядів, опціонально.
Пагінація
Список оголошень має підтримувати пагінацію.
Потрібно показувати:
- кількість оголошень на сторінці;
- поточну сторінку;
- загальну кількість сторінок;
- перехід на наступну й попередню сторінку.
Картка оголошення
Картка оголошення — це повна сторінка конкретної публікації.
Дані картки оголошення
Картка має містити:
- назву;
- фото;
- ціну;
- категорію;
- регіон і місто;
- дату публікації;
- опис;
- контактну інформацію;
- автора;
- статус;
- кнопку зв’язку з автором;
- схожі оголошення, опціонально.
Автоматичне архівування
Система повинна автоматично архівувати оголошення після закінчення строку дії.
Наприклад:
Строк активності оголошення = 30 днів
Після завершення строку система повинна:
- змінити статус на «Архівне»;
- прибрати оголошення з публічного пошуку;
- залишити його в особистому кабінеті;
- надіслати користувачу email;
- запропонувати поновити оголошення.
Критично. Архівні або відхилені оголошення не повинні відображатися в публічному пошуку як активні.
Email-сповіщення
Модуль має підтримувати email-сповіщення користувачів.
Події для сповіщень
Повідомлення бажано надсилати, коли:
- оголошення створено;
- оголошення відправлено на модерацію;
- оголошення схвалено;
- оголошення відхилено;
- оголошення архівовано;
- строк дії оголошення скоро завершується;
- оголошення поновлено.
Адміністративна панель
Адміністратор повинен мати окремий інтерфейс для керування дошкою оголошень.
Функції адміністратора
Адміністратор має керувати:
- категоріями;
- регіонами;
- користувачами;
- оголошеннями;
- статусами;
- модерацією;
- причинами відхилення;
- строками активності;
- звітами;
- службовими налаштуваннями.
Звітність
Звіт «Оголошення за період»
Звіт показує кількість створених оголошень за вибраний період.
У звіті потрібно відображати:
- дату;
- кількість створених оголошень;
- кількість активних;
- кількість на модерації;
- кількість відхилених;
- кількість архівних.
Звіт «Оголошення по категоріях»
Звіт показує активність у розділах дошки.
У звіті потрібно відображати:
- категорію;
- кількість оголошень;
- кількість активних;
- кількість архівних;
- кількість відхилених;
- частку категорії від загальної кількості.
Звіт «Оголошення по регіонах»
Звіт показує географічну активність.
У звіті потрібно відображати:
- область;
- місто;
- кількість оголошень;
- кількість активних;
- середню ціну, якщо застосовується.
Звіт «Активність користувачів»
Звіт показує, які користувачі створюють найбільше оголошень.
У звіті потрібно відображати:
- користувача;
- кількість створених оголошень;
- кількість активних;
- кількість архівних;
- кількість відхилених;
- дату останньої публікації.
AJAX-інтерактив
Інтерфейс має працювати швидко та без зайвого перезавантаження сторінок.
Через AJAX мають працювати:
- вибір категорії;
- вибір регіону;
- завантаження фото;
- створення оголошення;
- редагування оголошення;
- пошук по ключових словах;
- фільтрація за категорією;
- фільтрація за регіоном;
- фільтрація за ціною;
- сортування;
- пагінація;
- зміна статусу в адмінці;
- модерація оголошення.
Логування змін
Модуль повинен фіксувати важливі дії.
Журнал змін має зберігати:
- хто створив оголошення;
- хто змінив назву або опис;
- хто додав або видалив фото;
- хто змінив ціну;
- хто змінив категорію;
- хто змінив регіон;
- хто відправив оголошення на модерацію;
- хто схвалив або відхилив оголошення;
- хто архівував оголошення;
- хто видалив оголошення;
- дату й час зміни;
- старе та нове значення, якщо це можливо.
Права доступу
Модуль має підтримувати розмежування прав.
| Роль | Можливості |
|---|---|
| Гість | Переглядає активні оголошення, користується пошуком і фільтрами |
| Користувач | Створює, редагує, архівує і переглядає власні оголошення |
| Модератор | Перевіряє оголошення, схвалює, відхиляє, приховує некоректний контент |
| Адміністратор | Керує категоріями, регіонами, користувачами, статусами й налаштуваннями |
| Керівник | Переглядає статистику, активність, звіти і загальний стан платформи |
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Axios або Fetch API |
| UI-компоненти | DataTables для адмінки, Select2 для категорій і регіонів |
| Фото | Галерея зображень, перегляд фото, головне фото оголошення |
| Друк | Не обов’язково, основна інформація працює онлайн |
| Сповіщення про статуси оголошень |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- користувачі;
- ролі користувачів;
- категорії оголошень;
- регіони;
- області;
- міста;
- оголошення;
- фото оголошень;
- статуси оголошень;
- причини відхилення;
- модерація;
- перегляди оголошень, опціонально;
- обране, опціонально;
- повідомлення користувачів;
- email-сповіщення;
- журнал змін;
- звіти;
- права доступу.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
- створити категорії оголошень;
- створити регіони, області та міста;
- створити користувача;
- створити нове оголошення;
- вибрати категорію і регіон;
- додати назву, опис, ціну і контакти;
- завантажити кілька фото;
- вказати головне фото;
- відправити оголошення на модерацію;
- схвалити оголошення модератором;
- перевірити, що оголошення стало активним;
- знайти оголошення через пошук;
- відфільтрувати оголошення за категорією;
- відфільтрувати оголошення за регіоном;
- відфільтрувати оголошення за ціною;
- відсортувати оголошення за датою;
- відредагувати оголошення в особистому кабінеті;
- відхилити тестове оголошення з причиною;
- архівувати оголошення;
- перевірити, що архівне оголошення не видно в публічному пошуку;
- сформувати звіт оголошень за період;
- сформувати звіт по категоріях;
- сформувати звіт по регіонах;
- перевірити журнал змін.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація бази оголошень і створення оголошення | 20 | Категорії, регіони, форма створення, опис, ціна, контакти, статуси |
| Пошук, фільтрація і сортування оголошень | 20 | Пошук по назві й опису, фільтри за категорією, регіоном, ціною, сортування і пагінація |
| Завантаження і вивід фото оголошень | 20 | Кілька фото, головне фото, галерея, відображення в списку і картці |
| Управління статусами оголошень | 20 | Чернетка, модерація, активне, відхилене, архівне, видалене, причини відхилення |
| Інтерактивність через AJAX і особистий кабінет користувача | 20 | AJAX-пошук, фільтри, створення, редагування, модерація, кабінет користувача |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Модуль повністю працює: категорії, регіони, оголошення, фото, пошук, фільтри, модерація, кабінет і AJAX реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не руйнують роботу дошки оголошень |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: створення оголошення, статуси, фото, пошук, фільтри або модерація |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити категорію;
- неможливо створити регіон;
- неможливо створити оголошення;
- оголошення не має назви або опису;
- оголошення не має категорії;
- оголошення не має регіону;
- фото не прив’язуються до оголошення, якщо ця функція заявлена;
- пошук по назві або опису не працює;
- фільтрація за категорією не працює;
- фільтрація за регіоном не працює;
- архівні або відхилені оголошення видно як активні;
- користувач може редагувати чуже оголошення без прав;
- модератор не може схвалити або відхилити оголошення;
- зміни статусів не логуються;
- звіти не відповідають фактичним оголошенням.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл дошки оголошень: категорія → регіон → оголошення → фото → модерація → публікація → пошук → архів.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений модуль онлайн-дошки оголошень у K2 ERP.
Модуль має підтримувати категорії, регіони, користувачів, оголошення, фото, статуси, модерацію, особистий кабінет, пошук, фільтри, сортування, пагінацію, автоматичне архівування, email-сповіщення, звіти, AJAX-інтерактив і логування змін.
Примітка
Дошка оголошень може бути основою для маркетплейсу, локального торгового майданчика, тематичного порталу, B2B-платформи або внутрішньої корпоративної системи оголошень.
Правильна побудова пошуку, фільтрації, модерації та особистого кабінету критично важлива для зручності користувачів, довіри до платформи й ефективності роботи сервісу.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Модуль онлайн-дошки оголошень |
| Які довідники потрібні? | Категорії оголошень, регіони, області, міста |
| Який головний об’єкт? | Оголошення з назвою, описом, ціною, фото, регіоном і контактами |
| Які статуси потрібні? | Чернетка, на модерації, активне, відхилене, архівне, видалене |
| Який пошук потрібен? | По назві, опису, категорії, регіону й ціні |
| Що має бути в кабінеті? | Створення, редагування, архівування і перегляд власних оголошень |
| Які звіти потрібні? | Оголошення за період, по категоріях, по регіонах, активність користувачів |
| Що є критичною вимогою? | Активні оголошення мають бути доступні в пошуку, а архівні й відхилені — ні |