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

Атестаційні завдання K2 ERP/Біржа

Матеріал з K2 ERP Wiki

компонент має підтримувати розмежування прав.

Тип біржового об’єкта визначає, що саме продається або купується. платформа має враховувати ціну, кількість, тип заявки, залишок невиконаної кількості, статус користувача, баланс, комісію та історію операцій. | Коли угода закриває тільки частину кількості заявки |-

| Що має робити фінансовий блок?

Ціна покупця >= Ціна продавця

Статуси заявки

  • період;
  • кількість угод;
  • суму угод;
  • суму комісій;
  • комісію по об’єктах;
  • комісію по користувачах. | Активні заявки, історія продукту угод, обсяги торгів, комісії, баланси

|- | Що виступає як критичною вимогою? |- | ПІБ або назва компанії | Ім’я користувача або назва організації |- | Тип користувача | Фізична особа, ФОП, компанія-користувач, внутрішній користувач системи |- | Email | Для входу та сповіщень |- | Телефон | Контактний номер |- | Статус | Активний, на перевірці, заблокований, архівний |- | Рівень доступу | Звичайний учасник, маркетмейкер, адміністратор |- | Коментар | Внутрішні примітки адміністратора |}


== Звіт «Комісії біржі» ==

== Події для сповіщень ==

* товари;
* сировина;
* зерно;
* метали;
* послуги;
* IT-послуги;
* валюта;
* цифрові активи;
* внутрішні токени;
* корпоративні ресурси.== Формула комісії ==
Для заявки на продаж платформа повинна перевірити, чи має продавець достатню кількість товару або активу.== AJAX-інтерактив ==

! Помилка в заявці, балансі або зіставленні здатна призвести до неправильних угод і фінансових втрат.== Сортування у стакані ==
У результаті виконання атестаційного задача має бути створений компонент біржі в K2 ERP.== Очікуваний результат ==

== Що потрібно логувати ==
компонент має підтримувати користувачів, типи біржових об’єктів, категорії, біржові об’єкти, заявки на купівлю і продаж, біржовий стакан, автоматичне зіставлення заявок, часткове виконання, угоди, історію торгів, баланси, блокування коштів або активів, комісії, кабінет користувача, сповіщення, графіки цін, звіти, AJAX-інтерактив і логування змін. Біржовий об’єкт — це конкретний товар, послуга або актив, яким торгують.== Приклади категорій ==

! Мета задача — створити в K2 ERP компонент електронної біржі, де користувачі можуть розміщувати заявки на купівлю або продаж, подавати зустрічні пропозиції, укладати угоди та бачити історію торгів. Бали

== Звіт «історія продукту угод» ==
{| class="wikitable" style="width:100%;"
! |}

! Максимальна оцінка
== Що має відображатися у стакані ==
== Поля заявки ==

! Користувачі біржі — це учасники, які можуть створювати заявки та укладати угоди. Поле

== Див. так само ==

* створення заявки;
* зміну ціни;
* зміну кількості;
* активацію заявки;
* скасування заявки;
* часткове виконання;
* повне виконання;
* укладення угоди;
* блокування коштів;
* розблокування коштів;
* списання комісії;
* зміну статусу користувача;
* адміністративні дії.[[Категорія:K2 ERP]]

! У межах атестації потрібно продемонструвати робочий сценарій. Разом

* хто створив заявку;
* хто змінив заявку;
* хто скасував заявку;
* хто створив зустрічну заявку;
* які заявки були зіставлені;
* яка угода розроблена;
* яка кількість виконана;
* яка сума заблокована;
* яка комісія списана;
* хто виконав адміністративну дію;
* дату й час дії;
* старе та нове значення, якщо це можливо.[[Категорія:Корпоративна Wiki]]

== Блокування товару або активу ==

== Звіт «Активні заявки» ==

* тип об’єкта;
* категорія;
* назва;
* ціна від;
* ціна до;
* валюта;
* тип заявки;
* статус;
* дата створення;
* користувач системи, якщо доступно за правами. Поле

