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

Атестаційні завдання K2 ERP/CMS: відмінності між версіями

Матеріал з K2 ERP Wiki
Перенос з Гугл док.
 
Немає опису редагування
 
Рядок 1: Рядок 1:
Користувачі повинні мати можливість:
Категорії можуть мати ієрархію.; Типовий бізнес-процес роботи CMS-модуля виглядає так:


Журнал матеріалів повинен відображати всі одиниці контенту сайту або корпоративного порталу.; Окремо варто відзначити новинами, статтями, оголошеннями, медіафайлами, багатомовністю, публікацією і історією змін виступає ключовою рисою розробника K2 ERP забезпечується через '''Атестаційне задача K2 ERP.; Потрібно передбачити конфігурування розташування блоку через панель адміністратора.; !Параметр
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
URL повинен формуватися за правилом:
Попередній перегляд надає можливість редактору побачити, як матеріал виглядатиме на сайті, ще до зміни статусу на '''«Опубліковано»'''.; !; Призначення


У результаті виконання атестаційного задача має бути створений CMS-модуль K2 ERP, який підтримує роботу довідники категорій і мов, журнал матеріалів, форму створення та редагування контенту, WYSIWYG-редактор, медіабібліотеку, багатомовність, автоматичну публікацію, SEO-поля, історію змін, AJAX-інтерактив і, за потреби, модульні блоки контенту.;== Рекомендовані сутності бази даних ==
Перед публікацією потрібно передбачити попередній перегляд матеріалу.; {| class="wikitable" style="width:100%;"
компонент повинен підтримувати:
{| class="wikitable" style="width:100%;"
|-
| Назва блоку
| Внутрішня назва для адміністратора
|-
| Тип блоку
| Банер, слайдер, HTML-блок, акційний блок тощо
|-
| Область показу
| Головна сторінка, категорія, стаття, футер, сайдбар
|-
| Порядок
| Черговість показу
|-
| Статус
| Активний або вимкнений
|-
| Мова
| Мова блоку, якщо він має мовні версії
|}


* назву мови, як ілюстрація українська, англійська, польська;
!; характеристика
* код мови, як ілюстрація <code>uk</code>, <code>en</code>, <code>pl</code>.; {| class="wikitable"
=== 5.; Мультимовність ===


=== 8.; Модульні блоки контенту, опціонально ===
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/CMS}}
 
!; |-
| Заголовок
| Основна назва матеріалу
|-
| Короткий характеристика або анонс
| Текст для списків, прев’ю або SEO-опису
|-
| Повний текст
| ключовий вміст матеріалу через WYSIWYG-редактор
|-
| Категорія
| Вибір із довідника через AJAX
|-
| Мова
| Мова поточної версії матеріалу
|-
| Зображення-прев’ю
| Завантаження або вибір із медіабібліотеки
|-
| Статус
| Чернетка, опубліковано, приховано
|-
| Автор
| користувач системи, який створив матеріал
|}


* завантаження зображень та файлів через AJAX;
У межах атестації потрібно продемонструвати робочий сценарій.;== Назва задача ==
* підключення файлів до матеріалів;
* можливість обрізки зображень при завантаженні;
* зберігання медіафайлів у структурованих каталогах.; Потрібно реалізувати:


* заголовок;
[[Категорія:Контент]]
* категорія;
* автор;
* дата створення;
* статус публікації:
** чернетка;
** опубліковано;
** приховано;
* мова.;</pre>
==== Колонки журналу ====


!Разом
{| class="wikitable" style="width:100%;"
!100
Кожен матеріал має змогу мати окремі версії різними мовами.; Потрібно надати менеджерам можливість самостійно керувати контентом без залучення розробників.; Потрібно реалізувати механізм прив’язки матеріалів між мовами.; !характеристика
Журнал має підтримувати:


* теги для SEO;
!; Для української мови приклад має змогу мати вигляд:
* URL-адресу, яка генерується автономно або вказується вручну.; Довідник мов повинен містити:
__TOC__
'''компонент CMS: керування контентом сайту і корпоративного порталу'''.; Форма створення або редагування матеріалу повинна містити:
== Колонки журналу матеріалів ==
|-
| 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 → історичний розвиток змін
|}


* заголовок;
== Очікуваний результат ==
* короткий характеристика або анонс;
* повний текст матеріалу через WYSIWYG-редактор;
* категорію з вибором із довідника через AJAX;
* мову;
* зображення-прев’ю із завантаженням через медіабібліотеку;
* статус:
** чернетка;
** опубліковано.;=== 2.; Журнал «Матеріали» ===


== Технічні вимоги ==
* [[K2 Cloud ERP|K2 ERP]]
* [[K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[CMS]]
* [[Контент]]
* [[Медіабібліотека]]
* [[Багатомовність]]
* [[WYSIWYG]]
* [[TinyMCE]]
* [[CKEditor]]
* [[SEO]]
* [[AJAX]]


* банер;
Код мови застосовують, коли потрібно у формуванні URL матеріалу.; Що перевіряється
* акційний блок;
* слайдер.; URL повинен формуватися за правилом:<pre>


Цей компонент потрібен практично кожній компанії, що має сайт або внутрішній портал: IT-компаніям, маркетинг-агентствам, торговим мережам, освітнім установам і банкам.; організація має публічний сайт або внутрішній корпоративний портал.; * назву категорії;
</div>
* тип категорії:
{| class="wikitable" style="width:100%;"
** новина;
[[Категорія:Медіабібліотека]]
** стаття;
** сторінка;
** оголошення;
* батьківську категорію для побудови ієрархії.;== Критерії оцінки ==
Довідник категорій контенту повинен містити:
==== Довідник «Категорії контенту» ====
|-
|-
|Бекенд
| SEO title
|K2 ERP на Python або PHP
| Заголовок сторінки для пошукових систем
|-
|-
|БД
| SEO description
|PostgreSQL або MySQL
| характеристика сторінки для пошукових систем
|-
|-
|Фронтенд
| SEO keywords
|HTML5, JavaScript, AJAX через Axios або Fetch API
| Ключові слова, якщо вони використовуються
|-
|-
|UI-компоненти
| URL-адреса / slug
|DataTables, Select2, WYSIWYG-редактор TinyMCE або CKEditor
| Частина адреси матеріалу
|-
|-
|Медіауправління
| Теги
|Завантаження файлів через FilePond або Dropzone.js
| Тематичні мітки матеріалу
|}
 
== Журнал «Матеріали» ==
 
Медіабібліотека потрібна для централізованого зберігання файлів, які використовуються в матеріалах сайту або порталу.; Поле
{| 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;">
компонент має містити медіабібліотеку з каталогами.; /<код мови>/<категорія>/<url матеріалу>/


Приклад:
</div>
У журналі мають бути такі колонки:
 
== Функціональність журналу матеріалів ==
 
Приклади блоків:
 
</pre>
 
!; Маркетологи, редактори, HR-спеціалісти, менеджери або адміністратори повинні мати можливість самостійно додавати й оновлювати контент: сторінки, новини, статті, оголошення, документи, банери, акційні блоки або внутрішні повідомлення.;== Попередній перегляд ==


Додатково потрібно передбачити:
{| class="wikitable" style="width:100%;"


* створювати сторінки;
* створювати сторінки;
* редагувати новини, статті та оголошення;
* створювати новини, статті та оголошення;
* керувати медіафайлами: зображеннями, PDF-файлами та іншими документами;
* редагувати матеріали через WYSIWYG-редактор;
* публікувати інформацію кількома мовами.;==== Додаткові поля ====
* працювати з категоріями контенту;
* публікувати матеріали різними мовами;
* завантажувати зображення, PDF-файли та інші документи;
* підключати медіафайли до матеріалів;
* керувати статусами публікації;
* формувати зрозумілі URL;
* заповнювати SEO-поля;
* зберігати історію змін;
* відновлювати попередні версії матеріалів;
* керувати модульними блоками контенту.; історичний розвиток змін має фіксувати:
 
* форматувати текст;
* додавати заголовки;
* вставляти списки;
* вставляти посилання;
* додавати зображення;
* працювати з таблицями;
* редагувати HTML у межах дозволених прав.; Поле
 
компонент має забезпечувати роботу зі сторінками, новинами, статтями, оголошеннями, медіафайлами, багатомовністю, SEO-полями, публікацією, історією змін і правами доступу.; Відповідь
 
Автозбереження не повинно автономно публікувати матеріал.; Бали
 
== Довідник «Категорії контенту» ==
 
== Критичні помилки ==


Рівень Advanced передбачає можливість створення окремих блоків контенту для розміщення в різних частинах сайту.; CMS''' — практична задача; додатково реалізовано що передбачає створення модуля керування контентом сайту або корпоративного порталу: сторінками.;=== 6.; Публікація на сайті ===
організація має публічний сайт або внутрішній корпоративний портал.; /uk/news/vidkryttia-novoho-ofisu/
==== Основна відомості ====
 
