Атестаційні завдання 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;"> | |||
'''Коротко.''' Потрібно реалізувати біржу фрілансу: замовники, фрілансери, категорії, проєкти, заявки, вибір виконавця, чат, статуси проєктів, рейтинги, відгуки, комісії, баланси, преміум-функції та звіти. | |||
</div> | |||
__TOC__ | |||
== Назва завдання == | |||
'''Модуль онлайн-біржі фрілансу: проєкти, заявки, виконавці'''. | |||
== Мета завдання == | |||
Мета завдання — створити в K2 ERP модуль для автоматизації роботи фріланс-платформи. | |||
Система повинна дозволяти: | |||
* реєструвати замовників; | |||
* реєструвати фрілансерів; | |||
* створювати профілі фрілансерів; | |||
* додавати портфоліо; | |||
* вести категорії та підкатегорії проєктів; | |||
* створювати проєкти замовниками; | |||
* фільтрувати проєкти за категорією, бюджетом і типом оплати; | |||
* подавати заявки фрілансерами; | |||
* обирати виконавця серед заявок; | |||
* переводити проєкт у роботу; | |||
* вести чат між замовником і фрілансером; | |||
* контролювати статуси проєкту; | |||
* завершувати проєкт; | |||
* залишати відгуки й оцінки; | |||
* розраховувати рейтинг фрілансера; | |||
* обліковувати комісію платформи; | |||
* вести баланси користувачів, якщо реалізується фінансова частина; | |||
* підтримувати преміум-функції; | |||
* формувати звіти по проєктах, заявках, фрілансерах, комісіях і доходах платформи. | |||
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;"> | |||
'''Головний принцип.''' Біржа фрілансу має з’єднати замовника і виконавця: замовник описує задачу, фрілансер подає пропозицію, сторони домовляються, виконують роботу, закривають проєкт і залишають відгуки. | |||
</div> | |||
== Реальний бізнес-контекст == | == Реальний бізнес-контекст == | ||
Фріланс-платформа дозволяє замовникам знаходити виконавців для разових або регулярних задач, а фрілансерам — знаходити роботу, подавати заявки та отримувати оплату за виконані проєкти. | |||
На платформі можуть розміщуватися проєкти з різних напрямів: | |||
* веб-розробка; | |||
* дизайн; | |||
* копірайтинг; | |||
* переклади; | |||
* маркетинг; | |||
* SEO; | |||
* відеомонтаж; | |||
* бухгалтерські послуги; | |||
* юридичні послуги; | |||
* адміністрування сайтів; | |||
* технічна підтримка; | |||
* консалтинг; | |||
* автоматизація бізнесу. | |||
Платформа повинна бути зручною для обох сторін. Замовнику потрібно швидко створити проєкт, отримати заявки, порівняти ціни, строки, рейтинги та портфоліо. Фрілансеру потрібно бачити актуальні проєкти, подавати пропозиції, спілкуватися із замовником і отримувати оцінки після виконання. | |||
== Основний бізнес-процес == | |||
Типовий процес роботи біржі фрілансу виглядає так: | |||
# адміністратор створює категорії проєктів; | |||
# замовник реєструється на платформі; | |||
# фрілансер реєструється і заповнює профіль; | |||
# фрілансер додає портфоліо; | |||
# замовник створює проєкт; | |||
# проєкт проходить модерацію або одразу стає активним; | |||
# фрілансери знаходять проєкт через пошук і фільтри; | |||
# фрілансери подають заявки; | |||
# замовник переглядає заявки; | |||
# замовник обирає виконавця; | |||
# проєкт переходить у статус '''«В роботі»'''; | |||
# сторони спілкуються в чаті; | |||
# фрілансер виконує роботу; | |||
# замовник приймає результат; | |||
# проєкт завершується; | |||
# сторони залишають відгуки; | |||
# система оновлює рейтинг фрілансера; | |||
# платформа нараховує комісію, якщо фінансовий блок реалізований. | |||
== Основні об’єкти модуля == | |||
{| class="wikitable" style="width:100%;" | |||
! Об’єкт | |||
! Призначення | |||
|- | |||
| Замовники | |||
| Користувачі, які створюють проєкти | |||
|- | |||
| Фрілансери | |||
| Виконавці, які подають заявки й виконують роботи | |||
|- | |||
| Категорії проєктів | |||
| Напрями робіт: розробка, дизайн, тексти, маркетинг тощо | |||
|- | |||
| Типи проєктів | |||
| Фіксована ціна або погодинна оплата | |||
|- | |||
| Проєкти | |||
| Завдання, які розміщують замовники | |||
|- | |||
| Заявки | |||
| Пропозиції фрілансерів щодо ціни, строку й підходу | |||
|- | |||
| Чат | |||
| Комунікація між замовником і виконавцем | |||
|- | |||
| Портфоліо | |||
| Приклади робіт фрілансера | |||
|- | |||
| Рейтинги | |||
| Оцінка якості роботи фрілансера | |||
|- | |||
| Відгуки | |||
| Коментарі сторін після завершення проєкту | |||
|- | |||
| Комісії | |||
| Відсоток або фіксована сума платформи | |||
|- | |||
| Баланси | |||
| Облік коштів користувачів, якщо реалізується фінансова частина | |||
|- | |||
| Преміум-послуги | |||
| Підняття проєктів, виділення профілів, просування | |||
|- | |||
| Звіти | |||
| Аналітика по проєктах, заявках, користувачах і доходах | |||
|} | |||
== Довідник «Категорії проєктів» == | |||
Категорії потрібні для структурування проєктів і профілів фрілансерів. | |||
Категорії можуть бути багаторівневими. | |||
== Приклади категорій == | |||
* веб-розробка; | |||
* мобільна розробка; | |||
* дизайн; | |||
* копірайтинг; | |||
* переклади; | |||
* маркетинг; | |||
* SEO; | |||
* відео та анімація; | |||
* адміністрування; | |||
* бухгалтерія; | |||
* юридичні послуги; | |||
* бізнес-консалтинг. | |||
== Поля категорії == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва категорії | |||
| Наприклад: веб-розробка, дизайн, копірайтинг | |||
|- | |||
| Батьківська категорія | |||
| Для створення підкатегорій | |||
|- | |||
| Опис | |||
| Короткий опис напряму | |||
|- | |||
| Активність | |||
| Чи доступна категорія для нових проєктів | |||
|- | |||
| Порядок сортування | |||
| Позиція категорії в списку | |||
|} | |||
== Довідник «Типи проєктів» == | |||
Тип проєкту визначає принцип оплати. | |||
== | == Типи проєктів == | ||
== | {| class="wikitable" style="width:100%;" | ||
! Тип | |||
! Значення | |||
|- | |||
| Фіксована ціна | |||
| Замовник і фрілансер домовляються про загальну суму за проєкт | |||
|- | |||
| Погодинна оплата | |||
| Оплата залежить від кількості відпрацьованих годин | |||
|} | |||
== Профіль фрілансера == | |||
Профіль фрілансера — це публічна сторінка виконавця. | |||
== | == Поля профілю фрілансера == | ||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| ПІБ або псевдонім | |||
| Ім’я виконавця на платформі | |||
|- | |||
| Фото | |||
| Аватар або фото профілю | |||
|- | |||
| Короткий опис | |||
| Хто фрілансер і чим займається | |||
|- | |||
| Категорії спеціалізації | |||
| Напрями роботи | |||
|- | |||
| Навички | |||
| Технології, інструменти, професійні навички | |||
|- | |||
| Досвід | |||
| Опис досвіду роботи | |||
|- | |||
| Портфоліо | |||
| Приклади виконаних робіт | |||
|- | |||
| Рейтинг | |||
| Середня оцінка за завершеними проєктами | |||
|- | |||
| Кількість виконаних проєктів | |||
| Показник досвіду на платформі | |||
|- | |||
| Ставка за годину | |||
| Для погодинних проєктів, опціонально | |||
|- | |||
| Статус | |||
| Активний, прихований, заблокований | |||
|} | |||
== Портфоліо фрілансера == | |||
Портфоліо дозволяє фрілансеру показати приклади робіт. | |||
== Поля роботи в портфоліо == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва роботи | |||
| Назва проєкту або прикладу | |||
|- | |||
| Категорія | |||
| До якого напряму належить робота | |||
|- | |||
| Опис | |||
| Що було зроблено | |||
|- | |||
| Посилання | |||
| URL на роботу, якщо є | |||
|- | |||
| Зображення | |||
| Скриншот або прев’ю | |||
|- | |||
| Дата виконання | |||
| Коли робота була виконана | |||
|} | |||
== Профіль замовника == | |||
Профіль замовника містить інформацію про користувача або компанію, що створює проєкти. | |||
== | == Поля профілю замовника == | ||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
** | |- | ||
** | | ПІБ або назва компанії | ||
* | | Ім’я замовника або назва організації | ||
* | |- | ||
* | | Тип замовника | ||
** | | Фізична особа або компанія | ||
** | |- | ||
** | | Контактна особа | ||
** | | Представник замовника | ||
* | |- | ||
* | | Опис | ||
* | | Коротка інформація про замовника | ||
|- | |||
| Кількість створених проєктів | |||
| Статистика активності | |||
|- | |||
| Кількість завершених проєктів | |||
| Скільки проєктів завершено | |||
|- | |||
| Рейтинг замовника | |||
| Оцінка від фрілансерів | |||
|- | |||
| Статус | |||
| Активний, заблокований, на перевірці | |||
|} | |||
== База «Проєкти» == | |||
Проєкт — головний об’єкт біржі фрілансу. | |||
== Колонки бази проєктів == | |||
{| class="wikitable" style="width:100%;" | |||
! Колонка | |||
! Опис | |||
|- | |||
| Назва проєкту | |||
| Коротка назва завдання | |||
|- | |||
| Замовник | |||
| Хто створив проєкт | |||
|- | |||
| Категорія | |||
| Напрям роботи | |||
|- | |||
| Бюджет від | |||
| Мінімальний бюджет | |||
|- | |||
| Бюджет до | |||
| Максимальний бюджет | |||
|- | |||
| Тип проєкту | |||
| Фіксована ціна або погодинна оплата | |||
|- | |||
| Статус | |||
| Активний, у виборі виконавця, в роботі, завершений, скасований | |||
|- | |||
| Дата створення | |||
| Коли проєкт опубліковано | |||
|- | |||
| Дедлайн | |||
| До якої дати потрібно виконати роботу | |||
|} | |||
== Поля проєкту == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва проєкту | |||
| Короткий заголовок | |||
|- | |||
| Категорія | |||
| Напрям роботи | |||
|- | |||
| Опис завдання | |||
| Детальний опис того, що потрібно зробити | |||
|- | |||
| Очікуваний результат | |||
| Що має отримати замовник | |||
|- | |||
| Бюджет від | |||
| Мінімальна сума | |||
|- | |||
| Бюджет до | |||
| Максимальна сума | |||
|- | |||
| Тип проєкту | |||
| Фіксована ціна або погодинно | |||
|- | |||
| Дедлайн | |||
| Планова дата завершення | |||
|- | |||
| Файли | |||
| Технічне завдання, макети, приклади, документи | |||
|- | |||
| Статус | |||
| Поточний стан проєкту | |||
|} | |||
== Статуси проєкту == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Чернетка | |||
| Проєкт створюється, але ще не опублікований | |||
|- | |||
| На модерації | |||
| Проєкт очікує перевірки адміністрацією | |||
|- | |||
| Активний | |||
| Проєкт доступний фрілансерам для подання заявок | |||
|- | |||
| У виборі виконавця | |||
| Замовник переглядає заявки | |||
|- | |||
| В роботі | |||
| Виконавця обрано, робота виконується | |||
|- | |||
| На перевірці | |||
| Фрілансер передав результат замовнику | |||
|- | |||
| Завершений | |||
| Замовник прийняв роботу | |||
|- | |||
| Скасований | |||
| Проєкт скасовано | |||
|- | |||
| Архівний | |||
| Проєкт більше неактивний, але зберігається в системі | |||
|} | |||
== Створення проєкту == | |||
Замовник створює проєкт через форму. | |||
== Кроки створення проєкту == | |||
# Замовник вибирає категорію. | |||
# Вводить назву проєкту. | |||
# Описує задачу. | |||
# Вказує очікуваний результат. | |||
# Вказує бюджет. | |||
# Обирає тип оплати. | |||
# Вказує дедлайн. | |||
# Додає файли, якщо потрібно. | |||
# Публікує проєкт або відправляє на модерацію. | |||
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;"> | |||
'''Важливо.''' Опис проєкту має бути достатньо зрозумілим, щоб фрілансер міг оцінити складність, строк і вартість роботи. | |||
</div> | |||
== Пошук і фільтрація проєктів == | |||
Фрілансери повинні мати зручний пошук проєктів. | |||
== Пошук проєктів == | |||
Пошук має працювати по: | |||
* назві проєкту; | |||
* опису; | |||
* категорії; | |||
* навичках; | |||
* замовнику. | |||
== Фільтри проєктів == | |||
Система повинна підтримувати фільтрацію за: | |||
* категорією; | |||
* підкатегорією; | |||
* бюджетом від; | |||
* бюджетом до; | |||
* типом проєкту; | |||
* датою публікації; | |||
* дедлайном; | |||
* статусом, для адміністратора. | |||
== Сортування проєктів == | |||
Сортування може виконуватися: | |||
* за датою публікації; | |||
* за бюджетом зростання; | |||
* за бюджетом спадання; | |||
* за кількістю заявок; | |||
* за дедлайном; | |||
* за преміум-статусом. | |||
== Заявки фрілансерів == | |||
Заявка — це пропозиція фрілансера виконати проєкт. | |||
== Поля заявки == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Проєкт | |||
| На який проєкт подається заявка | |||
|- | |||
| Фрілансер | |||
| Хто подає заявку | |||
|- | |||
| Ціна | |||
| Запропонована вартість | |||
|- | |||
| Термін виконання | |||
| Скільки часу потрібно на роботу | |||
|- | |||
| Коментар | |||
| Пояснення підходу або умови виконання | |||
|- | |||
| Дата подання | |||
| Коли заявку створено | |||
|- | |||
| Статус заявки | |||
| Нова, переглянута, прийнята, відхилена | |||
|} | |||
== Статуси заявки == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Нова | |||
| Заявка подана, замовник ще не переглянув | |||
|- | |||
| Переглянута | |||
| Замовник відкрив заявку | |||
|- | |||
| Прийнята | |||
| Замовник обрав цього фрілансера | |||
|- | |||
| Відхилена | |||
| Замовник відмовив фрілансеру | |||
|- | |||
| Відкликана | |||
| Фрілансер сам відкликав заявку | |||
|} | |||
== | == Вибір виконавця == | ||
Замовник повинен мати можливість порівняти заявки та обрати виконавця. | |||
== | == Дані для порівняння заявок == | ||
У списку заявок потрібно показувати: | |||
* | * фрілансера; | ||
* рейтинг; | * рейтинг; | ||
* кількість виконаних проєктів; | |||
* ціну; | |||
* строк виконання; | |||
* коментар; | |||
* посилання на портфоліо; | |||
* статус заявки. | |||
Після вибору виконавця: | |||
* обрана заявка переходить у статус '''«Прийнята»'''; | |||
* інші заявки можуть отримати статус '''«Відхилена»'''; | |||
* проєкт переходить у статус '''«В роботі»'''; | |||
* створюється робочий чат; | |||
* фрілансер отримує повідомлення. | |||
== Робота над проєктом == | |||
Після вибору виконавця проєкт переходить у роботу. | |||
== Що має бути доступно в роботі == | |||
Під час виконання проєкту сторони повинні мати можливість: | |||
* обмінюватися повідомленнями; | |||
* передавати файли; | |||
* уточнювати деталі; | |||
* змінювати статуси; | |||
* фіксувати проміжні результати; | |||
* передати фінальний результат; | |||
* відправити проєкт на перевірку. | |||
== Чат замовника і фрілансера == | |||
Чат потрібен для комунікації в межах проєкту. | |||
== Функції чату == | |||
Чат має підтримувати: | |||
* повідомлення між замовником і фрілансером; | |||
* дату й час повідомлення; | |||
* автора повідомлення; | |||
* прикріплення файлів, опціонально; | |||
* позначку прочитання, опціонально; | |||
* історію повідомлень. | |||
Технічно чат може працювати через WebSocket або через AJAX. | |||
== Передача результату == | |||
Фрілансер повинен мати можливість передати результат роботи. | |||
== Дані передачі результату == | |||
Передача результату може містити: | |||
* коментар фрілансера; | |||
* посилання на результат; | |||
* файли; | |||
* архіви; | |||
* скриншоти; | |||
* інструкції; | |||
* дату передачі. | |||
Після передачі результату проєкт переходить у статус '''«На перевірці»'''. | |||
== Прийняття роботи == | |||
Замовник після перевірки результату може: | |||
* прийняти роботу; | |||
* повернути на доопрацювання; | |||
* скасувати проєкт за правилами платформи. | |||
== Завершення проєкту == | |||
Після прийняття роботи проєкт переходить у статус '''«Завершений»'''. | |||
При завершенні система повинна: | |||
* зафіксувати дату завершення; | |||
* змінити статус проєкту; | |||
* дозволити сторонам залишити відгуки; | |||
* оновити рейтинг фрілансера; | |||
* розрахувати комісію платформи, якщо фінансовий блок реалізований; | |||
* відобразити проєкт у статистиці фрілансера і замовника. | |||
== Відгуки та рейтинг == | |||
Після завершення проєкту замовник і фрілансер можуть залишити відгуки один одному. | |||
== Поля відгуку == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Проєкт | |||
| По якому проєкту залишено відгук | |||
|- | |||
| Автор | |||
| Хто залишив відгук | |||
|- | |||
| Кому залишено відгук | |||
| Фрілансеру або замовнику | |||
|- | |||
| Оцінка | |||
| Наприклад, від 1 до 5 | |||
|- | |||
| Текст відгуку | |||
| Коментар | |||
|- | |||
| Дата | |||
| Коли відгук створено | |||
|} | |||
== Розрахунок рейтингу == | |||
Рейтинг фрілансера може розраховуватися як середня оцінка за завершеними проєктами. | |||
<pre> | |||
Рейтинг = Сума оцінок / Кількість оцінок | |||
</pre> | |||
Додатково можна враховувати: | |||
* кількість завершених проєктів; | |||
* кількість повторних замовників; | |||
* частку успішно завершених проєктів; | |||
* відсутність скарг. | |||
== Комісія платформи == | |||
Платформа може заробляти на комісії з угоди. | |||
== Варіанти комісії == | |||
{| class="wikitable" style="width:100%;" | |||
! Варіант | |||
! Опис | |||
|- | |||
| Відсоток від суми проєкту | |||
| Наприклад, 5–20% від гонорару | |||
|- | |||
| Фіксована комісія | |||
| Фіксована сума за угоду | |||
|- | |||
| Комісія з замовника | |||
| Оплачує замовник | |||
|- | |||
| Комісія з фрілансера | |||
| Утримується з гонорару | |||
|- | |||
| Змішана модель | |||
| Частина комісії з обох сторін | |||
|} | |||
== Формула комісії == | |||
<pre> | |||
Комісія платформи = Сума проєкту × Відсоток комісії / 100 | |||
</pre> | |||
== Баланси користувачів == | |||
Опціонально модуль може підтримувати баланси користувачів. | |||
== Основні операції балансу == | |||
* поповнення балансу; | |||
* резервування коштів під проєкт; | |||
* виплата фрілансеру; | |||
* утримання комісії; | |||
* повернення коштів; | |||
* виведення коштів. | |||
== Ескроу-схема == | |||
Для розширеної реалізації можна передбачити ескроу-механіку. | |||
Типовий процес: | |||
# замовник поповнює баланс; | |||
# сума проєкту резервується; | |||
# фрілансер виконує роботу; | |||
# замовник приймає результат; | |||
# система утримує комісію; | |||
# решта коштів зараховується фрілансеру; | |||
# фрілансер може подати заявку на виведення коштів. | |||
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
'''Практичний сенс.''' Ескроу захищає обидві сторони: замовник знає, що кошти не підуть до прийняття роботи, а фрілансер бачить, що бюджет проєкту зарезервовано. | |||
</div> | |||
== Преміум-функції == | |||
Платформа може мати платні або службові преміум-функції. | |||
== Приклади преміум-функцій == | |||
* підняття проєкту в списку; | |||
* виділення проєкту кольором; | |||
* закріплення проєкту вгорі категорії; | |||
* виділення профілю фрілансера; | |||
* показ фрілансера в рекомендованих; | |||
* розширена статистика профілю; | |||
* доступ до закритих проєктів; | |||
* додаткові заявки на місяць. | |||
== Модерація == | |||
Модерація потрібна для контролю якості платформи. | |||
== Що може модеруватися == | |||
* проєкти; | |||
* профілі фрілансерів; | |||
* портфоліо; | * портфоліо; | ||
* | * відгуки; | ||
* повідомлення зі скаргами; | |||
* профілі замовників; | |||
* преміум-публікації. | |||
== | == Дії модератора == | ||
Модератор повинен мати можливість: | |||
* схвалити проєкт; | |||
* відхилити проєкт; | |||
* вказати причину відхилення; | |||
* приховати профіль; | |||
* заблокувати користувача; | |||
* видалити некоректний відгук; | |||
* переглянути скарги; | |||
* повернути матеріал на редагування. | |||
== Скарги та спори == | |||
Опціонально система може підтримувати скарги між сторонами. | |||
== Поля скарги == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Проєкт | |||
| До якого проєкту належить скарга | |||
|- | |||
| Автор скарги | |||
| Хто подав скаргу | |||
|- | |||
| Відповідач | |||
| На кого подано скаргу | |||
|- | |||
| Причина | |||
| Суть проблеми | |||
|- | |||
| Коментар | |||
| Детальний опис | |||
|- | |||
| Статус | |||
| Нова, розглядається, вирішена, відхилена | |||
|} | |||
== Нотифікації == | |||
Модуль має підтримувати сповіщення користувачів. | |||
== Події для замовника == | |||
Замовнику бажано надсилати повідомлення, коли: | |||
* проєкт створено; | |||
* проєкт схвалено або відхилено; | |||
* на проєкт подано нову заявку; | |||
* фрілансер надіслав повідомлення; | |||
* фрілансер передав результат; | |||
* проєкт очікує перевірки; | |||
* фрілансер залишив відгук. | |||
== Події для фрілансера == | |||
Фрілансеру бажано надсилати повідомлення, коли: | |||
* | * з’явився новий проєкт у його категорії; | ||
* | * заявку переглянуто; | ||
* | * заявку прийнято або відхилено; | ||
* проєкт переведено в роботу; | |||
* | * замовник написав повідомлення; | ||
* | * роботу прийнято; | ||
* | * отримано відгук; | ||
* | * кошти зараховано на баланс, якщо фінансовий блок реалізований. | ||
* | |||
== | == Звітність == | ||
== Звіт «Проєкти за період» == | |||
* | Звіт показує створені проєкти за вибраний період. | ||
* | |||
У звіті потрібно відображати: | |||
* дату; | |||
* кількість створених проєктів; | |||
* кількість активних; | |||
* кількість у роботі; | |||
* кількість завершених; | |||
* кількість скасованих. | |||
== Звіт «Заявки фрілансерів» == | |||
Звіт показує активність заявок. | |||
У звіті потрібно відображати: | |||
* проєкт; | |||
* кількість заявок; | |||
* середню запропоновану ціну; | |||
* середній строк виконання; | |||
* кількість прийнятих заявок; | |||
* кількість відхилених заявок. | |||
== Звіт «Активність фрілансерів» == | |||
Звіт показує роботу виконавців. | |||
У звіті потрібно відображати: | |||
* фрілансера; | |||
* кількість поданих заявок; | |||
* кількість прийнятих заявок; | |||
* кількість завершених проєктів; | |||
* рейтинг; | |||
* суму заробітку, якщо фінансовий блок реалізований. | |||
== Звіт «Активність замовників» == | |||
Звіт показує роботу замовників. | |||
У звіті потрібно відображати: | |||
* замовника; | |||
* кількість створених проєктів; | |||
* кількість завершених проєктів; | |||
* кількість скасованих проєктів; | |||
* суму витрат, якщо фінансовий блок реалізований. | |||
== Звіт «Комісія платформи» == | |||
Звіт показує дохід платформи. | |||
У звіті потрібно відображати: | |||
* проєкт; | |||
* суму проєкту; | |||
* відсоток комісії; | |||
* суму комісії; | |||
* дату нарахування; | |||
* статус виплати. | |||
== AJAX-інтерактив == | |||
Інтерфейс має працювати швидко та без зайвого перезавантаження сторінок. | |||
Через AJAX мають працювати: | |||
* створення проєкту; | |||
* пошук проєктів; | |||
* фільтрація проєктів; | |||
* подання заявки; | |||
* відкликання заявки; | |||
* прийняття заявки; | |||
* зміна статусу проєкту; | |||
* відправка повідомлення в чаті; | |||
* передача результату; | |||
* залишення відгуку; | |||
* оновлення рейтингу; | |||
* модерація; | |||
* оновлення звітів. | |||
== Логування змін == | |||
Модуль повинен фіксувати важливі зміни. | |||
Журнал змін має зберігати: | |||
* хто створив проєкт; | |||
* хто змінив проєкт; | |||
* хто подав заявку; | |||
* хто відкликав заявку; | |||
* хто прийняв заявку; | |||
* хто змінив статус проєкту; | |||
* хто передав результат; | |||
* хто завершив проєкт; | |||
* хто залишив відгук; | |||
* хто нарахував комісію; | |||
* хто змінив баланс; | |||
* дату й час зміни; | |||
* старе та нове значення, якщо це можливо. | |||
== Права доступу == | |||
Модуль має підтримувати розмежування прав. | |||
{| class="wikitable" style="width:100%;" | |||
! Роль | |||
! Можливості | |||
|- | |||
| Гість | |||
| Переглядає активні проєкти та профілі фрілансерів | |||
|- | |||
| Замовник | |||
| Створює проєкти, переглядає заявки, обирає виконавця, приймає роботу | |||
|- | |||
| Фрілансер | |||
| Створює профіль, додає портфоліо, подає заявки, виконує проєкти | |||
|- | |||
| Модератор | |||
| Перевіряє проєкти, профілі, портфоліо, відгуки та скарги | |||
|- | |||
| Фінансовий менеджер | |||
| Контролює баланси, комісії, виплати й повернення | |||
|- | |||
| Адміністратор | |||
| Налаштовує категорії, права, комісії, преміум-функції та службові параметри | |||
|- | |||
| Керівник | |||
| Переглядає статистику, активність і доходи платформи | |||
|} | |||
== Технічні вимоги == | == Технічні вимоги == | ||
{| class="wikitable" | {| class="wikitable" style="width:100%;" | ||
! Параметр | ! Параметр | ||
! Опис | ! Опис | ||
| Рядок 133: | Рядок 977: | ||
| K2 Cloud ERP на Python або PHP | | K2 Cloud ERP на Python або PHP | ||
|- | |- | ||
| | | База даних | ||
| PostgreSQL або MySQL | | PostgreSQL або MySQL | ||
|- | |- | ||
| Фронтенд | | Фронтенд | ||
| HTML5, JavaScript | | HTML5, JavaScript | ||
|- | |||
| AJAX | |||
| Axios або Fetch API | |||
|- | |||
| Чат | |||
| WebSocket або простий AJAX | |||
|- | |- | ||
| UI-компоненти | | UI-компоненти | ||
| DataTables для адмінки, Select2 для категорій, | | DataTables для адмінки, Select2 для категорій, Datepicker для строків | ||
|- | |||
| Файли | |||
| Завантаження технічних завдань, портфоліо, результатів роботи | |||
|- | |||
| Платежі | |||
| Баланси, комісії, ескроу, опціонально | |||
|- | |- | ||
| Друк | | Друк | ||
| Генерація договорів або | | Генерація договорів, рахунків або актів, опціонально | ||
|} | |} | ||
== | == Рекомендовані сутності бази даних == | ||
Для реалізації задачі доцільно передбачити такі сутності: | |||
* користувачі; | |||
* ролі користувачів; | |||
* замовники; | |||
* фрілансери; | |||
* профілі фрілансерів; | |||
* портфоліо; | |||
* категорії проєктів; | |||
* типи проєктів; | |||
* проєкти; | |||
* файли проєктів; | |||
* заявки; | |||
* статуси заявок; | |||
* статуси проєктів; | |||
* чат-повідомлення; | |||
* файли чату; | |||
* результати робіт; | |||
* відгуки; | |||
* рейтинги; | |||
* комісії; | |||
* баланси; | |||
* фінансові операції; | |||
* преміум-послуги; | |||
* модерація; | |||
* скарги; | |||
* нотифікації; | |||
* журнал змін; | |||
* звіти; | |||
* права доступу. | |||
== Практичне завдання == | |||
У межах атестації потрібно продемонструвати робочий сценарій. | |||
{| class="wikitable" | Мінімальний сценарій: | ||
# створити категорії проєктів; | |||
# створити типи проєктів; | |||
# створити замовника; | |||
# створити фрілансера; | |||
# заповнити профіль фрілансера; | |||
# додати роботу в портфоліо; | |||
# створити проєкт від імені замовника; | |||
# вказати бюджет, дедлайн, тип проєкту й опис; | |||
# опублікувати проєкт; | |||
# знайти проєкт через пошук і фільтри; | |||
# подати заявку від фрілансера; | |||
# вказати ціну, строк і коментар; | |||
# переглянути заявку в кабінеті замовника; | |||
# прийняти заявку; | |||
# перевести проєкт у статус '''«В роботі»'''; | |||
# надіслати повідомлення в чаті; | |||
# передати результат роботи; | |||
# перевести проєкт у статус '''«На перевірці»'''; | |||
# прийняти результат; | |||
# завершити проєкт; | |||
# залишити відгук фрілансеру; | |||
# перевірити оновлення рейтингу; | |||
# розрахувати комісію платформи, якщо фінансовий блок реалізований; | |||
# сформувати звіт проєктів за період; | |||
# сформувати звіт заявок; | |||
# сформувати звіт активності фрілансерів; | |||
# сформувати звіт комісії платформи. | |||
== Критерії оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Критерій | ! Критерій | ||
! Бали | ! Бали | ||
! Що перевіряється | |||
|- | |- | ||
| Реалізація бази | | Реалізація бази проєктів і профілів фрілансерів | ||
| 20 | | 20 | ||
| Категорії, типи проєктів, проєкти, профілі, навички, портфоліо | |||
|- | |- | ||
| Механізм подання заявок і вибору виконавців | | Механізм подання заявок і вибору виконавців | ||
| 20 | | 20 | ||
| Заявки, ціна, строк, коментар, статуси заявок, вибір фрілансера | |||
|- | |- | ||
| Управління статусами | | Управління статусами проєктів і чат фрілансер-замовник | ||
| 20 | | 20 | ||
| Статуси, робота над проєктом, чат, передача результату, завершення | |||
|- | |- | ||
| Інтерактивність через AJAX, рейтинги та відгуки | | Інтерактивність через AJAX, рейтинги та відгуки | ||
| 20 | | 20 | ||
| 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-інтерактив і логування змін. | |||
== Примітка == | == Примітка == | ||
Платформа фрілансу | Платформа фрілансу є важливим інструментом для сучасної економіки послуг. Вона допомагає компаніям швидко знаходити фахівців, а виконавцям — отримувати проєкти незалежно від географії. | ||
Якісна біржа фрілансу повинна бути прозорою, зручною і безпечною для обох сторін: замовника і фрілансера. | |||
== Коротко == | |||
{| class="wikitable" style="width:100%;" | |||
! Питання | |||
! Відповідь | |||
|- | |||
| Що потрібно створити? | |||
| Модуль онлайн-біржі фрілансу | |||
|- | |||
| Які довідники потрібні? | |||
| Категорії проєктів і типи проєктів | |||
|- | |||
| Які головні об’єкти? | |||
| Проєкти, фрілансери, заявки, чат, відгуки | |||
|- | |||
| Що робить замовник? | |||
| Створює проєкт, переглядає заявки, обирає виконавця, приймає роботу | |||
|- | |||
| Що робить фрілансер? | |||
| Створює профіль, подає заявки, виконує проєкти, отримує відгуки | |||
|- | |||
| Які статуси потрібні? | |||
| Активний, у виборі виконавця, в роботі, на перевірці, завершений, скасований | |||
|- | |||
| Які звіти потрібні? | |||
| Проєкти, заявки, активність фрілансерів, активність замовників, комісія платформи | |||
|- | |||
| Що є критичною вимогою? | |||
| Повний цикл: проєкт → заявка → вибір виконавця → робота → завершення → відгук | |||
|} | |||
== Див. також == | |||
* [[K2 Cloud ERP|K2 ERP]] | |||
* [[K2 ERP]] | |||
* [[Атестаційні завдання K2 ERP]] | |||
* [[Сайт роботи]] | |||
* [[Дошка оголошень]] | |||
* [[Маркетплейс]] | |||
* [[CRM]] | |||
* [[Проєкти]] | |||
* [[Рейтинг]] | |||
* [[Відгуки]] | |||
* [[Платіжні системи]] | |||
* [[AJAX]] | |||
[[Категорія:K2 ERP]] | |||
[[Категорія:Атестаційні завдання K2]] | |||
[[Категорія:Сайт фрілансу]] | |||
[[Категорія:Фріланс]] | |||
[[Категорія:Маркетплейс]] | |||
[[Категорія:Проєкти]] | |||
[[Категорія:Корпоративна Wiki]] | |||