== Назва задача ==

! ! Типовий бізнес-процес роботи біржі виглядає так:

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

{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Біржа}}
== Механіка зіставлення заявок ==
Через AJAX мають працювати:

Нижча ціна → вище у стакані

<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">

== Приклади типів ==

Біржовий стакан показує активні заявки на купівлю і продаж. ! Критерій

Критичними помилками вважаються ситуації, коли:

<pre>

{| class="wikitable" style="width:100%;"

[[Категорія:Торги]]

Угода = 40 одиниць
Звіт показує укладені угоди.== Довідник «Категорії об’єктів» ==
== Блокування коштів ==
! ! * відсоток від суми угоди;
* фіксована сума;
* комбінована комісія;
* різна комісія для покупця і продавця;
* індивідуальна комісія для окремих користувачів.== Права доступу ==

! SEO-опис

== Довідник «Типи біржових об’єктів» ==

користувач системи біржі повинен мати особистий кабінет. Якщо кількість доступна, вона блокується під заявку. Без цих даних вона не повинна потрапляти в біржовий стакан. ! Кількість угоди = мінімум(невиконана кількість покупця, невиконана кількість продавця)

Поля біржового об’єкта

! У звіті потрібно відображати:

Поля угоди

Заявка — це пропозиція користувача купити або продати біржовий об’єкт. # створити користувачів біржі;

  1. створити типи біржових об’єктів;
  2. створити категорії;
  3. створити біржовий об’єкт;
  4. створити заявку на продаж;
  5. створити заявку на купівлю;
  6. відобразити заявки у стакані;
  7. перевірити сортування buy/sell заявок;
  8. створити зустрічну заявку з ціною, яка не підходить для угоди;
  9. перевірити, що угода не створюється;
  10. створити зустрічну заявку з ціною, яка підходить для угоди;
  11. автоматизовано сформувати угоду;
  12. перевірити часткове виконання заявки;
  13. перевірити повне виконання заявки;
  14. перевірити історію торгів;
  15. реалізувати баланс користувача, якщо фінансовий блок увімкнено;
  16. заблокувати кошти під заявку;
  17. списати кошти після угоди;
  18. нарахувати комісію біржі;
  19. сформувати звіт активних заявок;
  20. сформувати звіт історії угод;
  21. сформувати звіт обсягів торгів;
  22. сформувати звіт комісій;
  23. перевірити журнал змін.== Основні об’єкти модуля ==

провідний принцип. Біржа повинна надійно зіставляти зустрічні заявки. користувач системи повинен мати можливість:

Варіанти комісії

Довідник «Користувачі біржі»

  • заявки на купівлю;
  • заявки на продаж;
  • ціна;
  • кількість;
  • сумарний обсяг по ціні;
  • краща ціна купівлі;
  • краща ціна продажу;
  • спред між найкращими цінами. * заявка розроблена;
  • заявка активована;
  • заявка частково виконана;
  • заявка на 100% виконана;
  • укладена угода;
  • заявка скасована;
  • ціна досягла потрібного рівня;
  • кошти заблоковані;
  • кошти розблоковані;
  • отримано оплату;
  • списано комісію. SEO-опис
При створенні заявки на купівлю платформа повинна перевірити наявність коштів. Якщо умови продавця і покупця збігаються, платформа має зафіксувати угоду, оновити залишки, списати комісію і записати операцію в історію. | Блокувати кошти або активи, списувати після угоди, нараховувати комісію
Які звіти потрібні? Окремо варто відзначити ведення біржового стакану, автоматичне зіставлення зустрічних заявок, фіксацію угод, історію торгів, особистий кабінет користувача, баланси, комісії, сповіщення, звіти і журналювання дій. ! * створення заявки;
  • активація заявки;
  • скасування заявки;
  • оновлення версій біржового стакану;
  • подання зустрічної пропозиції;
  • автоматичне оновлення версій ціни;
  • оновлення версій історії угод;
  • оновлення версій балансу;
  • оновлення версій графіків;
  • пошук заявок;
  • фільтрація об’єктів;
  • сповіщення користувачів. Біржа — це електронний майданчик, де різні учасники можуть розміщувати заявки на купівлю або продаж товарів, послуг чи активів. Після цього платформа визначає кількість угоди:

Фінансовий блок виступає як опціональним, але бажаним для повноцінної біржі. Питання

компонент біржі: торги товарами, послугами або фінансовими активами.== Формула суми угоди ==

Пошук і фільтрація

Вища ціна → вище у стакані Критично. платформа не повинна створювати угоду, якщо ціна покупця нижча за ціну продавця або якщо в однієї із заявок немає доступного залишку кількості. | Коректне зіставлення заявок і фіксація угоди в історії

Реалізація бази оголошень і торгів 20 Користувачі, типи об’єктів, категорії, біржові об’єкти, заявки, статуси
Механізм подачі заявок і формування угод 20 Buy/Sell заявки, стакан, зіставлення, часткове виконання, автоматичне створення угод
Ведення історії торгів і ставок 20 історія продукту заявок, змін, ставок, угод, виконання і скасування
керування балансами і комісіями 20 Баланси, блокування коштів або активів, списання, зарахування, комісії
Інтерактивність через AJAX і пошук 20 оновлення версій стакану, заявок, угод, балансів, графіків і пошуку без перезавантаження

Технічні вимоги

Реальний бізнес-контекст

Поля типу об’єкта

платформа повинна зіставляти зустрічні заявки. ! SEO-опис

базовий бізнес-процес

Приклад:

Для реалізації задачі доцільно передбачити такі сутності:

  1. користувач системи реєструється на біржі;
  2. поповнює баланс або додає доступний товар, якщо реалізовано фінансовий чи складський блок;
  3. створює заявку на продаж або купівлю;
  4. платформа додає заявку в біржовий стакан;
  5. інший користувач системи створює зустрічну заявку;
  6. платформа перевіряє збіг ціни, кількості та умов;
  7. при збігу формується угода;
  8. кількість у заявках зменшується або заявки закриваються;
  9. кошти, товар або інший актив переходять між сторонами;
  10. біржа утримує комісію, якщо це передбачено;
  11. операційна дія записується в історію торгів;
  12. користувачі бачать результат у своїх кабінетах.
== Звіт «Обсяги торгів» ==

Мета задача

Бекенд K2 Cloud ERP на Python або PHP
База даних PostgreSQL або MySQL
Фронтенд HTML5, JavaScript
AJAX Fetch API або Axios
UI-компоненти DataTables для таблиці торгів, Select2 для пошуку товарів і послуг, Chart.js для графіків цін
Баланси обліковий облік доступних і заблокованих коштів, опціонально
Сповіщення Email, внутрішні повідомлення або месенджери
Друк Не обов’язково
Експорт Excel або PDF для звітів

Звіт «Баланси користувачів»

  • користувачі біржі;
  • типи біржових об’єктів;
  • категорії;
  • біржові об’єкти;
  • заявки;
  • статуси заявок;
  • біржовий стакан;
  • угоди;
  • історія продукту торгів;
  • баланси;
  • блокування коштів;
  • комісії;
  • операції балансу;
  • сповіщення;
  • графіки цін;
  • журнал змін;
  • звіти;
  • права доступу. SEO-опис

платформа має надсилати користувачам повідомлення про важливі події. 100

Користувачі біржі Учасники, які створюють заявки та укладають угоди
Типи біржових об’єктів Товари, послуги, активи, валюти, токени
Категорії Групування об’єктів торгів
Біржові об’єкти Конкретні товари, послуги або активи
Заявки Накази на купівлю або продаж
Біржовий стакан Черга заявок buy/sell за ціною та часом
Угоди Зафіксовані операції між покупцем і продавцем
Баланси Кошти або активи користувачів, якщо реалізовано фінансовий блок
Комісії Винагорода біржі за угоду
історія продукту торгів Лог усіх заявок, змін і угод
Сповіщення Повідомлення про виконання заявки, угоду або зміну ціни
Звіти аналітичні інструменти по торгах, обсягах, користувачах і комісіях

історія продукту торгів

! SEO-опис ! SEO-опис


Заявка покупця залишається активною на 60 одиниць

== Логування змін ==

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

[[Категорія:Атестаційні завдання K2]]

Якщо реалізовано фінансовий блок, звіт показує кошти користувачів. Поле

! Рівень

{| class="wikitable" style="width:100%;"

* вести користувачів біржі;
* вести типи біржових об’єктів;
* вести категорії об’єктів;
* створювати заявки на продаж;
* створювати заявки на купівлю;
* вказувати кількість, ціну, валюту та строк дії заявки;
* формувати біржовий стакан;
* зіставляти зустрічні заявки;
* автоматизовано фіксувати угоду при збігу умов;
* вести історію ставок, заявок і угод;
* підтримувати часткове виконання заявки;
* фіксувати статуси заявок;
* вести баланси користувачів, якщо фінансовий блок реалізовано;
* блокувати кошти або товар під час активної заявки;
* розраховувати комісію біржі;
* формувати звіти по торгах, угодах, користувачах і комісіях;
* оновлювати інформаційні дані через AJAX без перезавантаження сторінки. Поле

<pre>

* створювати заявки;
* переглядати свої активні заявки;
* переглядати виконані заявки;
* скасовувати свої активні заявки;
* бачити свої угоди;
* бачити історію торгів;
* бачити баланс;
* поповнювати баланс, якщо реалізовано;
* подавати заявку на виведення коштів, якщо реалізовано;
* отримувати сповіщення про угоди;
* налаштовувати повідомлення по категоріях. |-
| Номер заявки
| Унікальний номер
|-
| користувач системи
| Хто створив заявку
|-
| Тип заявки
| Купівля або продаж
|-
| Об’єкт торгів
| Що купується або продається
|-
| Категорія
| Категорія об’єкта
|-
| Кількість
| Загальна кількість
|-
| Невиконана кількість
| Залишок заявки після часткових угод
|-
| Ціна
| Ціна за одиницю
|-
| Валюта
| Валюта розрахунку
|-
| Мінімальна / максимальна ціна
| Для аукціонів, якщо реалізовано
|-
| Дата створення
| Коли заявка розроблена
|-
| Термін дії
| До якої дати заявка активна
|-
| Статус
| Активна, частково виконана, виконана, скасована, прострочена
|}

У звіті потрібно відображати:

! Бали Біржа виступає як складним модулем, бо в ній важлива точність, швидкість і надійність. {| class="wikitable" style="width:100%;"

Практичне задача

  • об’єкт;
  • кількість угод;
  • загальну кількість;
  • загальну суму;
  • середню ціну;
  • мінімальну ціну;
  • максимальну ціну. * номер угоди;
  • дату;
  • об’єкт;
  • покупця;
  • продавця;
  • кількість;
  • ціну;
  • суму;
  • комісію. Сума угоди = Кількість × Ціна

|- | Гість | Переглядає публічні торги, якщо це дозволено |- | користувач системи | Створює заявки, переглядає свої угоди, керує балансом |- | Продавець | Розміщує заявки на продаж і контролює виконання |- | Покупець | Розміщує заявки на купівлю і контролює виконання |- | Модератор | Перевіряє заявки, блокує підозрілі оголошення |- | Фінансовий оператор | Контролює поповнення, виведення, комісії і баланси |- | Керівник | Переглядає звіти по торгах, комісіях, користувачах і обсягах |- | Адміністратор | Налаштовує типи об’єктів, категорії, права, комісії та службові параметри |}

критично. Активна заявка повинна мати ціну, кількість, об’єкт торгів, користувача і строк дії. Поле

  • користувача;
  • валюту;
  • доступний баланс;
  • заблокований баланс;
  • загальний баланс. Мінімальний сценарій:

Для заявки на купівлю і заявки на продаж угода можлива, якщо:

Кабінет користувача

Заявки на продаж сортуються:

Коротко

У звіті потрібно відображати: |- | Назва об’єкта | як приклад: пшениця 3 класу, розробка програмного забезпечення сайту, USD |- | Тип | Товар, послуга, актив |- | Категорія | Група об’єкта |- | Одиниця виміру | Шт., кг, т, година, одиниця |- | SEO-опис | Детальна інформаційні матеріали |- | Мінімальний крок ціни | Опціонально |- | Мінімальна кількість | Опціонально |- | Статус | Активний або архівний |}