!; | CMS-модуль для керування контентом сайту або корпоративного порталу
|-
|-
|Реалізація журналу матеріалів
| Які довідники потрібні?; !; | Журнал матеріалів
|20
|-
|-
|Форма створення та редагування матеріалу
| Що має бути у формі матеріалу?; | Заголовок, характеристика, WYSIWYG-текст, категорія, мова, медіа, SEO, статус
|20
|-
|-
|Робота медіабібліотеки
| Що має підтримувати медіабібліотека?; Питання
|20
 
У журналі редактор має оперативно бачити, які матеріали є собою чернетками, які опубліковані, які приховані, хто автор, якою мовою матеріал створено і до якої категорії він належить.; * створювати переклад із поточного матеріалу;
* бачити, які мовні версії вже існують;
* перемикатися між мовними версіями;
* не втрачати зв’язок між перекладами;
* формувати 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>
|-
|-
|супровід багатомовності
| Автор
|20
| Створює та редагує власні чернетки
|-
|-
|Інтерактивність через AJAX
| Редактор
|10
| Редагує матеріали, функціонує з медіа, готує публікації
|-
|-
|керування статусами публікації
| Модератор
|10
| Перевіряє матеріали й змінює статуси
|-
|-
| Адміністратор
| Керує категоріями, мовами, правами, шаблонами та публікацією
|}
{| 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
|-
| Друк
| Немає обов’язкової необхідності
|}
|}


