Атестаційні завдання K2 ERP/CMS
Категорії можуть мати ієрархію.; Типовий бізнес-процес роботи 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 матеріалу>/