== Що має підтримувати баланс ==

== Заявки на біржі ==

* заявка на продаж;
* заявка на купівлю;
* лімітна заявка;
* ринкова заявка, опціонально;
* аукціонна заявка, опціонально. Статус

Категорії допомагають групувати об’єкти торгів. Біржа здатна використовуватися для:

[[Категорія:Заявки]]

Заявки на купівлю сортуються:

Основна складність біржі — швидке й точне зіставлення заявок. |-
| Назва типу
| як приклад: товар, послуга, актив
|-
| SEO-опис
| Коротке пояснення типу
|-
| Одиниці виміру
| Шт., кг, т, м², година, одиниця
|-
| Активність
| Чи доступний тип для нових торгів
|}

<pre>

платформа повинна дозволяти:

<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">

* продукти харчування;
* зернові;
* метали;
* будівельні матеріали;
* IT-послуги;
* дизайн;
* маркетинг;
* транспортні послуги;
* внутрішні токени;
* валюти. {| class="wikitable" style="width:100%;"
[[Категорія:Біржа]]
== Угоди ==

Баланси користувачів

! Призначення

! Якщо коштів недостатньо — заявка не повинна бути активована. Пошук має допомагати користувачу оперативно знаходити потрібні об’єкти й заявки.

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

Опціонально платформа здатна розраховувати комісію біржі. Заявка продавця стає виконаною компонент має забезпечувати створення заявок на купівлю і продаж. {| class="wikitable" style="width:100%;"

Біржа — це практична задача; так само реалізовано послугами або цифровими активами виступає ключовою рисою перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля електронних торгів товарами забезпечується через Атестаційне задача K2 ERP.

Продавець продає 40 одиниць

Комісія = Сума угоди × Відсоток комісії / 100

компонент повинен фіксувати всі важливі дії. Якщо коштів достатньо, платформа блокує суму під заявку. історія продукту торгів зберігає всі події по заявках і угодах.== Шкала оцінювання ==

Комісія біржі

Що можна показувати

Параметри пошуку

Якщо ні — заявка не повинна бути активована. Відповідь

Журнал змін має зберігати:

У звіті потрібно відображати:

* поповнення;
* списання;
* блокування коштів під заявку;
* розблокування при скасуванні заявки;
* списання коштів після угоди;
* зарахування коштів продавцю;
* утримання комісії;
* історію операцій.== Біржовий стакан ==

Якщо реалізовано комісії, звіт показує дохід біржі. ! Об’єкт

Примітка

Умова складання. задача не здатна бути зараховане, якщо платформа не дає можливість пройти базовий цикл біржі: користувач системи → заявка на продаж → заявка на купівлю → стакан → зіставлення → угода → історія продукту → звіт. Звіт показує активність по об’єктах. функції ERP
Заявки на купівлю і продаж
Коли створюється угода? * неможливо створити користувача біржі; * неможливо створити біржовий об’єкт; * неможливо створити заявку; * заявка без ціни або кількості потрапляє в стакан; * заявки в стакані сортуються неправильно; * угода створюється, коли ціна покупця нижча за ціну продавця; * угода створюється без доступного залишку кількості; * часткове виконання заявки функціонує неправильно; * виконана заявка залишається активною; * скасована заявка бере участь у торгах; * баланс не блокується під заявку, якщо фінансовий блок заявлений; * кошти або активи не списуються після угоди; * комісія не розраховується, якщо ця функція заявлена; * історія продукту угод не фіксується; * звіти не відповідають фактичним заявкам і угодам; * зміни заявок, угод і балансів не логуються. Що перевіряється

Часткове виконання

Покупець хоче купити 100 одиниць * торгівлі товарами; * торгівлі зерном; * торгівлі металами; * торгівлі сировиною; * торгівлі послугами; * фріланс-заявок; * внутрішньої корпоративної біржі заявок; * обміну валют; * торгівлі цифровими активами; * торгівлі внутрішніми токенами; * B2B-торгів між компаніями. Значення
Номер угоди Унікальний номер
Об’єкт торгів Що було продано або куплено
Покупець користувач системи, який купує
Продавець користувач системи, який продає
Заявка покупця З якої заявки сформована угода
Заявка продавця З якої заявки сформована угода
Кількість Кількість угоди
Ціна Ціна за одиницю
Сума Загальна сума угоди
Комісія біржі Якщо реалізовано
Дата і час Коли угода укладена
Статус Виконана, очікує розрахунку, скасована

Поля користувача

Навіть базова реалізація біржі добре перевіряє вміння працювати зі статусами, чергами заявок, транзакціями, історією операцій, AJAX-оновленням і фінансовою логікою. |-
користувач системи Власник балансу
Валюта Валюта балансу
Доступний баланс Кошти, які можна використовувати
Заблокований баланс Кошти, зарезервовані під активні заявки
Загальний баланс Доступний + заблокований

Угода фіксує факт купівлі-продажу між двома сторонами. Потрібна сума = Кількість × Ціна + Комісія

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

Якщо ціна однакова, перевагу має заявка, розроблена раніше. | Користувачі, біржові об’єкти, заявки, стакан, угоди, баланси Які заявки потрібні? Параметр



90–100

Відмінно

компонент на 100% функціонує: заявки, стакан, угоди, часткове виконання, історія продукту, баланси, комісії, пошук і AJAX реалізовані коректно


75–89

Добре

Основна логіка функціонує, виступає як незначні недоліки, які не руйнують бізнес-процес торгів


60–74

Зараховано

Базовий сценарій функціонує, але частина функцій реалізована неповно або потребує доопрацювання


0–59

Не зараховано

Відсутня критична логіка: заявки, стакан, зіставлення, угоди або історія продукту торгів


Функції кабінету

Якщо кількість у заявках не однакова, заявка здатна бути частково виконана.== Сповіщення == Опціонально компонент здатна показувати графіки цін. | компонент біржі для торгів товарами, послугами або активами |- | Які головні об’єкти? SEO-опис

Звіти

Типи заявок

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

Коротко. Потрібно реалізувати біржовий компонент: користувачі, біржові об’єкти, категорії, заявки на купівлю і продаж, bid/ask, стакан заявок, автоматичне укладання угод, історія продукту торгів, баланси, комісії, кабінет користувача, AJAX-оновлення цін і звіти. ! | Коли ціна покупця більша або дорівнює ціні продавця |- | Що таке часткове виконання? Роль |- | Що потрібно створити?

Поля балансу

Звіт показує всі заявки, які зараз беруть участь у торгах. SEO-опис |- | Чернетка | Заявка створюється, але ще не активна |- | Активна | Заявка бере участь у торгах |- | Частково виконана | Частина кількості вже виконана |- | Виконана | Заявка на 100% закрита угодами |- | Скасована | користувач системи або адміністратор скасував заявку |- | Прострочена | Термін дії заявки завершився |- | Заблокована | Заявка зупинена через перевірку або обмеження |}

Графіки і ринкові інформаційні дані

Інтерфейс має працювати оперативно та без перезавантаження сторінки.== Біржові об’єкти ==
== Правило для угоди ==