== Основні задача ==
== Статуси публікації ==
==== Довідник «Мови» ====
 
==== Функціональність журналу ====
!Критерій


{| class="wikitable"
[[Категорія:Атестаційні завдання K2]]


* категорії контенту;
* категорії контенту;
Рядок 143: Рядок 430:
* модульні блоки;
* модульні блоки;
* розташування блоків;
* розташування блоків;
* автори та права доступу.;=== 4.; керування медіафайлами ===
* автори;
* права доступу.; * банер;
* акційний блок;
* слайдер;
* інформаційна вставка;
* блок переваг;
* блок партнерів;
* блок контактів.;== Коротко ==
'''компонент CMS: керування контентом сайту і корпоративного порталу'''.; !; Параметр


== Примітка ==
!;== ключовий бізнес-процес ==
 
[[Категорія:Корпоративна Wiki]]


* '''Про нас''' українською мовою → '''About us''' англійською мовою.; Після публікації матеріал автономно відображається на сайті за налаштованим шаблоном.; Приклади блоків:
!; Потрібно реалізувати механізм прив’язки матеріалів між мовами.; Призначення
|-
| Що потрібно створити?; URL-адреса має змогу генеруватися автономно на основі заголовка або задаватися вручну.; характеристика
'''Критично.''' Чернетка не повинна відображатися на публічному сайті.; 100


=== 1.; Структура довідників ===
<pre>
</pre>Приклад URL:<pre>


* редагування контенту без перезавантаження сторінки через AJAX;
Журнал матеріалів повинен відображати всі одиниці контенту сайту або корпоративного порталу.; !; Через AJAX мають працювати:
* автоматичне збереження чернеток кожні X хвилин;
 
* відображення історії змін;
CMS-модуль потрібен практично кожній компанії, що має сайт або внутрішній портал: IT-компаніям, маркетинг-агентствам, торговим мережам, освітнім установам, банкам, сервісним компаніям і виробникам.; Тип
* фіксацію того, хто редагував матеріал;
Критичними помилками вважаються ситуації, коли:
* фіксацію дати та часу останньої зміни;
Мінімальний складський облік даних:
* можливість відкату до попередньої версії.;=== 3.; Форма створення матеріалу ===
|-
=== 7.; Специфіка функціоналу ===
| Заголовок
| Назва матеріалу
|-
| Категорія
| Розділ, до якого належить матеріал
|-
| Автор
| користувач системи, який створив матеріал
|-
| Дата створення
| Коли матеріал створено
|-
| Дата останньої зміни
| Коли матеріал редагували востаннє
|-
| Статус публікації
| Чернетка, опубліковано, приховано
|-
| Мова
| Мова матеріалу
|-
| 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 Cloud ERP|K2 ERP]]
[[Категорія:K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
 
* [[CMS]]
!; Додатково потрібно передбачити SEO-поля.; | Один матеріал має змогу мати пов’язані версії різними мовами
* [[Контент]]
|-
* [[Медіабібліотека]]
| Який URL потрібен?; !;== Основні об’єкти модуля ==
* [[Багатомовність]]
 
* [[WYSIWYG]]
== Практичне задача ==
* [[TinyMCE]]
 
* [[CKEditor]]
'''Коротко.''' Потрібно реалізувати 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 |- | історичний розвиток змін | Версії матеріалу та інформаційні дані про редагування |- | Статуси публікації | Чернетка, опубліковано, приховано |- | Модульні блоки | Банери, слайдери, акційні блоки, інформаційні вставки |}

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

Практичний сенс. Не кожен користувач системи CMS має право публікувати матеріали.; характеристика

SEO-поля

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

; Опублікований матеріал має бути доступний за сформованим URL.; центральний принцип. CMS у K2 ERP — це не без ускладнень форма для введення тексту.; Роль Категорії контенту та мови
Повний цикл: чернетка → медіа → публікація → URL → історичний розвиток змін

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

Код мови застосовують, коли потрібно у формуванні URL матеріалу.; Що перевіряється

SEO title Заголовок сторінки для пошукових систем
SEO description характеристика сторінки для пошукових систем
SEO keywords Ключові слова, якщо вони використовуються
URL-адреса / slug Частина адреси матеріалу
Теги Тематичні мітки матеріалу

Журнал «Матеріали»

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

Назва мови як ілюстрація: українська, англійська, польська
Код мови як ілюстрація: uk, en, pl
Активність Чи доступна мова для публікації
Мова за замовчуванням Ознака основної мови сайту

Функціональність журналу матеріалів

Приклади блоків:

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

  • створювати сторінки;
  • створювати новини, статті та оголошення;
  • редагувати матеріали через WYSIWYG-редактор;
  • працювати з категоріями контенту;
  • публікувати матеріали різними мовами;
  • завантажувати зображення, PDF-файли та інші документи;
  • підключати медіафайли до матеріалів;
  • керувати статусами публікації;
  • формувати зрозумілі URL;
  • заповнювати SEO-поля;
  • зберігати історію змін;
  • відновлювати попередні версії матеріалів;
  • керувати модульними блоками контенту.; історичний розвиток змін має фіксувати:
  • форматувати текст;
  • додавати заголовки;
  • вставляти списки;
  • вставляти посилання;
  • додавати зображення;
  • працювати з таблицями;
  • редагувати HTML у межах дозволених прав.; Поле
компонент має забезпечувати роботу зі сторінками, новинами, статтями, оголошеннями, медіафайлами, багатомовністю, SEO-полями, публікацією, історією змін і правами доступу.; Відповідь Автозбереження не повинно автономно публікувати матеріал.; Бали

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

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

організація має публічний сайт або внутрішній корпоративний портал.; /uk/news/vidkryttia-novoho-ofisu/

CMS-модуль для керування контентом сайту або корпоративного порталу
Журнал матеріалів
Заголовок, характеристика, WYSIWYG-текст, категорія, мова, медіа, SEO, статус
Що має підтримувати медіабібліотека?; Питання

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

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

Можливі ролі:

; Колонка

Модульні блоки контенту

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

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

Мультимовність

Довідник «Мови»

; !; компонент повинен підтримувати роботу без зайвих перезавантажень сторінки.;== Публікація на сайті ==
  1. створити категорію контенту;
  2. створити мову;
  3. створити новий матеріал;
  4. вказати заголовок, короткий характеристика і повний текст;
  5. обрати категорію через AJAX;
  6. заповнити SEO-поля;
  7. завантажити зображення-прев’ю через медіабібліотеку;
  8. зберегти матеріал як чернетку;
  9. перевірити автозбереження;
  10. створити переклад матеріалу іншою мовою;
  11. перевірити зв’язок між мовними версіями;
  12. виконати попередній перегляд;
  13. змінити статус на «Опубліковано»;
  14. перевірити сформований URL;
  15. переконатися, що матеріал доступний на сайті;
  16. внести зміни в матеріал;
  17. переглянути історію змін;
  18. відкотити матеріал до попередньої версії;
  19. створити модульний блок, якщо виконується Advanced-рівень;
  20. показати журнал матеріалів із фільтрами.; |-
Назва категорії Назва, яку бачить користувач системи
Тип категорії Новина, стаття, сторінка, оголошення
Батьківська категорія Для побудови ієрархії
URL-код Частина адреси категорії
Статус Активна або прихована

Мінімальний складський облік даних:

Мета задача

Довідник категорій контенту потрібен для структурування матеріалів сайту або порталу.; |-

Чернетка Матеріал збережено, але він не доступний на сайті
Опубліковано Матеріал доступний на сайті
Приховано Матеріал знято з публікації, але він збережений у системі

; як ілюстрація, категорія «Новини» має змогу містити підкатегорії «організація», «Продукти», «Події».; !;


== Див.; додатково ==

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

</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 матеріалу>/