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