Атестаційні завдання K2 ERP/CMS: відмінності між версіями
R (обговорення | внесок) Перенос з Гугл док. |
R (обговорення | внесок) Немає опису редагування |
||
| Рядок 1: | Рядок 1: | ||
Категорії можуть мати ієрархію.; Типовий бізнес-процес роботи CMS-модуля виглядає так: | |||
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
URL повинен формуватися за правилом: | |||
Попередній перегляд надає можливість редактору побачити, як матеріал виглядатиме на сайті, ще до зміни статусу на '''«Опубліковано»'''.; !; Призначення | |||
Перед публікацією потрібно передбачити попередній перегляд матеріалу.; {| class="wikitable" style="width:100%;" | |||
{| class="wikitable" style="width:100%;" | |||
|- | |||
| Назва блоку | |||
| Внутрішня назва для адміністратора | |||
|- | |||
| Тип блоку | |||
| Банер, слайдер, HTML-блок, акційний блок тощо | |||
|- | |||
| Область показу | |||
| Головна сторінка, категорія, стаття, футер, сайдбар | |||
|- | |||
| Порядок | |||
| Черговість показу | |||
|- | |||
| Статус | |||
| Активний або вимкнений | |||
|- | |||
| Мова | |||
| Мова блоку, якщо він має мовні версії | |||
|} | |||
!; характеристика | |||
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/CMS}} | |||
!; |- | |||
| Заголовок | |||
| Основна назва матеріалу | |||
|- | |||
| Короткий характеристика або анонс | |||
| Текст для списків, прев’ю або SEO-опису | |||
|- | |||
| Повний текст | |||
| ключовий вміст матеріалу через WYSIWYG-редактор | |||
|- | |||
| Категорія | |||
| Вибір із довідника через AJAX | |||
|- | |||
| Мова | |||
| Мова поточної версії матеріалу | |||
|- | |||
| Зображення-прев’ю | |||
| Завантаження або вибір із медіабібліотеки | |||
|- | |||
| Статус | |||
| Чернетка, опубліковано, приховано | |||
|- | |||
| Автор | |||
| користувач системи, який створив матеріал | |||
|} | |||
У межах атестації потрібно продемонструвати робочий сценарій.;== Назва задача == | |||
[[Категорія:Контент]] | |||
{| class="wikitable" style="width:100%;" | |||
!; Для української мови приклад має змогу мати вигляд: | |||
__TOC__ | |||
== Колонки журналу матеріалів == | |||
|- | |||
| 90–100 | |||
| Відмінно | |||
| CMS-модуль в цілому функціонує: матеріали, медіа, мультимовність, публікація, SEO, історичний розвиток змін і AJAX реалізовані коректно | |||
|- | |||
| 75–89 | |||
| Добре | |||
| Основна логіка функціонує, є собою незначні недоліки, які не руйнують бізнес-процес публікації контенту | |||
|- | |||
| 60–74 | |||
| Зараховано | |||
| Базовий сценарій функціонує, але частина функцій реалізована неповно або потребує доопрацювання | |||
|- | |||
| 0–59 | |||
| Не зараховано | |||
| Відсутня критична логіка: створення матеріалів, публікація, медіафайли, мультимовність або статуси | |||
|} | |||
Кожен матеріал має змогу мати окремі версії різними мовами.; {| class="wikitable" style="width:100%;" | |||
компонент повинен дозволяти відкотити матеріал до попередньої версії.; характеристика | |||
!; {| class="wikitable" style="width:100%;" | |||
'''Умова складання.''' задача не має змогу бути зараховане, якщо платформа не надає можливість пройти базовий цикл CMS: створення матеріалу → збереження чернетки → додавання медіа → публікація → перегляд на сайті → історичний розвиток змін.; У результаті виконання атестаційного задача має бути створений CMS-модуль K2 ERP.; Потрібно реалізувати історію змін матеріалу.; '''Атестаційне задача K2 ERP — CMS''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні модуля керування контентом сайту або корпоративного порталу.; Поле | |||
== Технічні вимоги == | |||
/en/news/open-new-office/ | /en/news/open-new-office/ | ||
== | |- | ||
| Категорії контенту | |||
| Класифікація матеріалів: новини, статті, сторінки, оголошення | |||
|- | |||
| Мови | |||
| Перелік мов, якими публікується контент | |||
|- | |||
| Матеріали | |||
| Основні одиниці контенту: сторінки, новини, статті, оголошення | |||
|- | |||
| Переклади матеріалів | |||
| Версії одного матеріалу різними мовами | |||
|- | |||
| Медіафайли | |||
| Зображення, PDF, документи та інші файли | |||
|- | |||
| Каталоги медіабібліотеки | |||
| Структура зберігання файлів | |||
|- | |||
| Теги | |||
| Додаткова класифікація матеріалів | |||
|- | |||
| SEO-налаштування | |||
| Title, description, keywords, URL-slug | |||
|- | |||
| історичний розвиток змін | |||
| Версії матеріалу та інформаційні дані про редагування | |||
|- | |||
| Статуси публікації | |||
| Чернетка, опубліковано, приховано | |||
|- | |||
| Модульні блоки | |||
| Банери, слайдери, акційні блоки, інформаційні вставки | |||
|} | |||
== Рекомендовані сутності бази даних == | |||
{| class="wikitable" style="width:100%;" | |||
{| class="wikitable" style="width:100%;" | |||
'''Практичний сенс.''' Не кожен користувач системи CMS має право публікувати матеріали.; характеристика | |||
== SEO-поля == | |||
== Критерії оцінювання == | |||
!; Опублікований матеріал має бути доступний за сформованим URL.; '''центральний принцип.''' CMS у K2 ERP — це не без ускладнень форма для введення тексту.; Роль | |||
!; Це істотно, якщо редактор випадково видалив частину тексту, опублікував неправильну версію або зламав форматування.; | Категорії контенту та мови | |||
|- | |||
| Який центральний журнал?; !; Після публікації матеріал автономно відображається на сайті за налаштованим шаблоном.; | Повний цикл: чернетка → медіа → публікація → URL → історичний розвиток змін | |||
|} | |||
== Очікуваний результат == | |||
* [[K2 Cloud ERP|K2 ERP]] | |||
* [[K2 ERP]] | |||
* [[Атестаційні завдання K2 ERP]] | |||
* [[CMS]] | |||
* [[Контент]] | |||
* [[Медіабібліотека]] | |||
* [[Багатомовність]] | |||
* [[WYSIWYG]] | |||
* [[TinyMCE]] | |||
* [[CKEditor]] | |||
* [[SEO]] | |||
* [[AJAX]] | |||
Код мови застосовують, коли потрібно у формуванні URL матеріалу.; Що перевіряється | |||
</div> | |||
{| class="wikitable" style="width:100%;" | |||
[[Категорія:Медіабібліотека]] | |||
|- | |- | ||
| | | SEO title | ||
| | | Заголовок сторінки для пошукових систем | ||
|- | |- | ||
| | | SEO description | ||
| | | характеристика сторінки для пошукових систем | ||
|- | |- | ||
| | | SEO keywords | ||
| | | Ключові слова, якщо вони використовуються | ||
|- | |- | ||
| | | URL-адреса / slug | ||
| | | Частина адреси матеріалу | ||
|- | |- | ||
| | | Теги | ||
| | | Тематичні мітки матеріалу | ||
|} | |||
== Журнал «Матеріали» == | |||
Медіабібліотека потрібна для централізованого зберігання файлів, які використовуються в матеріалах сайту або порталу.; Поле | |||
{| class="wikitable" style="width:100%;" | |||
|- | |||
| Назва мови | |||
| як ілюстрація: українська, англійська, польська | |||
|- | |||
| Код мови | |||
| як ілюстрація: <code>uk</code>, <code>en</code>, <code>pl</code> | |||
|- | |- | ||
| | | Активність | ||
| | | Чи доступна мова для публікації | ||
|- | |||
| Мова за замовчуванням | |||
| Ознака основної мови сайту | |||
|} | |} | ||
= | <div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;"> | ||
</div> | |||
== Функціональність журналу матеріалів == | |||
Приклади блоків: | |||
</pre> | |||
!; Маркетологи, редактори, HR-спеціалісти, менеджери або адміністратори повинні мати можливість самостійно додавати й оновлювати контент: сторінки, новини, статті, оголошення, документи, банери, акційні блоки або внутрішні повідомлення.;== Попередній перегляд == | |||
{| class="wikitable" style="width:100%;" | |||
* створювати сторінки; | * створювати сторінки; | ||
* | * створювати новини, статті та оголошення; | ||
* | * редагувати матеріали через WYSIWYG-редактор; | ||
* публікувати | * працювати з категоріями контенту; | ||
* публікувати матеріали різними мовами; | |||
* завантажувати зображення, PDF-файли та інші документи; | |||
* підключати медіафайли до матеріалів; | |||
* керувати статусами публікації; | |||
* формувати зрозумілі URL; | |||
* заповнювати SEO-поля; | |||
* зберігати історію змін; | |||
* відновлювати попередні версії матеріалів; | |||
* керувати модульними блоками контенту.; історичний розвиток змін має фіксувати: | |||
* форматувати текст; | |||
* додавати заголовки; | |||
* вставляти списки; | |||
* вставляти посилання; | |||
* додавати зображення; | |||
* працювати з таблицями; | |||
* редагувати HTML у межах дозволених прав.; Поле | |||
компонент має забезпечувати роботу зі сторінками, новинами, статтями, оголошеннями, медіафайлами, багатомовністю, SEO-полями, публікацією, історією змін і правами доступу.; Відповідь | |||
Автозбереження не повинно автономно публікувати матеріал.; Бали | |||
== Довідник «Категорії контенту» == | |||
== Критичні помилки == | |||
організація має публічний сайт або внутрішній корпоративний портал.; /uk/news/vidkryttia-novoho-ofisu/ | |||
!; | CMS-модуль для керування контентом сайту або корпоративного порталу | |||
|- | |- | ||
| | | Які довідники потрібні?; !; | Журнал матеріалів | ||
|- | |- | ||
| | | Що має бути у формі матеріалу?; | Заголовок, характеристика, WYSIWYG-текст, категорія, мова, медіа, SEO, статус | ||
| | |||
|- | |- | ||
| | | Що має підтримувати медіабібліотека?; Питання | ||
У журналі редактор має оперативно бачити, які матеріали є собою чернетками, які опубліковані, які приховані, хто автор, якою мовою матеріал створено і до якої категорії він належить.; * створювати переклад із поточного матеріалу; | |||
* бачити, які мовні версії вже існують; | |||
* перемикатися між мовними версіями; | |||
* не втрачати зв’язок між перекладами; | |||
* формувати URL з урахуванням коду мови.; Це платформа керування життєвим циклом контенту: створення → редагування → медіа → переклади → публікація → історичний розвиток змін → аналітичні інструменти та супровід.;[[Категорія:Багатомовність]] | |||
!; У формі потрібно передбачити: | |||
Можливі ролі: | |||
!; Колонка | |||
== Модульні блоки контенту == | |||
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;"> | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
== AJAX-інтерактив == | |||
</div> | |||
|- | |- | ||
| | | Автор | ||
| | | Створює та редагує власні чернетки | ||
|- | |- | ||
| | | Редактор | ||
| | | Редагує матеріали, функціонує з медіа, готує публікації | ||
|- | |- | ||
| | | Модератор | ||
| | | Перевіряє матеріали й змінює статуси | ||
|- | |- | ||
| Адміністратор | |||
| Керує категоріями, мовами, правами, шаблонами та публікацією | |||
|} | |||
{| class="wikitable" style="width:100%;" | |||
== Мультимовність == | |||
== Довідник «Мови» == | |||
!; !; компонент повинен підтримувати роботу без зайвих перезавантажень сторінки.;== Публікація на сайті == | |||
{| class="wikitable" style="width:100%;" | |||
# створити категорію контенту; | |||
# створити мову; | |||
# створити новий матеріал; | |||
# вказати заголовок, короткий характеристика і повний текст; | |||
# обрати категорію через AJAX; | |||
# заповнити SEO-поля; | |||
# завантажити зображення-прев’ю через медіабібліотеку; | |||
# зберегти матеріал як чернетку; | |||
# перевірити автозбереження; | |||
# створити переклад матеріалу іншою мовою; | |||
# перевірити зв’язок між мовними версіями; | |||
# виконати попередній перегляд; | |||
# змінити статус на '''«Опубліковано»'''; | |||
# перевірити сформований URL; | |||
# переконатися, що матеріал доступний на сайті; | |||
# внести зміни в матеріал; | |||
# переглянути історію змін; | |||
# відкотити матеріал до попередньої версії; | |||
# створити модульний блок, якщо виконується Advanced-рівень; | |||
# показати журнал матеріалів із фільтрами.; |- | |||
| Назва категорії | |||
| Назва, яку бачить користувач системи | |||
|- | |||
| Тип категорії | |||
| Новина, стаття, сторінка, оголошення | |||
|- | |||
| Батьківська категорія | |||
| Для побудови ієрархії | |||
|- | |||
| URL-код | |||
| Частина адреси категорії | |||
|- | |||
| Статус | |||
| Активна або прихована | |||
|} | |||
Мінімальний складський облік даних: | |||
[[Категорія:CMS]] | |||
== Мета задача == | |||
Довідник категорій контенту потрібен для структурування матеріалів сайту або порталу.; |- | |||
| Чернетка | |||
| Матеріал збережено, але він не доступний на сайті | |||
|- | |||
| Опубліковано | |||
| Матеріал доступний на сайті | |||
|- | |||
| Приховано | |||
| Матеріал знято з публікації, але він збережений у системі | |||
|} | |||
!; як ілюстрація, категорія '''«Новини»''' має змогу містити підкатегорії '''«організація»''', '''«Продукти»''', '''«Події»'''.; !;<pre> | |||
== Див.; додатково == | == Див.; додатково == | ||
!Бали | |||
== Примітка == | |||
</div> | |||
# редактор створює новий матеріал; | |||
# обирає категорію та мову; | |||
# вводить заголовок, короткий характеристика і ключовий текст; | |||
# додає зображення-прев’ю або інші медіафайли; | |||
# заповнює SEO-поля; | |||
# зберігає матеріал як чернетку; | |||
# за потреби створює версію іншою мовою; | |||
# переглядає попередній вигляд матеріалу; | |||
# змінює статус на '''«Опубліковано»'''; | |||
# матеріал автономно з’являється на сайті за налаштованим URL; | |||
# платформа зберігає історію змін і автора останнього редагування.; характеристика | |||
Приклад URL: | |||
!; |} | |||
Мета задача — створити в K2 ERP CMS-модуль, який надає можливість керувати контентом сайту або внутрішнього корпоративного порталу без постійного залучення розробників.;</div> | |||
== WYSIWYG-редактор == | |||
!; Разом | |||
Для кожного блоку бажано передбачити: | |||
Журнал має підтримувати: | |||
!; платформа має дозволяти: | |||
Потрібно передбачити конфігурування розташування блоку через панель адміністратора.; * хто редагував матеріал; | |||
* дату й час зміни; | |||
* змінений заголовок; | |||
* змінений текст; | |||
* зміну статусу; | |||
* зміну категорії; | |||
* зміну SEO-полів; | |||
* стару версію; | |||
* нову версію.; характеристика | |||
{| class="wikitable" style="width:100%;" | |||
== Типи категорій == | |||
!; Бали | |||
Для реалізації задачі доцільно передбачити такі сутності: | |||
|- | |||
| Бекенд | |||
| K2 ERP на Python або PHP | |||
|- | |||
| База даних | |||
| PostgreSQL або MySQL | |||
|- | |||
| Фронтенд | |||
| HTML5, JavaScript | |||
|- | |||
| AJAX | |||
| Axios або Fetch API | |||
|- | |||
| UI-компоненти | |||
| DataTables, Select2, WYSIWYG-редактор TinyMCE або CKEditor | |||
|- | |||
| Медіауправління | |||
| FilePond або Dropzone.js | |||
|- | |||
| Друк | |||
| Немає обов’язкової необхідності | |||
|} | |} | ||
== | == Статуси публікації == | ||
[[Категорія:Атестаційні завдання K2]] | |||
* категорії контенту; | * категорії контенту; | ||
| Рядок 143: | Рядок 430: | ||
* модульні блоки; | * модульні блоки; | ||
* розташування блоків; | * розташування блоків; | ||
* автори | * автори; | ||
* права доступу.; * банер; | |||
* акційний блок; | |||
* слайдер; | |||
* інформаційна вставка; | |||
* блок переваг; | |||
* блок партнерів; | |||
* блок контактів.;== Коротко == | |||
'''компонент CMS: керування контентом сайту і корпоративного порталу'''.; !; Параметр | |||
== | !;== ключовий бізнес-процес == | ||
[[Категорія:Корпоративна Wiki]] | |||
!; Потрібно реалізувати механізм прив’язки матеріалів між мовами.; Призначення | |||
|- | |||
| Що потрібно створити?; URL-адреса має змогу генеруватися автономно на основі заголовка або задаватися вручну.; характеристика | |||
'''Критично.''' Чернетка не повинна відображатися на публічному сайті.; 100 | |||
<pre> | |||
Журнал матеріалів повинен відображати всі одиниці контенту сайту або корпоративного порталу.; !; Через AJAX мають працювати: | |||
CMS-модуль потрібен практично кожній компанії, що має сайт або внутрішній портал: IT-компаніям, маркетинг-агентствам, торговим мережам, освітнім установам, банкам, сервісним компаніям і виробникам.; Тип | |||
Критичними помилками вважаються ситуації, коли: | |||
Мінімальний складський облік даних: | |||
|- | |||
= | | Заголовок | ||
| Назва матеріалу | |||
|- | |||
| Категорія | |||
| Розділ, до якого належить матеріал | |||
|- | |||
| Автор | |||
| користувач системи, який створив матеріал | |||
|- | |||
| Дата створення | |||
| Коли матеріал створено | |||
|- | |||
| Дата останньої зміни | |||
| Коли матеріал редагували востаннє | |||
|- | |||
| Статус публікації | |||
| Чернетка, опубліковано, приховано | |||
|- | |||
| Мова | |||
| Мова матеріалу | |||
|- | |||
| URL | |||
| Адреса опублікованого матеріалу | |||
|} | |||
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
</div> | |||
* пошук по заголовку; | * пошук по заголовку; | ||
| Рядок 164: | Рядок 490: | ||
* пошук по категорії; | * пошук по категорії; | ||
* фільтрацію за статусом; | * фільтрацію за статусом; | ||
* фільтрацію за мовою.;== | * фільтрацію за мовою; | ||
* фільтрацію за датою створення; | |||
* швидку зміну статусу; | |||
* відкриття матеріалу на редагування; | |||
* попередній перегляд; | |||
* перехід до опублікованої сторінки; | |||
* копіювання матеріалу; | |||
* створення перекладу.; Рівень | |||
== Основна відомості == | |||
платформа повинна дозволяти: | |||
CMS-модуль має зняти цю залежність і дати користувачам контроль над контентом у межах зрозумілих прав доступу.; | <code>/код-мови/категорія/url-матеріалу/</code> | |||
|- | |||
| Що є собою критичною вимогою?; * TinyMCE; | |||
* CKEditor; | |||
* інший редактор, сумісний з K2 ERP.; Об’єкт | |||
!; розробника.; функціональні можливості | |||
Правильна реалізація CMS надає можливість бізнесу оперативно оновлювати інформацію, не створюючи кожного разу задачу для розробника.; * '''Новини компанії''' українською мовою → '''Company news''' англійською мовою.; Автозбереження потрібно для того, щоб редактор не втрачав текст у разі закриття сторінки, збою браузера або помилки з’єднання.; !;== історичний розвиток змін == | |||
== Права доступу == | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
Форма матеріалу повинна дозволяти створювати й редагувати контент без залучення розробника.; Довідник мов містить перелік мов, якими публікується контент.; * створення каталогів; | |||
* завантаження зображень; | |||
* завантаження PDF-файлів; | |||
* завантаження інших документів; | |||
* завантаження файлів через AJAX; | |||
* підключення файлів до матеріалів; | |||
* перегляд списку файлів; | |||
* пошук файлів; | |||
* видалення файлів за наявності прав; | |||
* можливість обрізки зображень при завантаженні; | |||
* зберігання медіафайлів у структурованих каталогах.; Значення | |||
* '''Про нас''' українською мовою → '''About us''' англійською мовою.; | Каталоги, завантаження файлів, прив’язку до матеріалів | |||
|- | |||
| Як має працювати мультимовність?; характеристика | |||
Потрібно реалізувати: | |||
<pre> | |||
Приклад: | |||
</pre> | |||
== Автозбереження чернеток == | |||
== Розташування модульних блоків == | |||
Можливі варіанти: | |||
== Реальний бізнес-контекст == | |||
!;== Шкала оцінювання == | |||
* неможливо створити матеріал; | |||
* матеріал не має статусу публікації; | |||
* чернетка відображається на публічному сайті; | |||
* опублікований матеріал недоступний за URL; | |||
* URL формується некоректно або дублюється; | |||
* неможливо завантажити медіафайл; | |||
* медіафайл не прив’язується до матеріалу; | |||
* мультимовні версії не пов’язані між собою; | |||
* історичний розвиток змін не зберігається; | |||
* неможливо відновити попередню версію; | |||
* немає розмежування прав між автором, редактором і адміністратором; | |||
* AJAX-збереження або автозбереження не функціонує.; Поле | |||
== Відкат до попередньої версії == | |||
компонент має містити медіабібліотеку з каталогами.; !; компонент повинен підтримувати автоматичне збереження чернеток кожні X хвилин.; |- | |||
| Новина | |||
| Публікації про події, актуалізація, зміни, анонси | |||
|- | |||
| Стаття | |||
| Аналітичні або інформаційні матеріали | |||
|- | |||
| Сторінка | |||
| Статичні сторінки сайту: про компанію, контакти, послуги | |||
|- | |||
| Оголошення | |||
| Короткі повідомлення або внутрішні публікації | |||
|} | |||
!; Максимальна оцінка | |||
* збереження матеріалу; | |||
* автозбереження чернетки; | |||
* завантаження медіафайлів; | |||
* вибір категорії; | |||
* зміна статусу; | |||
* створення перекладу; | |||
* додавання тегів; | |||
* актуалізація SEO-полів; | |||
* відновлення попередньої версії.; Поле | |||
компонент має підтримувати довідники категорій і мов, журнал матеріалів, форму створення та редагування контенту, WYSIWYG-редактор, медіабібліотеку, багатомовність, автоматичну публікацію, SEO-поля, історію змін, AJAX-інтерактив і, за потреби, модульні блоки контенту.; {| class="wikitable" style="width:100%;" | |||
CMS-модуль має підтримувати розмежування прав.;== Медіабібліотека == | |||
Рівень Advanced передбачає можливість створення окремих блоків контенту для розміщення в різних частинах сайту.; Частина користувачів має змогу готувати чернетки, а публікацію виконує редактор або адміністратор.; Статус | |||
Для редагування повного тексту матеріалу потрібно використати WYSIWYG-редактор.; Це сповільнює роботу забезпечується через Без CMS кожна зміна на сайті перетворюється на задачу; додатково реалізовано створює чергу дрібних правок і заважає бізнесу оперативно публікувати інформацію.; '''істотно.''' Медіафайли мають бути пов’язані з матеріалами, але не повинні безконтрольно дублюватися при кожному редагуванні сторінки.; Критерій | |||
== Функції медіабібліотеки == | |||
Редактор має дозволяти: | |||
|- | |||
| Реалізація журналу матеріалів | |||
| 20 | |||
| Список матеріалів, пошук, фільтри, статуси, мови, автори, категорії | |||
|- | |||
| Форма створення та редагування матеріалу | |||
| 20 | |||
| Заголовок, характеристика, WYSIWYG-редактор, категорія, мова, SEO, статус | |||
|- | |||
| Робота медіабібліотеки | |||
| 20 | |||
| Каталоги, завантаження файлів, прив’язка до матеріалів, AJAX-завантаження | |||
|- | |||
| супровід багатомовності | |||
| 20 | |||
| Мовні версії, зв’язок перекладів, URL з кодом мови | |||
|- | |||
| Інтерактивність через AJAX | |||
| 10 | |||
| Збереження, автозбереження, зміна статусу, медіафайли без перезавантаження | |||
|- | |||
| керування статусами публікації | |||
| 10 | |||
| Чернетка, опубліковано, приховано, попередній перегляд | |||
|- | |||
Мінімальний сценарій: | |||
Для завантаження файлів можна використовувати FilePond або Dropzone.js.; !; характеристика | |||
[[Категорія:K2 ERP]] | |||
!; Додатково потрібно передбачити SEO-поля.; | Один матеріал має змогу мати пов’язані версії різними мовами | |||
|- | |||
| Який URL потрібен?; !;== Основні об’єкти модуля == | |||
== Практичне задача == | |||
'''Коротко.''' Потрібно реалізувати CMS-модуль, який надає можливість менеджерам самостійно створювати й редагувати матеріали сайту, працювати з медіафайлами, публікувати контент різними мовами, керувати статусами та бачити історію змін.;== Форма створення та редагування матеріалу == | |||
/<код мови>/<категорія>/<url матеріалу>/ | |||
</pre> | |||
Поточна версія на 18:26, 1 травня 2026
Категорії можуть мати ієрархію.; Типовий бізнес-процес роботи CMS-модуля виглядає так:
URL повинен формуватися за правилом: Попередній перегляд надає можливість редактору побачити, як матеріал виглядатиме на сайті, ще до зміни статусу на «Опубліковано».; !; Призначення
Перед публікацією потрібно передбачити попередній перегляд матеріалу.; {| class="wikitable" style="width:100%;"
| Назва блоку | Внутрішня назва для адміністратора |
| Тип блоку | Банер, слайдер, HTML-блок, акційний блок тощо |
| Область показу | Головна сторінка, категорія, стаття, футер, сайдбар |
| Порядок | Черговість показу |
| Статус | Активний або вимкнений |
| Мова | Мова блоку, якщо він має мовні версії |
!; характеристика
!; |- | Заголовок | Основна назва матеріалу |- | Короткий характеристика або анонс | Текст для списків, прев’ю або SEO-опису |- | Повний текст | ключовий вміст матеріалу через WYSIWYG-редактор |- | Категорія | Вибір із довідника через AJAX |- | Мова | Мова поточної версії матеріалу |- | Зображення-прев’ю | Завантаження або вибір із медіабібліотеки |- | Статус | Чернетка, опубліковано, приховано |- | Автор | користувач системи, який створив матеріал |}
У межах атестації потрібно продемонструвати робочий сценарій.;== Назва задача ==
; Для української мови приклад має змогу мати вигляд:
Колонки журналу матеріалів | ||
|---|---|---|
| 90–100 | Відмінно | CMS-модуль в цілому функціонує: матеріали, медіа, мультимовність, публікація, SEO, історичний розвиток змін і AJAX реалізовані коректно |
| 75–89 | Добре | Основна логіка функціонує, є собою незначні недоліки, які не руйнують бізнес-процес публікації контенту |
| 60–74 | Зараховано | Базовий сценарій функціонує, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: створення матеріалів, публікація, медіафайли, мультимовність або статуси |
Кожен матеріал має змогу мати окремі версії різними мовами.; {| class="wikitable" style="width:100%;" компонент повинен дозволяти відкотити матеріал до попередньої версії.; характеристика !; {| class="wikitable" style="width:100%;" Умова складання. задача не має змогу бути зараховане, якщо платформа не надає можливість пройти базовий цикл CMS: створення матеріалу → збереження чернетки → додавання медіа → публікація → перегляд на сайті → історичний розвиток змін.; У результаті виконання атестаційного задача має бути створений CMS-модуль K2 ERP.; Потрібно реалізувати історію змін матеріалу.; Атестаційне задача K2 ERP — CMS — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля керування контентом сайту або корпоративного порталу.; Поле
Технічні вимоги
/en/news/open-new-office/ |- | Категорії контенту | Класифікація матеріалів: новини, статті, сторінки, оголошення |- | Мови | Перелік мов, якими публікується контент |- | Матеріали | Основні одиниці контенту: сторінки, новини, статті, оголошення |- | Переклади матеріалів | Версії одного матеріалу різними мовами |- | Медіафайли | Зображення, PDF, документи та інші файли |- | Каталоги медіабібліотеки | Структура зберігання файлів |- | Теги | Додаткова класифікація матеріалів |- | SEO-налаштування | Title, description, keywords, URL-slug |- | історичний розвиток змін | Версії матеріалу та інформаційні дані про редагування |- | Статуси публікації | Чернетка, опубліковано, приховано |- | Модульні блоки | Банери, слайдери, акційні блоки, інформаційні вставки |}
Рекомендовані сутності бази даних
SEO-поля
Критерії оцінювання
| ; Опублікований матеріал має бути доступний за сформованим URL.; центральний принцип. CMS у K2 ERP — це не без ускладнень форма для введення тексту.; Роль | Категорії контенту та мови |
|---|---|
| Повний цикл: чернетка → медіа → публікація → URL → історичний розвиток змін |
Очікуваний результат
- K2 ERP
- K2 ERP
- Атестаційні завдання K2 ERP
- CMS
- Контент
- Медіабібліотека
- Багатомовність
- WYSIWYG
- TinyMCE
- CKEditor
- SEO
- AJAX
Код мови застосовують, коли потрібно у формуванні URL матеріалу.; Що перевіряється
| SEO title | Заголовок сторінки для пошукових систем |
| SEO description | характеристика сторінки для пошукових систем |
| SEO keywords | Ключові слова, якщо вони використовуються |
| URL-адреса / slug | Частина адреси матеріалу |
| Теги | Тематичні мітки матеріалу |
Журнал «Матеріали»
Медіабібліотека потрібна для централізованого зберігання файлів, які використовуються в матеріалах сайту або порталу.; Поле
| Назва мови | як ілюстрація: українська, англійська, польська |
| Код мови | як ілюстрація: uk, en, pl
|
| Активність | Чи доступна мова для публікації |
| Мова за замовчуванням | Ознака основної мови сайту |
Функціональність журналу матеріалів
Приклади блоків:
; Маркетологи, редактори, HR-спеціалісти, менеджери або адміністратори повинні мати можливість самостійно додавати й оновлювати контент: сторінки, новини, статті, оголошення, документи, банери, акційні блоки або внутрішні повідомлення.;== Попередній перегляд ==
- створювати сторінки;
- створювати новини, статті та оголошення;
- редагувати матеріали через WYSIWYG-редактор;
- працювати з категоріями контенту;
- публікувати матеріали різними мовами;
- завантажувати зображення, PDF-файли та інші документи;
- підключати медіафайли до матеріалів;
- керувати статусами публікації;
- формувати зрозумілі URL;
- заповнювати SEO-поля;
- зберігати історію змін;
- відновлювати попередні версії матеріалів;
- керувати модульними блоками контенту.; історичний розвиток змін має фіксувати:
- форматувати текст;
- додавати заголовки;
- вставляти списки;
- вставляти посилання;
- додавати зображення;
- працювати з таблицями;
- редагувати HTML у межах дозволених прав.; Поле
Довідник «Категорії контенту»
Критичні помилки
організація має публічний сайт або внутрішній корпоративний портал.; /uk/news/vidkryttia-novoho-ofisu/
| CMS-модуль для керування контентом сайту або корпоративного порталу | ||
|---|---|---|
| Журнал матеріалів | ||
| Заголовок, характеристика, WYSIWYG-текст, категорія, мова, медіа, SEO, статус | ||
| Що має підтримувати медіабібліотека?; Питання
У журналі редактор має оперативно бачити, які матеріали є собою чернетками, які опубліковані, які приховані, хто автор, якою мовою матеріал створено і до якої категорії він належить.; * створювати переклад із поточного матеріалу;
|
; У формі потрібно передбачити:
Можливі ролі: |
; Колонка
Модульні блоки контентуAJAX-інтерактив |
| Автор | Створює та редагує власні чернетки | |
| Редактор | Редагує матеріали, функціонує з медіа, готує публікації | |
| Модератор | Перевіряє матеріали й змінює статуси | |
| Адміністратор | Керує категоріями, мовами, правами, шаблонами та публікацією |
Мультимовність
Довідник «Мови»
; !; компонент повинен підтримувати роботу без зайвих перезавантажень сторінки.;== Публікація на сайті ==
Мінімальний складський облік даних: Мета задачаДовідник категорій контенту потрібен для структурування матеріалів сайту або порталу.; |- |
Чернетка | Матеріал збережено, але він не доступний на сайті | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Опубліковано | Матеріал доступний на сайті | |||||||||||
| Приховано | Матеріал знято з публікації, але він збережений у системі |
; як ілюстрація, категорія «Новини» має змогу містити підкатегорії «організація», «Продукти», «Події».; !;
== Див.; додатково ==
== Примітка ==
</div>
# редактор створює новий матеріал;
# обирає категорію та мову;
# вводить заголовок, короткий характеристика і ключовий текст;
# додає зображення-прев’ю або інші медіафайли;
# заповнює SEO-поля;
# зберігає матеріал як чернетку;
# за потреби створює версію іншою мовою;
# переглядає попередній вигляд матеріалу;
# змінює статус на '''«Опубліковано»''';
# матеріал автономно з’являється на сайті за налаштованим URL;
# платформа зберігає історію змін і автора останнього редагування.; характеристика
Приклад URL:
!; |}
Мета задача — створити в K2 ERP CMS-модуль, який надає можливість керувати контентом сайту або внутрішнього корпоративного порталу без постійного залучення розробників.;</div>
== WYSIWYG-редактор ==
!; Разом
Для кожного блоку бажано передбачити:
Журнал має підтримувати:
!; платформа має дозволяти:
Потрібно передбачити конфігурування розташування блоку через панель адміністратора.; * хто редагував матеріал;
* дату й час зміни;
* змінений заголовок;
* змінений текст;
* зміну статусу;
* зміну категорії;
* зміну SEO-полів;
* стару версію;
* нову версію.; характеристика
{| class="wikitable" style="width:100%;"
== Типи категорій ==
!; Бали
Для реалізації задачі доцільно передбачити такі сутності:
|-
| Бекенд
| K2 ERP на Python або PHP
|-
| База даних
| PostgreSQL або MySQL
|-
| Фронтенд
| HTML5, JavaScript
|-
| AJAX
| Axios або Fetch API
|-
| UI-компоненти
| DataTables, Select2, WYSIWYG-редактор TinyMCE або CKEditor
|-
| Медіауправління
| FilePond або Dropzone.js
|-
| Друк
| Немає обов’язкової необхідності
|}
== Статуси публікації ==
[[Категорія:Атестаційні завдання K2]]
* категорії контенту;
* мови;
* матеріали;
* переклади матеріалів;
* медіафайли;
* каталоги медіабібліотеки;
* теги;
* SEO-налаштування;
* історичний розвиток змін;
* статуси публікації;
* модульні блоки;
* розташування блоків;
* автори;
* права доступу.; * банер;
* акційний блок;
* слайдер;
* інформаційна вставка;
* блок переваг;
* блок партнерів;
* блок контактів.;== Коротко ==
'''компонент CMS: керування контентом сайту і корпоративного порталу'''.; !; Параметр
!;== ключовий бізнес-процес ==
[[Категорія:Корпоративна Wiki]]
!; Потрібно реалізувати механізм прив’язки матеріалів між мовами.; Призначення
|-
| Що потрібно створити?; URL-адреса має змогу генеруватися автономно на основі заголовка або задаватися вручну.; характеристика
'''Критично.''' Чернетка не повинна відображатися на публічному сайті.; 100
<pre>
Журнал матеріалів повинен відображати всі одиниці контенту сайту або корпоративного порталу.; !; Через AJAX мають працювати:
CMS-модуль потрібен практично кожній компанії, що має сайт або внутрішній портал: IT-компаніям, маркетинг-агентствам, торговим мережам, освітнім установам, банкам, сервісним компаніям і виробникам.; Тип
Критичними помилками вважаються ситуації, коли:
Мінімальний складський облік даних:
|-
| Заголовок
| Назва матеріалу
|-
| Категорія
| Розділ, до якого належить матеріал
|-
| Автор
| користувач системи, який створив матеріал
|-
| Дата створення
| Коли матеріал створено
|-
| Дата останньої зміни
| Коли матеріал редагували востаннє
|-
| Статус публікації
| Чернетка, опубліковано, приховано
|-
| Мова
| Мова матеріалу
|-
| URL
| Адреса опублікованого матеріалу
|}
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
</div>
* пошук по заголовку;
* пошук по автору;
* пошук по категорії;
* фільтрацію за статусом;
* фільтрацію за мовою;
* фільтрацію за датою створення;
* швидку зміну статусу;
* відкриття матеріалу на редагування;
* попередній перегляд;
* перехід до опублікованої сторінки;
* копіювання матеріалу;
* створення перекладу.; Рівень
== Основна відомості ==
платформа повинна дозволяти:
CMS-модуль має зняти цю залежність і дати користувачам контроль над контентом у межах зрозумілих прав доступу.; | <code>/код-мови/категорія/url-матеріалу/</code>
|-
| Що є собою критичною вимогою?; * TinyMCE;
* CKEditor;
* інший редактор, сумісний з K2 ERP.; Об’єкт
!; розробника.; функціональні можливості
Правильна реалізація CMS надає можливість бізнесу оперативно оновлювати інформацію, не створюючи кожного разу задачу для розробника.; * '''Новини компанії''' українською мовою → '''Company news''' англійською мовою.; Автозбереження потрібно для того, щоб редактор не втрачав текст у разі закриття сторінки, збою браузера або помилки з’єднання.; !;== історичний розвиток змін ==
== Права доступу ==
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
Форма матеріалу повинна дозволяти створювати й редагувати контент без залучення розробника.; Довідник мов містить перелік мов, якими публікується контент.; * створення каталогів;
* завантаження зображень;
* завантаження PDF-файлів;
* завантаження інших документів;
* завантаження файлів через AJAX;
* підключення файлів до матеріалів;
* перегляд списку файлів;
* пошук файлів;
* видалення файлів за наявності прав;
* можливість обрізки зображень при завантаженні;
* зберігання медіафайлів у структурованих каталогах.; Значення
* '''Про нас''' українською мовою → '''About us''' англійською мовою.; | Каталоги, завантаження файлів, прив’язку до матеріалів
|-
| Як має працювати мультимовність?; характеристика
Потрібно реалізувати:
<pre>
Приклад:
Автозбереження чернеток
Розташування модульних блоків
Можливі варіанти:
Реальний бізнес-контекст
;== Шкала оцінювання ==
- неможливо створити матеріал;
- матеріал не має статусу публікації;
- чернетка відображається на публічному сайті;
- опублікований матеріал недоступний за URL;
- URL формується некоректно або дублюється;
- неможливо завантажити медіафайл;
- медіафайл не прив’язується до матеріалу;
- мультимовні версії не пов’язані між собою;
- історичний розвиток змін не зберігається;
- неможливо відновити попередню версію;
- немає розмежування прав між автором, редактором і адміністратором;
- AJAX-збереження або автозбереження не функціонує.; Поле
Відкат до попередньої версії
компонент має містити медіабібліотеку з каталогами.; !; компонент повинен підтримувати автоматичне збереження чернеток кожні X хвилин.; |-
Новина Публікації про події, актуалізація, зміни, анонси Стаття Аналітичні або інформаційні матеріали Сторінка Статичні сторінки сайту: про компанію, контакти, послуги Оголошення Короткі повідомлення або внутрішні публікації
!; Максимальна оцінка
- збереження матеріалу;
- автозбереження чернетки;
- завантаження медіафайлів;
- вибір категорії;
- зміна статусу;
- створення перекладу;
- додавання тегів;
- актуалізація SEO-полів;
- відновлення попередньої версії.; Поле
компонент має підтримувати довідники категорій і мов, журнал матеріалів, форму створення та редагування контенту, WYSIWYG-редактор, медіабібліотеку, багатомовність, автоматичну публікацію, SEO-поля, історію змін, AJAX-інтерактив і, за потреби, модульні блоки контенту.; {| class="wikitable" style="width:100%;"
CMS-модуль має підтримувати розмежування прав.;== Медіабібліотека ==
Рівень Advanced передбачає можливість створення окремих блоків контенту для розміщення в різних частинах сайту.; Частина користувачів має змогу готувати чернетки, а публікацію виконує редактор або адміністратор.; Статус Для редагування повного тексту матеріалу потрібно використати WYSIWYG-редактор.; Це сповільнює роботу забезпечується через Без CMS кожна зміна на сайті перетворюється на задачу; додатково реалізовано створює чергу дрібних правок і заважає бізнесу оперативно публікувати інформацію.; істотно. Медіафайли мають бути пов’язані з матеріалами, але не повинні безконтрольно дублюватися при кожному редагуванні сторінки.; Критерій
Функції медіабібліотеки
Редактор має дозволяти: |- | Реалізація журналу матеріалів | 20 | Список матеріалів, пошук, фільтри, статуси, мови, автори, категорії |- | Форма створення та редагування матеріалу | 20 | Заголовок, характеристика, WYSIWYG-редактор, категорія, мова, SEO, статус |- | Робота медіабібліотеки | 20 | Каталоги, завантаження файлів, прив’язка до матеріалів, AJAX-завантаження |- | супровід багатомовності | 20 | Мовні версії, зв’язок перекладів, URL з кодом мови |- | Інтерактивність через AJAX | 10 | Збереження, автозбереження, зміна статусу, медіафайли без перезавантаження |- | керування статусами публікації | 10 | Чернетка, опубліковано, приховано, попередній перегляд |- Мінімальний сценарій: Для завантаження файлів можна використовувати FilePond або Dropzone.js.; !; характеристика
!; Додатково потрібно передбачити SEO-поля.; | Один матеріал має змогу мати пов’язані версії різними мовами |- | Який URL потрібен?; !;== Основні об’єкти модуля ==
Практичне задача
Коротко. Потрібно реалізувати CMS-модуль, який надає можливість менеджерам самостійно створювати й редагувати матеріали сайту, працювати з медіафайлами, публікувати контент різними мовами, керувати статусами та бачити історію змін.;== Форма створення та редагування матеріалу == /<код мови>/<категорія>/<url матеріалу>/