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