Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/6563Full metadata record
| DC Field | Value | Language |
|---|---|---|
| dc.contributor.advisor | Лукашенко, Валентина Максимівна | - |
| dc.contributor.author | Педченко, Любомир Романович | - |
| dc.date.accessioned | 2025-01-26T09:23:20Z | - |
| dc.date.available | 2025-01-26T09:23:20Z | - |
| dc.date.issued | 2025-01 | - |
| dc.identifier.uri | https://er.chdtu.edu.ua/handle/ChSTU/6563 | - |
| dc.description.abstract | Метою кваліфікаційної роботи магістра є аналіз за рахунок методу об’єктивного оцінювання багато параметричних моделей платформ маркетплейсу та розробка web додатку marketplace для продажу товарів. Завдання цієї системи полягає в спрощенні процесу розміщення, продажу та покупки товару на всіх етапах, надаючи доступ до неї через єдиний веб-ресурс. Об'єкт дослідження – процеси електронної комерції в мережі Інтернет. Предмет дослідження – сучасні платформи типу Marketplace. Після аналізу аналогів на ринку програмного забезпечення було виявлено їхні переваги та недоліки і на основі отриманої при аналізі існуючих систем інформації розроблено вимоги до web-додатку marketplace. Зібравши необхідні вимоги, було розроблено архітектуру програмної системи, дизайн та здійснено програмування функціональних модулів системи. Після збірки готова система була завантажена на локальний сервер та протестована на відповідність поставленим вимогам. Дана система володіє перевагами в порівнянні з наведеними аналогами маючи мінімалістичний дизайн, що дає змогу збільшити швидкість завантаження та можливість швидко знайти потрібну інформацію не відволікаючись на рекламу. До недоліків можна віднести відсутність двох етапної авторизації (з прив’язкою телефону), яка збільшує рівень безпеки. Отже, в ході виконання кваліфікаційної роботи магістра було продемонстровано практичні навички створення та розробки веб-додатку marketplace. Завдяки використанню сучасних технології, вдалося оптимізувати та покращити процес розробки програмного забезпечення в даній галузі. Веб-додаток marketplace готовий для використання, є достатньо гнучким для подальшого супроводу та удосконалення. | uk_UA |
| dc.language.iso | uk | uk_UA |
| dc.title | Дослідження сучасних платформ типу “MARKETPLACE” | uk_UA |
| dc.type | Master Thesis | uk_UA |
| Appears in Collections: | 123 Комп’ютерна інженерія (Спеціалізовані комп’ютерні системи) | |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| М_123_2024_Педченко+.pdf Restricted Access | 3.74 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА РОБОТОТЕХНІКИ ТА СПЕЦІАЛІЗОВАНИХ КОМП’ЮТЕРНИХ
СИСТЕМ
Пояснювальна записка
до кваліфікаційної роботи
освітнього ступеню «магістр»
на тему: ДОСЛІДЖЕННЯ СУЧАСНИХ ПЛАТФОРМ ТИПУ
“MARKETPLACE”
Виконав: студент 2 курсу,
групи МСКС-2307
спеціальності
123 Комп’ютерна інженерія
Освітня програма «Спеціалізовані
комп’ютерні системи»
________Педченко Л. Р.______
(прізвище та ініціали)
Керівник _______Лукашенко В. М.
( прізвище та ініціали)
Рецензент _______________________
(прізвище та ініціали)
Черкаси 2024 року
ЗМІСТ
ВСТУП ............................................................................................................ 5
РОЗДІЛ 1 СТАН ПРЕДМЕТУ ДОСЛІДЖЕННЯ ТА ФОРМУВАННЯ
ЗАВДАНЬ ..................................................................................................... 10
1.1 Основні поняття та принципи роботи Marketplace ..................... 10
1.2 Аналіз існуючих аналогів ........................................................... 21
1.3 Актуальні проблеми, що виникають в процесі розробки...... 29
1.4 Методи та засоби, які вже використовуються для розробки 31
1.5 Конкретизація завдань роботи .................................................. 33
РОЗДІЛ 2 ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
СИСТЕМИ ................................................................................................... 36
2.1 Предметна область моделювання. Модель предметної області 36
2.1.1 Словник предметної області ................................................ 37
2.1.2 Елементи моделювання предметної області ...................... 38
2.1.3 Робоча область моделювання .............................................. 39
2.2 Модулюючий алгоритм. Характеристики модулюючого
алгоритму ................................................................................................ 42
2.3 Аналіз алгоритмів на прикладі існуючих онлайн платформ типу
«Маркетплейс». ...................................................................................... 44
2.4 Формування та аналіз вимог до програмного забезпечення ..... 49
2.4.1 Первинні і детальні вимоги .................................................. 49
2.4.2 Вимоги замовника і розробника .......................................... 50
2.4.3 Функціональні та нефункціональні вимоги ...................... 51
2.4.4 Формування вимог за допомогою діаграми прецедентів. 52
2.5 Моделювання поведінки системи .................................................. 58
2.5.1 Діаграма діяльності ............................................................... 58
2.5.2 Діаграма послідовності ......................................................... 60
2.5.3 Діаграма комунікацій ............................................................ 61
2.5.4 Діаграма скінченого автомату ............................................. 61
РОЗДІЛ 3 ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
СИСТЕМИ ................................................................................................... 64
3.1 Розробка програмного комплексу.................................................. 64
3.2 Розробка модулюючого алгоритму ................................................ 87
3.3 Тестування програмної системи .................................................... 89
3.3.1 Модульне тестування ............................................................ 89
3.3.2 Інтеграційне тестування ....................................................... 90
3.3.3 Системне тестування ............................................................. 91
3.3.4 Приймальне тестування ....................................................... 93
ВИСНОВКИ ................................................................................................. 96
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ.................................................. 97
СПИСОК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ
API – Application Programming Interface
B2B – Business-To-Business
B2B – Business-To-Consumer
CSS – Cascading Style Sheets
HTML – Hypertext Markup Language
PK – Primary Key – первинний ключ таблиці
SQL – Structured Query Language
БД – База даних
ОС – Операційна система
ПЗ – Програмне забезпечення
ПК – Персональний комп’ютер
СКБД – Система керування базами даних
ВСТУП
Інтернет комерція – це вид діяльності в мережі Інтернет, заснований на
отриманні прибутку при здійсненні купівлі-продажу продукції або послуг, в
процесі якого певний цикл фінансової або комерційної транзакції
здійснюється за допомогою Інтернет технологій [1].
Маркетплейс є однією з форм електронної комерції, що відноситься до
типу бізнес-до-споживача (B2C). Процес купівлі-продажу товарів в мережі
Інтернет, є багатоетапним. Тому для збільшення прибутку та товарообігу
необхідна його автоматизація, що дозволить зробити процес купівлі та
продажу більш зручним та ефективним.
Актуальність теми.
Актуальність теми дослідження сучасних платформ типу
“MARKETPLACE” обумовлена стрімким розвитком електронної комерції та
впливом цифрових технологій на економіку. У сучасному світі маркетплейси
стали одним із ключових елементів торгових процесів, забезпечуючи зв’язок
між продавцями та покупцями, спрощуючи доступ до товарів і послуг, а також
знижуючи витрати на ведення бізнесу.
Економічна криза, пандемія COVID-19 та загальна тенденція до
цифровізації прискорили перехід споживачів до онлайн-платформ. У зв'язку з
цим дослідження роботи маркетплейсів стає надзвичайно важливим як для
розуміння моделей поведінки користувачів, так і для оптимізації бізнес-
процесів. Зокрема, це стосується питання ефективності роботи таких
платформ, їхньої здатності забезпечити конкурентні переваги для учасників
ринку, а також їхнього впливу на загальні тенденції розвитку електронної
комерції.
Дослідження сучасних маркетплейсів має на меті вивчення їхніх
моделей управління, бізнес-стратегій, механізмів монетизації та розвитку
інновацій, що є важливими аспектами для студентів, дослідників, а також
підприємців. Вивчення цих питань дозволить краще розуміти, як
використовувати такі платформи для розвитку малого та середнього бізнесу, а
також сприятиме подальшій інтеграції України у глобальні економічні
процеси.
Низку робіт, таких як: Adams K., Agesen O., F. Douglis, J.
Ousterhout, M. Kaashoek, Huang K., Bacivarov I., Hugelshofer F., Kevin J. Barker,
Davis K., Darren J. K., Mike L., Scott P., Michał M., Jarosław J., Ewa N. S,
Przemysław S., Krzysztof G., Vitullo F., Petri E., Fanucci L., Casula A. Sethia, D.
A. Jamshidi, Mark Silberstein. Однак, при всій цінності проведених наукових
досліджень окремі питання аналізу та порівняння сучасних платформ типу
“Marketplace” дослідженні недостатньо.
Таким чином, тема є актуальною не лише з теоретичної точки зору, але
й має вагоме практичне значення для розвитку економіки, бізнесу та
підприємництва в умовах сучасних викликів цифрової ери. Це дослідження
сприятиме глибшому розумінню того, як працюють маркетплейси, які виклики
вони створюють і які можливості відкривають для сучасних підприємців та
споживачів.
Зв’язок роботи з останніми дослідженнями, науковими програмами,
планами, темами.
Напрям дослідження кваліфікаційної роботи пов'язаний з
бюджетною науково-досліднитскої роботи Черкаського державного
технологічного університету: “Методи, моделі при обробці інтелектуальних,
інформаційних технологій для високоефективних обчислювальних та
локальних підсистем управління в проблемно-орієнтованих системах” (№ д.р.
0106U004501
Мета і завдання розробки. Метою кваліфікаційної роботи магістра є
аналіз за рахунок методу об’єктивного оцінювання багато параметричних
моделей платформ маркетплейсу та розробка web додатку marketplace для
продажу товарів. Завдання цієї системи полягає в спрощенні процесу
розміщення, продажу та покупки товару на всіх етапах, надаючи доступ до неї
через єдиний веб-ресурс.
Для досягнення поставленої мети необхідно вирішити наступні
завдання:
- Провести аналіз основних характеристик сучасних
маркетплейсів.
- Провести порівняльний аналіз моделей платформ маркетплейсів.
- Розробити алгоритм визначення кращої платформи маркетплейс.
- Реалізація програмного засобу платформи маркетплесу в
українському контексті.
Об'єкт розробки. Процеси електронної комерції в мережі Інтернет.
–
Предметом дослідження є сучасні платформи типу Marketplace.
Методи дослідження. Для вирішення поставлених завдань використані
теорії систем, методи просторових перетворень і об'єктно-орієнтованого
програмування, методів системного синтезу та аналізу для визначення та
опису компонентів даної галузі; методів та теорії математичного
моделювання.
Наукова новизна одержаних результатів полягає в тому що:
- Проведено аналіз основних характеристики сучасних
маркетплейсів і їх вплив на економічні процеси, що дозволяє
зменшити час користувачу на визначення кращої платформи.
- Запропоновано рекомендації щодо підвищення ефективності
використання таких платформ в українському контексті.
Практичне значення отриманих результатів. У ході дослідження
було проведено порівняльний аналіз існуючих веб-додатків marketplace, що
дозволило побачити переваги та недоліки існуючих рішень та врахувати їх при
розробці власного додатку. Основними функціональними можливостями
додатка є: реєстрація та авторизація користувачів, додавання та перегляд
інформації про товар, здійснення покупки та продажу товарів.
Отримані результати дозволили розробити зручний, ефективний та
багатофункціональний веб-додаток, який може бути використаний як основа
для подальших розробок в даній області.
Апробація. Результати дослідження доповідалися і обговорювалися:
- на VІІI Міжнародній науково-технічної конференції (м. Дніпро, 1-3 листопада
2023 року);
- на студентській науково-практичній конференції ЧДТУ: 23-24 квітня 2024 р.
Публікації.
Результати досліджень опубліковані в:
1. Лукашенко В. М. Аналіз таблично-алгоритмічних методів
формування функцій у двійково-кодованих системах числення
/ В. М. Лукашенко, Л. Р. Педченко, С. А. Ковальчук,
Г. А. Лукашенко // Комп’ютерне моделювання та оптимізація
складних систем (КМОСС-2023): матеріали VІІI Міжнародної
науково-технічної конференції (м. Дніпро, 1-3 листопада
2023 року); Міністерство освіти і науки України, Державний
вищий навчальний заклад «Український державний хіміко-
технологічний університет». Дніпро : ДВНЗ УДХТУ, 2023. С. 90-
91.
2. Лукашенко В. М. Аналіз основних компонентів існуючих
«MARKETPLACЕ» / Л. Р. Педченко., В. М. Лукашенко // Збірник
тез доповідей студентської науково-практичної конференції
ЧДТУ: 23-24 квітня 2024 р. [Електронний ресурс] / [упоряд. :
Єгорова О. В., Захарова О. В., Тичков В. В. та ін.] ; М-во освіти і
науки України, Черкас. держ. технол. ун-т. – Черкаси : ЧДТУ, 2024.
– С. 15.
3. Педченко Л. Р. Модулюючий алгоритм взаємодії користувачів з
торговими майданчиками типу «MARKETPLACЕ» як ефективна
стратегія ведення бізнесу / Л. Р. Педченко // Тенденції та
перспективи розвитку науки і освіти в умовах глобалізації:
матеріали міжнародної науково-практичної інтернет-конференції
(м.Переяслав, вип.105 2024 року); Міністерство освіти і науки
України, Державний вищий навчальний заклад «Університет
Григорія Сковороди в Переяславі». Переяслав : ДВНЗ УГСП, 2024.
С. 72-75.
Структура та обсяг кваліфікаційної роботи. Кваліфікаційна робота
магістра складається із списку умовних скорочень, вступу, трьох розділів,
висновку та списку використаної літератури. Загальний обсяг роботи магістра
складає ?? сторінок, ?? рисунків та ?? таблиць. Список використаних джерел
містить 30 найменувань.
РОЗДІЛ 1
СТАН ПРЕДМЕТУ ДОСЛІДЖЕННЯ ТА ФОРМУВАННЯ
ЗАВДАНЬ
1.1 Основні поняття та принципи роботи Marketplace
Marketplace (маркетплейс) – це електронна платформа для здійснення
торгівлі товарами або послугами, яка відіграє роль посередника між
продавцем і покупцем. Такі платформи функціонують як багатосторонні
торговельні майданчики, на яких одночасно можуть бути представлені
численні продавці. Покупці, у свою чергу, мають можливість переглядати,
порівнювати та купувати товари від різних продавців, не покидаючи меж
платформи. Marketplace можна порівняти з великими роздрібними мережами
або гіпермаркетами, де під одним "дахом" зосереджені різні продавці та їхні
продукти.
Під поняттям marketplace розуміють електронні майданчики для торгівлі
товарами чи послугами. Marketplace – являється свого роду посередником між
продавцем та клієнтом. Такі платформи можна порівняти з гіпермаркетами. На
одному сервісі може знаходиться багато продавців, а покупці можуть
вибирати товари, порівнювати та купувати їх в різних магазинах, не
залишаючи меж майданчика.
Основною метою marketplace є забезпечення взаємодії між покупцями
та постачальниками (рис. 1). Як правило вони не формують замовлення і не
займаються організацією доставки, а лише приймають заявки і передають їх
продавцю. Ще однією задачею маркетплейса є надання трафіку для
постачальників, відповідають за аналітику та зручність використання,
забезпечують підтримку у маркетинговій галузі. Серед головних завдань таких
сервісів можна відзначити допомогу у пошуку товарів та збільшення обсягів
продажу [1].
Серед ключових завдань маркетплейсів – надання доступу до широкої
аудиторії споживачів (генерація трафіку), підтримка аналітичних
інструментів, які допомагають продавцям краще розуміти попит, оптимізувати
пропозиції, а також забезпечення зручності використання платформи для всіх
учасників процесу. Крім того, маркетплейси активно сприяють маркетинговій
підтримці продавців, допомагають їм збільшувати видимість товарів та обсяги
продажів через рекламні кампанії або інші просування.
Ще одним важливим аспектом діяльності маркетплейсів є допомога у
спрощенні процесу пошуку товарів для покупців. Через інтегровані системи
пошуку та фільтрації, користувачі можуть швидко знайти необхідні продукти,
порівняти їх за ціною, характеристиками, якістю або відгуками, що значно
підвищує ефективність процесу купівлі.
Таким чином, маркетплейси виконують багатофункціональну роль у
сучасній електронній комерції: вони не лише створюють умови для зручного
та безпечного торгового середовища, але й сприяють підвищенню конкуренції
серед продавців, що, в свою чергу, позитивно впливає на розвиток ринку та
збільшення доступності товарів і послуг для кінцевих споживачів.
Рис. 1.1. Схема взаємодії між покупцями та постачальниками
Принципи роботи marketplace
Серед існуючих на ринку сервісів можна знайти певні нюансами та
особливості. Але серед загального числа можна виділити основні принципи
роботи таких площадок:
1 авторизація продавців;
2 реєстрація товарів (додавання фото, детальні описи);
3 транспортування товару на складські комплекси;
4 пошук необхідної продукцію клієнтами;
5 оформлення замовлення;
6 відправка товару клієнтам.
Наводячи принципи роботи, варто відзначаючи принцип оплати послуг
платформи. При замовленні товару через дану платформу, клієнт переказує
кошти на її рахунок. Майданчик отримує комісію із суми купівлі за свої
послуги посередника. Решта грошей переказується на карту або рахунок
продавця.
Основні характерні особливості існуючих платформ
1. Швидкий старт власного бізнесу. Використання маркетплейсів
дозволяє підприємцям розпочати комерційну діяльність без
необхідності створювати власний вебсайт або розробляти складні
технічні рішення. Для старту бізнесу достатньо пройти реєстрацію на
платформі, мати юридичну форму (наприклад, Товариство з обмеженою
відповідальністю (ТОВ) або статус індивідуального підприємця), а
також закупити товар для подальшого продажу. Такий підхід значно
зменшує бар'єри для входу на ринок.
2. Мінімізація витрат. Marketplace платформи дозволяють підприємцям
уникати значних витрат на розробку і підтримку власного вебсайту,
послуги контекстної реклами, залучення фахівців з SEO та інших витрат,
пов’язаних із традиційною електронною комерцією. Усі технічні
аспекти функціонування магазину, включаючи маркетингові
інструменти, автоматизовані процеси замовлень та доставок,
підтримуються платформою. Для просування товарів використовується
різноманіття механізмів, таких як знижки або акції, що спрощує процес
просування для продавців.
3. Організація процесу продажів "під ключ". Багато маркетплейсів
пропонують повну підтримку операцій з продажу. Продавцям достатньо
лише завезти свою продукцію на склад маркетплейсу або надати її для
онлайн-продажу, якщо власний склад не використовується. Marketplace
бере на себе відповідальність за зберігання товарів, організацію
логістики, а іноді й за доставку до кінцевого споживача, що значно
полегшує навантаження на продавця.
4. Висока видимість у пошукових системах. Маркетплейси мають високі
позиції в пошукових системах завдяки значному трафіку та
впізнаваності. Це дозволяє інтернет-магазинам, що розміщуються на
таких платформах, отримувати доступ до великої аудиторії без
необхідності в окремих заходах для підвищення своєї видимості.
5. Розширені можливості для просування. Маркетплейси активно
підтримують своїх клієнтів через маркетингові кампанії, внутрішню
рекламу, акції та програми лояльності. Це дозволяє продавцям
збільшити впізнаваність брендів, залучати нових клієнтів та
розширювати ринок збуту. Marketplace платформи також надають
продавцям доступ до аналізу даних, що допомагає оптимізувати продажі
та маркетингові стратегії.
6. Можливість виходу на міжнародні ринки. Багато маркетплейсів,
зокрема Amazon, AliExpress, Etsy та інші, дозволяють продавцям
працювати на міжнародному рівні, відкриваючи доступ до глобальних
ринків. Це значно спрощує процес виходу на нові ринки без необхідності
налагодження окремої інфраструктури для кожної країни.
7. Доступ до аналітики продажів. Marketplace платформи зазвичай
надають продавцям детальні аналітичні звіти щодо продуктивності
продажів, популярності товарів, динаміки попиту та інших важливих
показників. Ця інформація доступна в особистих кабінетах
користувачів, що дозволяє ефективно контролювати бізнес-процеси та
приймати обґрунтовані рішення.
8. Конкуренція між продавцями. Незважаючи на можливість легкої
участі у marketplace, існує висока конкуренція між численними
продавцями, що може знизити маржу прибутку, особливо для нових
гравців ринку.
9. Комісії та витрати на обслуговування. Marketplace стягують комісію
з кожної угоди, що може знижувати загальний прибуток продавця.
Додатково можуть виникати витрати на просування товарів всередині
платформи.
10. Залежність від платформи. Бізнес, що базується на marketplace,
значною мірою залежить від правил і політики платформи. Зміна умов
співпраці або внутрішніх алгоритмів пошукової видачі може негативно
вплинути на продажі.
Використання маркетплейсів надає численні переваги для підприємців,
однак кожен бізнес повинен враховувати потенційні ризики та недоліки,
пов’язані з цим форматом торгівлі.
Відмінність між інтернет-магазином та маркетплейсом полягає в різних
підходах до організації електронної комерції, їх бізнес-моделях, а також у
способах взаємодії з покупцями та продавцями. Хоча обидва типи платформ
використовуються для продажу товарів і послуг онлайн, вони функціонують
за принципово різними схемами.
Інтернет-магазин: модель одного продавця
Інтернет-магазин являє собою платформу, що керується одним
продавцем або компанією, яка займається продажем власних товарів або
послуг. У такій моделі бізнесу покупець здійснює покупку безпосередньо від
продавця, який є єдиним постачальником продукції. Основна відповідальність
за всі етапи процесу продажу – від розміщення товарів на вебсайті до обробки
замовлень, організації доставки і прийому платежів – лежить на самому
продавці.
Однією з ключових особливостей інтернет-магазинів є те, що
асортимент продукції обмежений товарами або послугами конкретного
продавця. Таким чином, покупець може вибирати лише з пропозицій одного
постачальника, що зменшує варіативність вибору. Інтернет-магазини зазвичай
використовують власні платіжні системи, і продавець повністю контролює всі
аспекти взаємодії з клієнтами.
1.2 Порівняльний аналіз існуючих платформ типу «Marketplace
На відміну від інтернет-магазину, маркетплейс представляє собою
багатосторонню платформу, де одночасно діють кілька незалежних продавців.
Функціонування маркетплейсу передбачає взаємодію між великою кількістю
продавців і покупців, що створює умови для широкого вибору товарів і послуг.
Маркетплейс не обмежується одним постачальником, а натомість пропонує
покупцям можливість придбати продукцію від різних продавців, які
розміщують свої товари на одній платформі.
Основна роль маркетплейсу полягає у забезпеченні інфраструктури для
торгівлі, яка включає зручний інтерфейс для покупок, систему платежів,
підтримку логістичних процесів та аналітичні інструменти для продавців.
Продавці на маркетплейсах мають можливість використовувати вже готову
платформу з великою аудиторією, не витрачаючи ресурси на створення
власного вебсайту або розробку складних технічних рішень. Marketplace, як
правило, отримує дохід за рахунок комісій з продажів або плати за
використання платформи.
Основні відмінності між інтернет-магазинами
1. Модель продажів. В інтернет-магазині продажі здійснюються лише одним
продавцем.
2. Вибір товарів. Асортимент інтернет-магазину обмежений пропозиціями
одного продавця, тоді як маркетплейс пропонує широкий вибір товарів від
різних постачальників, що забезпечує покупцям більше варіантів для вибору.
3. Управління процесами. В інтернет-магазині продавець контролює всі етапи
продажу – від виставлення товару до його доставки.
4. Ризики та витрати. Інтернет-магазини вимагають більших початкових витрат
на розробку та підтримку платформи, що включає витрати на вебдизайн, SEO,
маркетинг та технічну підтримку. У маркетплейсах продавці можуть
зменшити ці витрати, оскільки більшість технічних і маркетингових завдань
бере на себе платформа. Проте, за використання послуг маркетплейсу
продавці сплачують комісію або фіксовану плату.
5. Аудиторія та просування. Інтернет-магазини змушені самостійно залучати
клієнтів через рекламу, соціальні мережі та інші канали. Отже, ключова
відмінність між інтернет-магазином і маркетплейсом полягає в різному
Отже, основна відмінність між інтернет-магазином та маркетплейсом
полягає в моделі бізнесу. За видом бізнес-моделей маркетплейсів,
взаємовідносини з клієнтами можна класифікувати наступним чином:
− B2B (англ. business-to-business) бізнес для бізнесу;
− В2С (англ. business-to-customer) бізнес для споживача;
− C2C (англ. customer -to-customer) споживач для споживача.
Форма «бізнес для бізнесу» передбачає взаємодію з оптовим продавцем.
Сфера діяльності орієнтована на отримання прибутку від надання послуг чи
продажу товарів іншому бізнесу. До маркетплейсів даного типу належать ті,
що займаються обслуговуванням оптових покупок;
Форма «бізнес для споживача» передбачає продажі розраховані на
окремих покупців. Цей вид бізнес-моделі є найбільш поширеним серед
маркетплейсів.
Форма «споживач для споживача» передбачає взаємодію між
приватними особами, причому як за гроші, так і за бартером. Подібний
принцип реалізований на таких платформах як eBay, Ozon та ін.
Процес створення та розробки платформи типу marketplace охоплює низку
важливих етапів, які є фундаментальними для забезпечення успішного
функціонування такої системи. Кожен з цих етапів передбачає ретельне
планування та координацію дій розробників, дизайнерів і бізнес-аналітиків.
Важливою характеристикою цього процесу є його багатофункціональність,
адже він охоплює як технічні, так і аналітичні аспекти.
1. Затвердження технічного завдання (ТЗ). Розробка будь-якого
програмного забезпечення розпочинається з детального формулювання
технічного завдання. Первинне технічне завдання визначає ключові
функціональні вимоги до майбутньої платформи, описує її основні
характеристики та особливості. На цьому етапі відбувається узгодження
між замовником і розробниками стосовно обсягу роботи,
функціональних можливостей системи, а також часу та ресурсів,
необхідних для реалізації проекту.
2. Аналіз сфери застосування. Перед початком технічної розробки
необхідно провести глибокий аналіз ринку та сфери, в якій буде
використовуватися marketplace. Це передбачає вивчення потреб
потенційних користувачів, конкурентного середовища, а також
правових і економічних умов функціонування платформи. На основі
цього аналізу формується чітке розуміння функцій, які мають бути
реалізовані, а також визначаються конкурентні переваги майбутнього
продукту.
3. Веб-дизайн. Наступний етап включає розробку веб-дизайну платформи,
яка повинна забезпечити інтуїтивно зрозумілий інтерфейс і позитивний
користувацький досвід. Це передбачає створення візуальної концепції,
яка поєднує естетичність із функціональністю, забезпечуючи легкість
навігації та доступність основних функцій. Крім того, дизайн має
відповідати сучасним стандартам адаптивності, що дозволяє платформі
коректно відображатися на різних пристроях (комп'ютерах, смартфонах,
планшетах).
4. Розробка архітектури програмного забезпечення (ПЗ). Після
завершення веб-дизайну переходять до розробки архітектури
програмного забезпечення. Це один із найважливіших етапів, оскільки
він визначає структуру і логіку роботи всієї системи. Архітектура ПЗ
забезпечує ефективну взаємодію між різними компонентами
платформи, гарантує її масштабованість, надійність та безпеку. Вибір
архітектурного підходу впливає на те, як платформа буде працювати під
навантаженням, її здатність до швидкої адаптації та інтеграції нових
функцій.
5. Вибір методу проектування та засобів реалізації ПЗ. Завершальним
етапом перед початком безпосереднього кодування є вибір методології
проектування та програмних засобів, що будуть використані для
реалізації платформи. Серед найбільш поширених методологій можна
виділити гнучкі підходи (Agile, Scrum) та каскадні моделі розробки
(Waterfall). Також на цьому етапі відбувається вибір мов програмування,
фреймворків і баз даних, які найбільше підходять для створення
marketplace з огляду на його функціональні вимоги, безпеку,
продуктивність та зручність підтримки в майбутньому.
Таким чином, створення і розробка marketplace є складним і
багатогранним процесом, який вимагає систематичного підходу та
координації дій фахівців різних галузей, починаючи від бізнес-аналітиків і
дизайнерів до програмістів та архітекторів програмного забезпечення. Кожен
з описаних етапів є критичним для успішної реалізації проекту та створення
ефективної платформи, яка здатна задовольнити потреби як покупців, так і
продавців.
Відмінність маркетплейсу від Інтернет магазину
Інтернет-магазин та маркетплейс – це два різних типи електронної
комерції, хоча вони мають деякі спільні риси. Основні відмінності між ними
полягають у моделі бізнесу, взаємодії з покупцями та продавцями, а також в
асортименті товарів.
Основна відмінність між інтернет-магазином та маркетплейсом полягає
у тому, що інтернет-магазин – це один продавець, який продає свій власний
товар або послуги. Таким чином, покупці можуть здійснювати покупки тільки
від одного продавця. У магазині продавець зазвичай відповідає за всі етапи
продажу, від розміщення товарів на сайті до доставки і оплати.
Маркетплейс, з іншого боку, забезпечує взаємодію кількох продавців та
покупців на одній платформі. На маркетплейсі можуть продавати товари як
компанії, так і окремі приватні особи. В той же час, маркетплейс не має
власного товару, а лише надає платформу для здійснення торгівлі між
покупцями та продавцями. Основний вид прибутку маркетплейсу це комісія з
продажу товарів.
Щодо асортименту товарів, то в інтернет-магазинах зазвичай
продаються власні товари продавця або товари від виробників, з якими
продавець укладає угоди. У маркетплейсах же можна знайти великий
асортимент товарів від різних продавців, що робить вибір для покупців більш
різноманітним.
Отже, основна відмінність між інтернет-магазином та маркетплейсом
полягає в моделі бізнесу. За видом бізнес-моделей маркетплейсів,
взаємовідносини з клієнтами можна класифікувати наступним чином:
− B2B (англ. business-to-business) бізнес для бізнесу;
− В2С (англ. business-to-customer) бізнес для споживача;
− C2C (англ. customer -to-customer) споживач для споживача.
Форма «бізнес для бізнесу» передбачає взаємодію з оптовим продавцем.
Сфера діяльності орієнтована на отримання прибутку від надання послуг чи
продажу товарів іншому бізнесу. До маркетплейсів даного типу належать ті,
що займаються обслуговуванням оптових покупок;
Форма «бізнес для споживача» передбачає продажі розраховані на
окремих покупців. Цей вид бізнес-моделі є найбільш поширеним серед
маркетплейсів.
Форма «споживач для споживача» передбачає взаємодію між
приватними особами, причому як за гроші, так і за бартером. Подібний
принцип реалізований на таких платформах як eBay, Ozon та ін.
Процес створення і розробки marketplace включає в себе:
− затвердження первинного технічного завдання на розробку веб-
додатку;
− аналіз сфери застосування;
− веб-дизайн;
− розробка архітектури програмного забезпечення;
− вибір методу проектування та програмних засобів реалізації ПЗ;
− розробка структури даних для зберігання інформації;
− розробка алгоритмів розв'язання задач;
− тестування системи;
− розгортання marketplace в мережі Інтернет;
− розробка інструкції програміста;
− розробка інструкції користувача;
Отже, основна мета будь-якого комерційного сайту полягає в
обслуговуванні користувачів способом, який принесе йому вигоду. Мета
поширення інформації шляхом такого сайту полягає в тому, щоб спробувати
підштовхнути людей придбати продукцію або послуги компанії. Кінцевий
результат використання marketplace полягає в заохоченні інтересу до
здійснення ділової операції.
1.2 Аналіз існуючих аналогів
«Rozetka»
Інтернет-магазин ROZETKA стартував в 2005 році, а в 2016 році він
перейшов у формат маркетплейса. В день сайт відвідують близько 3 мільйонів
користувачів, що робить ROZETKA популярною та ефективною торговою
площадкою №1 в Україні.
На сьогоднішній день Rozetka.ua позиціонує себе як найбільш
популярним магазином електроніки і побутової техніки в Україні. Такого
статусу вдалося досягти завдяки максимально широкому асортименту та
хорошому сервісу. На сайті доступні відеоогляди новинок, статті та новини.
На рисунку 1.1 представлено зовнішній вигляд Інтернет магазину.
Рис. 1.1. Зовнішній вигляд Rozetka.ua
Зверху розташоване стрічка заголовку магазину із головним меню,
логотипом та стрічкою пошуку. По дизайну стрічка заголовку має гарний
контраст із тлом основної області. Зліва зручно розташована панель навігації,
з перерахуванням категорій товарів, що доступні для покупки користувачу. До
недоліків можна віднести повільне завантаження сторінки та спливаючу
рекламу.
«Prom»
Prom існує з 2008 року і за цей час зарекомендував себе як зручний
онлайн-майданчик і для покупців, і для продавців. На маркетплейсі
представлено понад 100 мільйонів товарів та 60 тисяч підприємців, тут можна
знайти як роздрібні, так і оптові пропозиції, а на день сайт відвідує понад 2,6
млн користувачів.
Для початку співробітництва потрібно пройти процедуру реєстрації,
вибрати тариф у кабінеті та завантажити товари відповідно до правил
маркетплейсу, вказати способи оплати та доставки. Потім відповідно до умов
вибраного тарифу можна опрацювати дизайн вашого магазину, налаштувати
аналітику та рекламу, щоб підвищити ефективність продажу. На рисунку 1.2
представлено зовнішній вигляд Інтернет магазину.
Рис. 1.2. Зовнішній вигляд prom.ua
До переваг можна віднести, те що Prom.ua дозволяє створити власний
сайт на базі маркетплейсу за допомогою конструктора, а також має інтеграцію
з основними постачальниками логістичних та фінансових послуг. Крім цього,
маркетплейс має три синхронізовані канали продажу: каталог маркетплейсу,
сайт на платформі Prom.ua та мобільний додаток «Prom покупки».
«OLX»
один із найпопулярніших маркетплейсів для купівлі та продажу товарів
і послуг від приватних осіб в Україні. Платформа відома тим, що на ній
широко представлені б/у товари, проте вона також активно використовується
малими бізнесами для продажу нових товарів. На рисунку 1.3 представлено
зовнішній вигляд Інтернет магазину.
Рис. 1.3. Зовнішній вигляд olx.ua
Серед основних переваг OLX можна виділити можливість купувати
товари за нижчими цінами, ніж у звичайних магазинах, що приваблює
багатьох користувачів. Крім того, платформа має велику базу користувачів,
що дозволяє легко знайти як покупців, так і продавців. Процес реєстрації на
OLX є простим і швидким, що робить розміщення оголошень доступним для
всіх.
Проте є й недоліки. OLX не забезпечує систему гарантій для покупців,
що підвищує ризик придбання неякісного товару або товару від
недобросовісних продавців. Також існує ризик зіткнутися з підробками, що
вимагає від користувачів уважності при виборі товару та здійсненні угод.
«Allo»
Allo розпочав свою діяльність як інтернет-магазин, спеціалізуючись на
електроніці, проте з часом розширився до повноцінного маркетплейсу з
широким асортиментом товарів. Серед них можна знайти гаджети, побутову
техніку, косметику та інші категорії. На рисунку 1.4 представлено зовнішній
вигляд Інтернет магазину.
Рис. 1.4. Зовнішній вигляд allo.ua
Основними перевагами Allo є його стабільна репутація на ринку
електроніки, що викликає довіру у покупців. Крім того, компанія забезпечує
швидку доставку по всій Україні, що значно покращує користувацький досвід.
Allo також пропонує продукцію від відомих міжнародних брендів, що
дозволяє покупцям обирати товари високої якості.
Однак, серед недоліків варто зазначити відносно вужчий асортимент
товарів у порівнянні з іншими великими маркетплейсами, такими як Rozetka.
Це обмежує вибір для покупців, особливо в деяких категоріях товарів. Крім
того, Allo стикається з високою конкуренцією на ринку, що створює виклики
для подальшого розширення.
«Kasta»
Kasta – це популярний маркетплейс, який спеціалізується на продажу
одягу, взуття та аксесуарів. Платформа надає великий вибір товарів від
міжнародних та місцевих брендів, що дозволяє покупцям знайти продукцію на
будь-який смак і бюджет. На рисунку 1.2 представлено зовнішній вигляд
Інтернет магазину.
Рис. 1.5. Зовнішній вигляд kasta.ua
Серед основних переваг Kasta можна виділити часті акції та розпродажі,
що дозволяє покупцям значно економити на покупках. Платформа також має
зручний інтерфейс і мобільний додаток, що полегшує навігацію та процес
купівлі. Додатковою перевагою є можливість швидкої доставки, що робить
платформу привабливою для тих, хто цінує оперативність.
Однак Kasta має і деякі недоліки. Основний фокус на одяг та аксесуари
обмежує вибір для тих, хто шукає інші види продукції, наприклад, електроніку
чи товари для дому. Крім того, відсутність гарантій щодо всіх продавців може
створювати ризики для покупців, особливо при замовленні товарів від менш
відомих брендів.
«Epicentr K»
Epicentr K – один із найбільших та найвідоміших рітейлерів в Україні,
який нещодавно розширив свою діяльність, запустивши власний маркетплейс.
Платформа пропонує широкий вибір товарів, включаючи будівельні
матеріали, побутову техніку, меблі, товари для дому та інші категорії. На
рисунку 1.2 представлено зовнішній вигляд Інтернет магазину.
Рис. 1.6. Зовнішній вигляд marketplace epicentrk.ua
Основними перевагами маркетплейсу Epicentr K є великий вибір
товарів, що охоплює широкий спектр потреб, особливо у сфері будівництва та
домашнього господарства. Крім того, Epicentr K користується великою
популярністю та довірою серед українських споживачів завдяки своїй
багаторічній присутності на ринку. Покупці також мають можливість
замовляти товари з доставкою або забирати їх у магазинах мережі, що
забезпечує гнучкість у виборі способу отримання замовлень.
Epicentr K більше орієнтований на товари для дому, будівництва та
ремонту, що дещо обмежує асортимент порівняно з іншими маркетплейсами,
які пропонують більший вибір у таких категоріях, як мода, електроніка чи
косметика. Це може бути недоліком для покупців, які шукають різноманітніші
категорії товарів.
Таблиця 1.1
Реляційна модель даних програмних продуктів
ROZETK 42-45 10 000+ 4-5 Наявна 7-10
A
Prom 51-54 60 000+ 100 Наявна 3-5
OLX 15-20 300,000 10-15 Наявна 2-4
+
Allo 5-10 1,000+ 0.5-1 Наявна 1-3
Kasta 3-5 2,000+ 1-3 Наявна 1-2
Epicentr K 21-23 3 500+ 2 Наявна 2-3
Параметри Інтернет з’єднання для розглянутих аналогів перевірялося за
допомогою сервісу https://2ip.ua/ та представлені на рисунку 1.7.
Назва
програмного
продукту
К-сть відвідувачів
млн./в місяць
К-сть продавців
К-сть товарів, млн.
Конфіденційність
Час повного
завантаження, сек
Рис. 1.7. Параметри Інтернет з’єднання
Таблиця 1.2
Реляційна модель мінімальних параметрів інтернет з’єднання,
необхідних для взаємодії з платформою, що затверджена розробниками.
№ Параметр Мінімальна швидкість
1 Завантаження 3-5 Мбіт/с
2 Вивантаження 1-2 Мбіт/с
3 Затримка (Ping) < 100 мс
Таблиця 1.3
Реляційна модель параметрів інтернет з’єднання для єфективного
користування платформою, що затверджена розробниками.
№ Параметр Бажана швидкість
1 Завантаження 10-25 Мбіт/с
2 Вивантаження 3-5 Мбіт/с
3 Затримка (Ping) < 50 мс
1.3 Актуальні проблеми, що виникають в процесі розробки
У процесі розробки маркетплейсів можуть виникати численні виклики, які
потребують детального аналізу та належного вирішення. Ось деякі з
найактуальніших проблем, що можуть зустрічатися:
Складність масштабування: Одна з найбільших проблем, з якою
стикаються маркетплейси, — це складність масштабування системи. Зі
збільшенням кількості користувачів, товарів або транзакцій виникає потреба в
адаптації архітектури платформи, бази даних та інфраструктури для
забезпечення стабільної та безперебійної роботи. Це може включати
впровадження розподілених систем, оптимізацію запитів до бази даних та
використання сучасних технологій, таких як мікросервіси.
Безпека та захист даних: Забезпечення безпеки та конфіденційності даних
користувачів є критично важливим аспектом функціонування маркетплейсів.
Розробники повинні впроваджувати різноманітні заходи для захисту від
зловживань, таких як хакерські атаки, витоки персональних даних і
шахрайство. Це може включати використання технологій шифрування,
багатофакторної автентифікації, а також регулярне проведення аудиту безпеки
системи.
Регуляторні вимоги: В залежності від географічного розташування та
специфіки діяльності, маркетплейси підпадають під різні регуляторні норми
та вимоги. Розробники повинні бути в курсі цих законодавчих обмежень і
адаптувати свій продукт відповідно до них. Це може включати дотримання
вимог щодо захисту персональних даних (наприклад, GDPR у Європі),
ліцензування певних видів діяльності або ведення звітності перед державними
органами.
Конкуренція та привабливість: Маркетплейси функціонують у
висококонкурентному середовищі, де важливо не лише залучити нових
продавців і покупців, а й утримати їх. Розробники повинні створювати зручні
та інтуїтивно зрозумілі інтерфейси, пропонувати широкий спектр функцій і
забезпечувати високоякісну підтримку користувачів. Це може включати
впровадження систем лояльності, акцій, а також активну роботу з відгуками
користувачів для постійного покращення сервісу.
Управління ризиками: У маркетплейсах можуть виникати різноманітні
ризики, пов'язані зі суперечками між продавцями та покупцями,
недобросовісними учасниками ринку або шахрайством. Розробники повинні
створити ефективні механізми для вирішення таких спорів і управління
ризиками. Це може включати впровадження системи оцінок та відгуків,
автоматизацію процесу розгляду скарг, а також запровадження чітких умов
користування, які б захищали права всіх учасників.
Ці виклики не є вичерпним переліком, але вони вказують на основні
аспекти, що потребують уваги під час розробки маркетплейсу. Вирішення
вказаних проблем вимагає комплексного підходу, високої експертизи, а також
застосування надійних технічних рішень.
1.4 Методи та засоби, які вже використовуються для розробки
Розробка маркетплейсів є складним процесом, що передбачає використання
різноманітних методів та інструментів для створення ефективної онлайн-
платформи, яка забезпечує торгівлю товарами або послугами. Нижче наведено
основні компоненти цього процесу:
Веб-розробка: Основою будь-якого маркетплейсу є веб-технології, які
використовуються для створення користувацького інтерфейсу. Зокрема,
HTML (HyperText Markup Language), CSS (Cascading Style Sheets) і JavaScript
виконують фундаментальну роль у формуванні структури, стилю та динаміки
веб-сторінок. Використання сучасних фреймворків і бібліотек, таких як React,
Angular або Vue.js, значно полегшує процес розробки фронтенду, дозволяючи
створювати інтерактивні та зручні для користувачів інтерфейси.
База даних: Маркетплейси потребують надійної та потужної бази даних для
зберігання і управління інформацією про товари, продавців, покупців та
замовлення. Реляційні системи управління базами даних, такі як MySQL або
PostgreSQL, є популярними виборами завдяки своїй структурованій природі та
можливостям оптимізації запитів. Це дозволяє ефективно управляти великими
обсягами даних, що є критично важливим для функціонування маркетплейсу.
API-інтеграція: Важливим аспектом сучасних маркетплейсів є інтеграція з
зовнішніми сервісами за допомогою API (інтерфейсів програмування
застосунків). Це дозволяє підключати різні функції та сервіси, такі як платіжні
шлюзи, системи доставки або соціальні мережі, що сприяє зручності та
функціональності платформи. Завдяки цьому користувачі можуть отримувати
доступ до різноманітних послуг безпосередньо з інтерфейсу маркетплейсу,
покращуючи загальний досвід користування.
Облікові записи користувачів: Реалізація системи облікових записів та
автентифікації є ключовим компонентом для забезпечення зручності та
безпеки платформи. Користувачі повинні мати можливість створювати
профілі, здійснювати покупки, розміщувати продукти та управляти своїми
активностями на маркетплейсі. Це також передбачає впровадження механізмів
для відновлення доступу та управління паролями, що підвищує безпеку
користувацьких облікових записів.
Автентифікація та безпека: Забезпечення безпеки та конфіденційності
даних користувачів є критично важливим для довіри до маркетплейсу. Це
включає в себе реалізацію механізмів автентифікації, таких як багатофакторна
автентифікація, а також шифрування даних для захисту чутливої інформації.
Додатково, необхідно вжити заходів безпеки на рівні сервера та захистити
процеси здійснення платежів, щоб уникнути шахрайства та забезпечити
безпечні транзакції.
Інтеграція платіжних систем: Маркетплейси повинні забезпечити
безпечний та зручний процес оплати для користувачів. Це передбачає
інтеграцію з провідними платіжними шлюзами, такими як PayPal, Stripe та
інші. Завдяки цій інтеграції користувачі можуть легко здійснювати платежі, не
залишаючи платформу, що суттєво покращує зручність використання.
Пошук та фільтрація: Для забезпечення комфортного досвіду користувачів
важливо розробити ефективні механізми пошуку та фільтрації. Це дозволяє
користувачам швидко знаходити необхідні товари чи послуги за різними
критеріями, такими як категорії, ціна, розташування та інші параметри.
Впровадження складних алгоритмів пошуку та фільтрації може значно
полегшити процес покупки для кінцевих користувачів.
Таким чином, розробка маркетплейсів є багатогранним процесом, що
включає різноманітні методи і засоби. Вибір конкретних інструментів та
технологій залежить від специфіки проекту, цілей бізнесу та вимог ринку.
1.5 Конкретизація завдань роботи
Після аналізу існуючих аналогів на ринку ПЗ було виявлено їхні переваги
та недоліки і на основі отриманих потреб замовників, виникла наступна
постановка задачі – розробити marketplace, який швидко завантажується, не
містить зайвої інформації та реклами. Розроблений функціонал повинен
містити:
1 Реєстрація нового користувача та вхід в систему існуючого.
На формі авторизації повинні бути поля для введення логіну, парою та
кнопка яка здійснює вхід. Новий користувач має змогу зареєструватися в
системі.
2 Перегляд історії замовлень;
Кожен користувач повинен мати змогу переглядати історію своїх
замовлень.
3 Перегляд товарів які занесені в систему.
При запуску marketplace користувачу відображається загальний список
товарів із можливістю перегляду його характеристик та доступністю на складі.
4 Поділ товарів на категорії.
Користувач має змогу вибрати товар з доступних на сайті категорій.
5 Додавання товарів в кошик.
Кожен користувач має змогу додати до кошика обраний ним товар.
6 Оформлення замовлень на вибрані товари.
Після додавання обраного товару в кошик користувачу потрібно бути
авторизованим для оформлення замовлення.
7 Адміністрування системи окремим користувачем.
Адміністратор (менеджер) отримує дані про всі замовлення, товари та
категорії з бази даних, і може їх обробляти.
Для наведених завдань повинні бути реалізовані:
• Реляційна база даних
• Користувацький інтерфейс
• Функціонал авторизації та реєстрації користувачів
• Передачу та зберігання конфіденційних даних в зашифрованому
вигляді
• Технічні характеристики
Сервер на якому встановлена система повинен мати наступні
характеристиками:
• CPU: Core I5-2400
• RAM 4096 Mb
• LAN: 100 Mbps
• Встановлений: сервер додатків Apache Tomcat, та БД: Postgresql.
Для відображення marketplace майданчика необхідний ПК, планшет або
телефон з роздільною здатністю екрану 1920х1080 і більше, наявність
браузера з оновленням до останньої версії.
Платформа відкрита із мобільного пристрою повинна бути адаптована та
сумісна зі смартфонами сімейства Apple (починаючи з: iPhone8; iPad4) та
Android (починаючи з Android 10).
Для запуску розробленої системи, клієнт повинен мати наступні
характеристики:
• CPU: Core I3-2100
• RAM 2048 Mb
ОС: Windows, Linux, MacOS, IOS, Android
Браузер з підтримкою HTML5, CSS3, JS.
В першому розділі проведено аналіз основних характеристик сучасних
маркетплейсів на українському ринку, таких як «Rozetka», «PROM.UA»,
«OLX», «Allo», «Kasta», «Epicentr K». Визначено основні переваги та недоліки
цих платформ. Проведено аналіз методів, які вже використовуються для
розробки та можливостей програмних систем. Було проаналізовано
мінімальну і середню швидкості інтернет з’єднання для зручного
користування маркетплейсів, які затверджені розробниками та аналіз
можливостей програмних
РОЗДІЛ 2 ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
СИСТЕМИ
2.1 Предметна область моделювання. Модель предметної області
Модель предметної області для маркетплейсу може включати різні
сутності та взаємодію між ними. Ось приклади основних сутностей, які
можуть бути частиною моделі предметної області для маркетплейсу:
1 Користувачі: Це сутності, які включають покупців, продавців та
адміністраторів. Вони мають інформацію про особисті дані, облікові записи,
історію покупок та активності.
2 Товари або Послуги: Це предмети або послуги, які продаються на
маркетплейсі. Вони можуть мати різні характеристики, такі як назва, опис,
ціна, категорія, фотографії тощо.
3 Замовлення: Це сутності, що представляють окремі покупки
користувачів. Вони містять інформацію про товари, кількість, ціну, адресу
доставки та статус замовлення.
4 Рейтинги та відгуки: Це сутності, які дозволяють користувачам
залишати оцінки та коментарі про товари, послуги та продавців. Вони можуть
містити оцінку, текстовий відгук та інформацію про автора.
5 Платіжні транзакції: Це сутності, які відображають фінансові
операції, пов'язані з покупками. Вони містять інформацію про суму платежу,
метод оплати, дату та статус транзакції.
6 Система доставки: Це сутності, які описують послуги доставки
товарів покупцям. Вони можуть включати інформацію про доставку,
перевізників, адреси доставки, статус відправлення тощо.
Наведений приклад основних сутностей, які можуть бути частиною
моделі предметної області для маркетплейсу. Розробка моделі предметної
області допомагає визначити основні компоненти та взаємодію між ними, що
в свою чергу допомагає у процесі проектування та розробки маркетплейсу.
2.1.1 Словник предметної області
У словнику предметної області для маркетплейсу можуть бути
використані наступні терміни:
1 Маркетплейс (англ. Marketplace): Онлайн-платформа, де користувачі
можуть купувати та продавати товари або послуги.
2 Покупець (англ. Customer): Користувач, який здійснює покупки на
маркетплейсі.
3 Продавець (англ. Seller): Користувач, який розміщує товари або
послуги для продажу на маркетплейсі.
4 Адміністратор (англ. Administrator): Користувач, який має права на
управління та адміністрування маркетплейсу, включаючи модерацію контенту
та розв'язання спорів.
5 Товар (англ. Product): Фізичний або цифровий об'єкт, який
продається на маркетплейсі.
6 Послуга (англ. Service): Набір дій або робіт, які надаються продавцем
покупцю на маркетплейсі.
7 Кошик (англ. Cart): Віртуальний контейнер, в якому покупець збирає
товари перед оформленням замовлення.
8 Замовлення (англ. Order): Запис про покупку, включаючи
інформацію про товари, кількість, ціну, адресу доставки тощо.
9 Оцінка (англ. Rating): Числова оцінка, яку покупець може дати
товару або продавцю, щоб відображати задоволеність чи якість.
10 Відгук (англ. Review): Текстовий коментар, який покупець може
залишити про товар або послугу.
11 Платіжна система (англ. Payment System): Система, яка дозволяє
здійснювати безпечні та зручні онлайн-платежі на маркетплейсі.
12 Доставка (англ. Shipping): Процес пересилання товару від продавця
до покупця після оформлення замовлення.
13 Категорія (англ. Category): Групування товарів або послуг за
спільними характеристиками або категоріями.
14 Комісія (англ. Commission): Відсоток або сума, яку маркетплейс бере
з продажу в якості плати за надання платформи.
15 Пошук та фільтрація (англ. Search and Filtering): Механізми, що
дозволяють користувачам шукати та фільтрувати товари або послуги за
різними критеріями.
2.1.2 Елементи моделювання предметної області
Елементи моделювання предметної області відіграють ключову роль у
процесі створення інформаційних систем, оскільки вони забезпечують
структуроване уявлення про реальний світ у контексті певної проблемної
області. Основними компонентами такого моделювання є сутності, атрибути,
відносини та асоціації.
Сутності являють собою основні об'єкти або концепції, що існують у
предметній області та підлягають моделюванню. Вони можуть бути як
фізичними (наприклад, товари чи кошики), так і абстрактними (такі як
замовлення або користувачі). У нашому проекті до сутностей належать:
Адміністратор, Покупець, База даних, Товар, Кошик та Замовлення. Ці
сутності формують основу інформаційної моделі системи.
Атрибути є властивостями, що описують сутності, забезпечуючи їх
характеристику та ідентифікацію. Наприклад, для сутності Адміністратор
атрибути включають ім'я, прізвище, логін та пароль. Для Покупця це можуть
бути ім'я, прізвище, електронна адреса, логін та пароль. Атрибути сутності
Товар можуть включати назву, опис, ціну та кількість. Завдяки атрибутам стає
можливим детальний опис сутностей та їх відмінність одна від одної.
Відносини визначають зв'язки між сутностями та їхню взаємодію. В
нашому проекті можна виділити такі відносини, як:
Адміністратор може додавати, редагувати та видаляти товари у базі
даних.
Адміністратор має можливість переглядати та оформлювати замовлення
покупців.
Покупець може реєструватися на сайті, переглядати товари, додавати їх
до кошика та оформлювати замовлення.
Асоціації є специфічним видом відносин, що відображають способи,
якими сутності взаємопов'язані. Наприклад:
Покупець має доступ до всіх товарів.
Одне Замовлення може містити багато Товарів.
Один Покупець може створювати кілька Замовлень.
Сума Замовлення залежить від кількості та вартості окремих Товарів.
Використання UML
Для моделювання предметної області буде застосовано мову Unified
Modeling Language (UML), яка є стандартом у галузі об’єктно-орієнтованого
проектування. UML дозволяє створювати різні види діаграм, що візуалізують
структуру та поведінку системи. Основними елементами UML-діаграм є
графічні символи (для позначення сутностей і відносин), зв'язки між
елементами та пояснювальні текстові коментарі.
Таким чином, моделювання предметної області за допомогою UML
забезпечує ефективне виявлення вимог до системи та полегшує її подальшу
розробку й впровадження.
2.1.3 Робоча область моделювання
Робоча область моделювання маркетплейсу охоплює всі аспекти,
пов’язані з функціональністю та процесами, що відбуваються в електронному
середовищі, де здійснюється торгівля товарами чи послугами від множини
незалежних продавців. Цей підхід включає формалізацію бізнес-процесів,
розробку інформаційних структур та алгоритмів, що забезпечують ефективну
роботу платформи. Нижче детально розглянуті основні компоненти такої
моделі:
1. Користувачі
Модель має охоплювати всі типи користувачів, що взаємодіють з платформою.
До них належать:
Покупці — користувачі, які здійснюють пошук і купівлю товарів або
послуг.
Продавці — суб’єкти, що надають свої товари або послуги для продажу.
Адміністратори — особи, що забезпечують функціонування платформи,
модерацію контенту та підтримку користувачів.
Інші ролі — наприклад, кур’єри або технічна підтримка, залежно від
специфіки маркетплейсу.
2. Реєстрація та авторизація
Модель повинна описувати процеси реєстрації нових користувачів,
зокрема валідацію введених даних та підтвердження особи через
багатофакторну аутентифікацію. Авторизація надає доступ до функціоналу
відповідно до ролі користувача.
3. Каталог товарів/послуг
Структура каталогу є ключовим елементом моделі. Вона повинна
включати:
o Ієрархію категорій (категорії, підкатегорії).
o Атрибути товарів (опис, характеристики, ціна, зображення).
o Механізми оновлення даних у реальному часі для підтримання
актуальності інформації.
4. Пошук та фільтрація
Ефективність пошукових алгоритмів відіграє ключову роль у зручності
користування маркетплейсом. Модель повинна включати:
o Пошук за ключовими словами.
o Багаторівневу фільтрацію за атрибутами товарів.
o Рейтинг та рекомендаційні системи, що підвищують релевантність
результатів.
5. Кошик покупок
Процес управління кошиком включає:
o Додавання та видалення товарів.
o Розрахунок загальної вартості з урахуванням податків, знижок та
доставки.
o Підтвердження замовлення через інтерфейс оформлення.
6. Оплата та доставка
Модель повинна забезпечувати інтеграцію з платіжними шлюзами для
обробки транзакцій. Особлива увага приділяється:
o Безпеці платежів через шифрування даних та дотримання
стандартів PCI DSS.
o Моделюванню логістичних процесів, включаючи інтеграцію з
кур’єрськими службами.
7. Управління замовленнями
Цей компонент охоплює:
o Моніторинг статусу замовлень (від оформлення до доставки).
o Моделі обробки повернень та обміну товарів.
o Сповіщення користувачів про зміни статусу замовлення в режимі
реального часу.
8. Аналітика та звітність
Модель повинна передбачати можливості збору й аналізу даних для
оцінки ефективності роботи платформи. Основні напрямки:
o Візуалізація статистичних даних (графіки, діаграми).
o Оцінка поведінки користувачів для покращення UX.
o Генерація звітів для прийняття управлінських рішень.
2.2 Модулюючий алгоритм. Характеристики модулюючого
алгоритму
2.2.1 Модулюючий алгоритм
Модулюючий алгоритм — це вид алгоритмічної системи, яка динамічно
змінює або керує параметрами іншого процесу, системи чи їх компонентів, з
метою впливу на їхню поведінку відповідно до умов середовища або вхідних
даних. Основне призначення такого алгоритму полягає у забезпеченні
адаптивності, ефективного налаштування та оптимізації функціонування
системи для досягнення заданих цілей.
Серед характеристик модулюючого алгоритму можна виділити
наступні:
• Адаптивність: Алгоритм здатний реагувати на змінні зовнішні або
внутрішні фактори, коригуючи параметри системи в реальному часі. Це
забезпечує гнучкість і стійкість до змін.
• Оптимізація: Модулюючий алгоритм спрямований на максимізацію
продуктивності або мінімізацію витрат у рамках заданих обмежень.
• Інтерактивність: Він інтегрується з іншими компонентами системи,
постійно аналізуючи їхній стан і взаємодіючи для забезпечення узгодженості.
• Універсальність: Може бути застосований у широкому спектрі завдань,
від керування фізичними процесами до управління даними або поведінкою
цифрових систем.
Модулюючі алгоритми можуть бути надзвичайно корисними під час
проєктування онлайн-платформи маркетплейсу, оскільки вони здатні
оптимізувати її функціональність, забезпечити адаптацію до потреб
користувачів та підвищити ефективність роботи системи.
2.2.2 Роль модулюючого алгоритму в системі платформи
Маркетплейс
1. Персоналізація користувацького досвіду
Модулюючий алгоритм аналізує дії користувачів, такі як пошукові запити,
перегляди, покупки чи відгуки. На основі цих даних він налаштовує:
• Рекомендаційні системи: Динамічно пропонує товари, які найбільше
відповідають інтересам користувача.
• Контент на головній сторінці: Відображає найрелевантніші категорії,
акції чи бренди.
• Алгоритм може збільшити приорітет товарів, які популярні серед
користувачів з аналогічними вподобаннями.
2. Оптимізація пошукової системи
Алгоритм модулює порядок результатів пошуку залежно від:
• Відгуків і рейтингів товарів.
• Частоти покупок певного товару.
• Поточних трендів або сезонності.
3. Динамічне ціноутворення
На маркетплейсах часто застосовують алгоритми для динамічного
управління цінами:
• Алгоритм може змінювати ціни на основі попиту, доступності товару
чи цін конкурентів.
• Реалізація акцій та знижок у реальному часі, наприклад, у дні великих
розпродажів або під час низького попиту.
4. Оптимізація управління ресурсами
Під час пікових навантажень (наприклад, великих розпродажів) модулюючий
алгоритм:
• Розподіляє серверні ресурси для забезпечення стабільності роботи
критичних функцій, таких як оформлення замовлення.
• Пріоритизує виконання певних задач (наприклад, обробка платежів) над
менш важливими (наприклад, оновлення аналітики).
2.3 Аналіз алгоритмів на прикладі існуючих онлайн платформ типу
«Маркетплейс».
Аналіз алгоритмів на прикладі українських платформ типу
«Маркетплейс» демонструє, як ці алгоритми забезпечують адаптацію до
потреб користувачів, оптимізацію операцій та підвищення
конкурентоспроможності. Кожна платформа застосовує модулюючі
алгоритми відповідно до своєї специфіки, спрямовуючи їх на персоналізацію,
динамічне ціноутворення, логістику та управління ресурсами.
Rozetka
Алгоритм:
• Рекомендаційна система використовує аналіз поведінки користувачів:
історія переглядів, пошукові запити, додані товари до кошика.
• Алгоритм динамічно адаптує результати пошуку, підвищуючи
пріоритетність популярних товарів, акційних пропозицій та релевантних
категорій.
Особливості:
• Рекомендації формуються в реальному часі (наприклад, розділ
"Рекомендовано для вас").
• Актуалізація рейтингу товарів залежно від відгуків користувачів.
Результат:
• Зручність у виборі товарів для користувачів.
• Збільшення продажів завдяки релевантності пропозицій.
OLX
Алгоритм:
• Для забезпечення безпеки OLX використовує алгоритми виявлення
підозрілих оголошень.
• Алгоритм динамічно змінює позицію оголошень у результатах пошуку
залежно від їхньої актуальності, платності просування та популярності.
Особливості:
• Інтеграція системи перевірки платежів через OLX Pay.
• Виділення оголошень з великим охопленням завдяки активації послуг
просування.
Результат:
• Зменшення шахрайства.
• Мотивація користувачів користуватися платними сервісами.
ALLO
Алгоритм:
• Оптимізація ланцюга постачання - алгоритм модулює доступність
товарів на основі поточних складів і замовлень.
• Логістика адаптується залежно від регіонів та терміновості доставки.
Особливості:
• Відображення термінів доставки в картці товару, що оновлюються в
реальному часі.
• Інтеграція з партнерськими службами доставки для динамічного
вибору оптимального маршруту.
Результат:
• Прискорення доставки.
• Мінімізація витрат на логістику.
Kasta
Алгоритм:
• Алгоритми динамічно коригують список акційних пропозицій залежно
від інтересів користувача та популярності товарів.
• Персоналізація контенту для користувачів програми Kasta Black.
Особливості:
• Алгоритм сегментує клієнтів на групи за історією покупок і пропонує
спеціальні знижки для підвищення лояльності.
• Динамічна зміна рекомендацій залежно від сезону (наприклад, зимовий
одяг взимку).
Результат:
• Підвищення ефективності акцій.
• Розвиток програми лояльності.
Epicentr K
Алгоритм:
• Алгоритм управління логістикою оптимізує доставку великих і дрібних
товарів.
• Вдосконалена система пошуку дозволяє модулювати результати за
популярністю, ціною чи акційними пропозиціями.
Особливості:
• Динамічне оновлення даних про наявність товарів у магазинах мережі.
• Пропозиція альтернатив, якщо вибраний товар недоступний.
Результат:
• Задоволення потреб клієнтів у великих покупках (меблі, техніка).
• Зниження витрат завдяки ефективній роботі складів.
2.3.2 Порівняльний аналіз ролей алгоритмів
Платформа Основна роль Результат
алгоритмів
Rozetka Персоналізація, пошук Полегшення вибору
товарів товарів, підвищення
задоволеності
користувачів
OLX Контроль безпеки, Зменшення шахрайства,
динаміка розміщення стимулювання платного
оголошень просування
Allo Оптимізація логістики Прискорення доставки,
та управління запасами ефективне управління
складськими запасами
Kasta Адаптація акцій, Збільшення лояльності
персоналізовані користувачів,
пропозиції підвищення
ефективності
маркетингових
кампаній
Epicentr K Логістика великих Підтримка складних
товарів, адаптивний покупок, оптимізація
пошук роботи магазинів
2.3.3 Дослідження реалізації та практичного застосування
модулюючого алгоритму
Реалізація модулюючого алгоритму в коді залежить від конкретної
задачі. Розгляньмо приклад, коли потрібно динамічно адаптувати
рекомендації товарів для маркетплейсу на основі поведінки користувача
мовою JavaScript:
1. Схематичне зображення інформації, яку сайт отримує від
користувача під час взаємодії:
2. Схематичне зображення популярних товарів представлених на сайті
3. Отримання категорій, які переглянув користувач
4. Схематичне зображення пошуку категорії, яка збігається з інтересами
клієнта. Логіка базується на основі визначення приорітетної для
користувача категорії
Результат: реалізована найпростіша функція, яка отримує інформацю
про пошукові запити користувача і на основі цих даних повертає приорітетні
категорії товарів за певним запитом.
2.4 Формування та аналіз вимог до програмного забезпечення
2.4.1 Первинні і детальні вимоги
ФОРМУВАННЯ ЗАГАЛЬНИХ ВИМОГ ДО ПЗ СКЛАДАЄТЬСЯ З ФОРМУВАННЯ
ПЕРВИННИХ І детальних вимог, які ми перерахуємо нижче. При розробці
маркетплейсу важливо визначити і сформулювати первинні вимоги, які
відображають основні функціональні та нефункціональні вимоги проекту.
Перерахуємо загальні первинні вимоги, які виникають при створенні
маркетплейсу:
1 Реєстрація користувачів: Забезпечення можливості реєстрації для
покупців, продавців та адміністраторів, щоб вони могли отримати доступ до
функціоналу маркетплейсу.
2 Розміщення товарів та послуг: Можливість продавцям додавати
товари або послуги для продажу, включаючи інформацію про назву, опис,
ціну, фотографії, категорії тощо.
3 Пошук та фільтрація: Забезпечення зручного і ефективного пошуку
товарів або послуг за різними критеріями.
4 Кошик та оформлення замовлення: Реалізація функціоналу кошика,
де покупці можуть додавати товари та послуги перед оформленням
замовлення, а також можливість безпечного та зручного оформлення
замовлення.
5 Управління користувачами: Можливість адміністраторам
встановлювати та керувати правами доступу користувачів, включаючи
модерацію контенту, вирішення спорів та управління рейтингами та
відгуками.
6 Рейтинги та відгуки: Забезпечення можливості користувачам
залишати оцінки та коментарі про товари, послуги та продавців, що допомагає
іншим користувачам зробити інформований вибір.
7 Система доставки: Інтеграція з системами доставки для
забезпечення ефективного та надійного доставлення товарів покупцям.
8 Аналітика та звітність: Забезпечення інструментів для аналізу
даних, статистики продажів, звітності про фінансові операції та інших
ключових метрик маркетплейсу.
9 Безпека та захист даних: Забезпечення високого рівня безпеки
маркетплейсу, включаючи захист особистих даних користувачів, захист від
шахрайства та зловживань.
2.4.2 Вимоги замовника і розробника
Вимоги замовника для веб-додатку marketplace можуть включати:
Реєстрація та автентифікація: Замовник потребує , щоб користувачі
могли реєструватися в системі та автентифікуватися перед використанням
додатку. Це дозволяє забезпечити безпеку та контроль доступу до
функціоналу додатку.
Управління товарами та послугами: Замовник має вимогу до можливості
додавання, редагування та видалення товарів, які пропонуються на
маркетплейсі. Це включає введення назви, опису, ціни, категорії товару та
інших відповідних деталей.
Пошук та фільтрація: Замовник може бажати наявності потужних
можливостей пошуку та фільтрації товарів. Це допомагає користувачам
швидко знаходити потрібні їм предмети за певними параметрами, такими як
ціна або категорія, тощо.
Кошик та оплата: Замовник може вимагати реалізації кошика, де
користувачі можуть додавати товари перед оформленням замовлення. Також
може бути потрібна інтеграція з платіжними системами для забезпечення
безпечної оплати.
Адміністративна панель: Замовник може бажати мати можливість
управляти додатоком через адміністративну панель. Це дозволяє
контролювати реєстрацію користувачів, відслідковувати замовлення,
керувати товарами, аналізувати дані про продажі та інше.
Мобільна сумісність: Замовник може вимагати, щоб додаток був
сумісний з мобільними пристроями. Це дозволяє користувачам здійснювати
покупки та взаємодіяти з маркетплейсом з будь-якого місця та в будь-який час.
Вимоги розробника веб-додатку marketplace включають:
Використання сучасних веб-технологій, таких як HTML, CSS, JavaScript
та веб-фреймворку Angular.
Розробка масштабованої архітектури, що забезпечує швидке та
ефективне функціонування системи.
Інтеграція з базами даних для зберігання та управління даними про
товари, замовлення, користувачів тощо.
Забезпечення безпеки даних, включаючи захист від несанкціонованого
доступу та зломів.
Розробка мобільної версії додатку або адаптивного дизайну, що
забезпечує оптимальний вигляд та функціональність на різних пристроях.
2.4.3 Функціональні та нефункціональні вимоги
Детальні вимоги до програмного забезпечення включають:
1. Функціональні вимоги:
− Реєстрація та авторизація користувачів;
− Можливість створення та управління профілями користувачів;
− Додавання, редагування та видалення товарів або послуг
продавцями;
− Пошук, фільтрація та сортування товарів або послуг;
− Кошик для зберігання обраних товарів перед оформленням
замовлення;
− Оформлення замовлення та здійснення платежів.
− Система відстеження стану замовлення та доставки.
− Система сповіщень та повідомлень для користувачів.
− Адміністративні функції для управління користувачами, товарами,
замовленнями, платежами тощо.
2. Нефункціональні вимоги:
− Безпека та захист даних: Забезпечення високого рівня безпеки
передачі та зберігання даних користувачів, використання шифрування, захист
від несанкціонованого доступу.
− Швидкодія та масштабованість: Забезпечення швидкого та
ефективного виконання операцій, можливість масштабування системи зі
зростанням навантаження.
− Висока доступність: Гарантування доступності маркетплейсу для
користувачів без значних перерв у роботі.
− Відповідність правовим вимогам: Дотримання законодавства та
правових вимог, зокрема у сферах захисту даних, споживчих прав, авторських
прав тощо.
− Інтерфейс та дизайн: Розробка зручного та привабливого інтерфейсу
для користувачів, з урахуванням їхніх потреб та звичок.
− Сумісність: Підтримка різних браузерів, пристроїв та операційних
систем.
− Аналітика та звітність: Забезпечення можливості збору та аналізу
даних про активність користувачів, продажі, ефективність маркетплейсу тощо.
2.4.4 Формування вимог за допомогою діаграми прецедентів
На рис. 2.1 представлена діаграма прецедентів веб-додатку marketplace.
Рисунок 2.1 – Діаграма прецедентів
Діаграма прецедентів відображає функціональність системи з точки зору
користувачів, і дозволяє аналізувати взаємодію між користувачами та
системою. В результаті проведення моделювання предметної області,
формуванню словника та представлення вимог до системи, ми сформували
діаграму прецедентів (рис. 2.1) по використанню веб-додатку marketplace,
користувачами системи.
2.5 Проектування логічної структури програмного комплексу
2.5.1 Діаграми класів
Діаграма класів є одним із видів діаграм в рамках мови моделювання
UML Вона використовується для відображення класів, їх взаємодій та
залежностей між ними в об'єктно-орієнтованому програмуванні. Діаграма
класів містить класи, атрибути, методи, асоціації, спадкування та інші
відношення між класами, що дозволяє проектувати та аналізувати архітектуру
програмного забезпечення.
Діаграма класів розробленого веб-додатку marletplace представлена на
рис.2.5. Реалізація виконана на мові програмування Java.
Рисунок 2.5 – Діаграма класів
Дана діаграма (рис. 2.2) описує основні класи, що використовуються в
системі. Клас ProductInfo (товар) описує товари продавців доступні на складі
marketplace. Клас ProductCategory описує категорії товарів, що розміщенні на
marketplace. Клас User описує користувачів системи (покупців та
обслуговуючий персонал платформи). Клас ProductInOrder описує замовлення
товарів. Клас OrderMain описує деталі замовлення. Клас Card описує корзину
для додавання в неї товарів покупцем.
2.5.1 Діаграми пакетів
На рисунку 2.6 представлена діаграма пакетів нашого проекту. Всі
розроблені класи знаходяться у відповідному пакеті, для розмежування
їхнього призначення. Презентаційний рівень (Presentation Layer) містить в собі
реалізовані класи контролерів за допомогою яких реалізоване API системи. В
свою чергу вони зв’язані з пакетом бізнес логіки (Application Logic) системи,
яка в свою чергу зв’язана з пакетом даних (Data).
Рисунок 2.6 – Діаграма пакетів
2.6 Архітектурне проектування
2.6.1 Діаграма компонентів
Діаграма компонентів – це вид діаграми, що використовується в
розробці програмного забезпечення для відображення архітектури системи та
залежність між її компонентами. Діаграма компонентів зображує окремі
компоненти програмної системи, їх інтерфейси та залежності між ними.
На рисунку 2.6 зображена діаграма компонентів нашого веб додатку, що
дозволяє ідентифікувати окремі компоненти системи (такі як акаунт
користувача, товар та замовлення) та їх взаємодію, що допомагає у плануванні,
розробці та тестуванні програмного забезпечення.
Рисунок 2.4 – Діаграма компонентів
2.6.2 Розгортання програмної системи на апаратних засобах.
Діаграма розгортання
Для запуску marketplace спочатку потрібно стартувати backend-частину
а потім лише frontend-частину із клієнтським інтерфейсом.
Backend-частина
На сервері перед тим повинен бути попередньо встановлений
PostgreSQL.
Далі нам потрібно створити базу даних «marketplace» за допомогою
SQL-команди:
create database marketplace;
Та прописати наступні конфігурації (лістинг 2.6) у файлі application.yml.
Лістинг 2.6 – конфігурації бази даних
Для старту самої backend-частини необхідно перейти в директорію
проекту /backend та відкрити командний рядок, послідовно запустивши
наступні команди:
mvn install.
mvn spring-boot:run.
Spring Boot імпортує дані з файлі import.sql до бази даних, автоматично.
Бекенд-сервер по замовчуванню працює на локальному хості (localhost) з
номером порту 8080.
Frontend-частина
На сервері перед тим повинен бути попередньо встановлений Node.js та
npm
Для старту frontend-частини необхідно перейти в директорію проекту
/frontend та відкрити командний рядок, послідовно запустивши наступні
команди:
npm install.
ng serve
Frontend-клієнт по замовчуванню працює на локальному хості (localhost)
з номером порту 4200. URL-адреса серверного API налаштована у файлі
src/environments/environment.ts frontend-проекту, і по замовчуванню має
значення: «localhost:8080/api». На рисунку 2.7 представлена діаграма
розгортання проекту.
Рисунок 2.7 – Діаграма розгортання системи
2.5 Моделювання поведінки системи
2.5.1 Діаграма діяльності
Діаграма діяльності (англ. activity diagram) – це графічний інструмент
моделювання, який використовується для представлення послідовності дій або
операцій у системі або процесі. На рисунку 2.6 представлений загальний
алгоритм використання системи у вигляді діаграми діяльності.
Рисунок 2.8 – Діаграма діяльності
2.5.2 Діаграма послідовності
Діаграма послідовності – це uml діаграма, що відображає послідовність
виконання повідомлень між об'єктами в рамках конкретного сценарію
взаємодії. Вона дозволяє ілюструвати, як об'єкти взаємодіють між собою в
певному порядку та часовому проміжку для досягнення певної мети або
виконання певної функції. На рисунку 2.9 зображена діаграма процесу
замовлення товару покупцем.
Рисунок 2.9 – Діаграма послідовності: замовлення товару
На рис. 2.10 зображена діаграма процесу обробки замовлення
адміністратором marketplace.
Рисунок 2.10 – Діаграма послідовності: оформлення замовлення
2.5.3 Діаграма комунікацій
На рисунку 2.11 зображена діаграма комунікацій обрахунку вартості
замовлення при обрані товару зареєстрованим в системі користувачем.
Рисунок 2.11 – Діаграма комунікацій: оформлення замовлення
2.5.4 Діаграма скінченого автомату
Діаграма скінченого автомата (ДСА) – це графічне представлення
поведінки системи з обмеженою кількістю станів та переходів між ними. У
розробці програмного забезпечення (ПЗ) вона використовується для
моделювання різних сценаріїв та керування програмою. ДСА допомагає
визначити реакцію системи на події, планувати тестування та аналізувати
помилки. Вона забезпечує краще розуміння та управління послідовністю подій
у програмі для покращення її якості та надійності.
На рисунку 2.12 представлена діаграма скінченого автомату розроблена
для веб-додатку marketplace. Дана діаграма демонструє процес користування
веб-додатком. Покупець запускає marketplace, проходить реєстрацію та
авторизується. Після чого переходить до вибору потрібного товару. Обравши
товар, користувач додає його до кошику та розпочинає оформлення
замовлення. Даний цикл може повторюватись безліч разів, з усіма етапами,
або ж випустив деякі.
Рисунок 2.12 – Діаграма скінченого автомату
3 ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
СИСТЕМИ
3.1 Розробка програмного комплексу
3.1.1 Обґрунтування вибору засобів реалізації
Засобами реалізації з самого початку були обрані Java зі Spring
Framework на бекенді та TypeScript з Angular [10] на фронтенді, системою
керування базою даних було обрано PostgreSQL. Загальна схема використаних
технологій та засобів показана на рис.3.1.
Рис. 3.1. Загальна схема використаних для проектування та розробки
технологій та засобів
Разом з цим для проектування та розробки потрібно знати і вміти
використовувати велику кількість супутніх технологій, принципів,
інструментів, як пов’язаних з Java [5], Spring Framework [9, Помилка!
Джерело посилання не знайдено.] та PostgreSQL, так і тих, що знаходяться
на стику їх використання; також
потрібно знати та вміти використовувати різні методи та інструменти
побудови процесу розробки – без цього досягти ефективності розробки
неможливо. Детальна схема використаних технологій та засобів показана на
рис.3.2.
Рис. 3.2. Детальна cхема технологій та засобів використаних для
проектування та розробки системи
Мова програмування Java має значні переваги перед іншими мовами та
середовищами, що робить її придатною практично для будь-якого завдання
програмування.
Мова програмування Java має декілька основних переваг, які зробили її
популярною серед розробників. Перерахуємо деякі з них:
Переносимість: Java є "write once, run anywhere" мовою, що означає, що
програми, написані на Java, можуть працювати на різних платформах без
необхідності відновлення коду. Це досягається завдяки використанню
віртуальної машини Java (JVM), яка виконує байт-код Java на будь-якій
підтримуваній платформі.
Об'єктно-орієнтований підхід: Java підтримує повну об'єктно-
орієнтовану парадигму програмування. Це сприяє модульності, повторному
використанню коду, спадкуванню, поліморфізму та іншим перевагам об'єктно-
орієнтованого програмування.
Багатопотоковість: Java надає вбудовану підтримку для
багатопотокового програмування. Розробники можуть легко створювати та
керувати багатьма паралельними потоками в одній програмі, що дозволяє
ефективно використовувати ресурси та забезпечувати відгук на запити
користувачів.
Велика стандартна бібліотека: Java має велику стандартну бібліотеку,
яка включає багато корисних класів і методів для роботи з різними
завданнями, включаючи роботу з мережами, роботу з базами даних, обробку
рядків, роботу з графічним інтерфейсом тощо. Це дозволяє розробникам
прискорити процес розробки і скоротити час, необхідний для написання
власного коду.
Безпека: Java має вбудовану систему безпеки, яка дозволяє
контролювати доступ до ресурсів і обмежувати дії програми. Вона включає в
себе механізми для управління пам'яттю, обробки винятків і контролю типів,
що допомагає запобігти багатьом типам програмних помилок та забезпечує
більш безпечну роботу програм.
Підтримка спільноти: Java має велику спільноту розробників, яка
активно працює над розширенням мови, вирішенням проблем та наданням
допомоги один одному. Існують безліч ресурсів, форумів, бібліотек і
фреймворків, які розробники можуть використовувати для полегшення
роботи.
Звісно, кожна мова програмування має свої переваги та обмеження, і
вибір мови залежить від конкретних потреб та вимог проекту. Але Java широко
використовується в комерційних проектах завдяки своїм перевагам,
стабільності та надійності. [6a].
Spring Framework є провідним фреймворком для побудови бекенд-
частин веб-застосунків на Java. Він є розгалуженою, з багатьма потрібними
складовими основою для побудови програм від середніх до найбільших та
найскладніших. Можливості Spring Framework вказано на початковій сторінці
Spring (рис. 3.3).
Spring Framework є цінним не тільки як якісний, зрілий продукт – він
також має гнучкий та всебічний набір розширень та бібліотеки сторонніх
виробників, що дозволяють розробникам створювати практично будь-які
програми, які можна уявити. По суті, функції Inversion of Control (IoC) та
Dependency Injection (DI) Spring Framework створюють основу для широкого
набору можливостей та функціональності. Незалежно від того, чи
створюються безпечні, реактивні, хмарні мікросервіси для Інтернету або
складні потоки даних для підприємства, Spring має інструменти, які
допоможуть [5].
Високий рівень безпеки є однією з рис, яка відрізняє його від інших
поширених фреймворків. Spring має перевірений досвід вирішення питань
безпеки швидко та відповідально. Розробники Spring працюють з фахівцями з
безпеки, щоб виправити і протестувати будь-які повідомлення про
вразливості. Сторонні залежності також ретельно контролюються і регулярно
оновлюються, щоб зберегти дані та програми максимально безпечними. Крім
того, є спеціальна частина Spring Framework – це Spring Security, яка полегшує
інтеграцію зі стандартними галузевими схемами безпеки та забезпечує надійні
рішення, які захищені за замовчуванням [9].
Рис. 3.3. Можливості Spring Framework
Клієнтська сторона. Мова програмування TypeScript.
TypeScript — мова програмування, представлена Microsoft восени 2012;
позиціонується як засіб розробки веб-застосунків, що розширює можливості
JavaScript [Помилка! Джерело посилання не знайдено.]. Розробником мови
TypeScript є Андерс Гейлсберг (англ. Anders Hejlsberg), який створив раніше
C#, Turbo Pascal і Delphi.
Код експериментального компілятора, котрий транслює код TypeScript
в представлення JavaScript, поширюється під ліцензією Apache, розробка
ведеться в публічному репозиторії через сервіс CodePlex. Специфікації мови
відкриті і опубліковані в рамках угоди Open Web Foundation Specification
Agreement (OWFa 1.0)[9].
TypeScript є зворотньо сумісним з JavaScript. Фактично, після компіляції
програму на TypeScript можна виконувати в будь-якому сучасному браузері
або використовувати спільно з серверною платформою Node.js.
До переваг TypeScript відносять:
− можливість явного визначення типів (статична типізація);
− підтримка використання повноцінних класів (як в традиційних
об'єктно-орієнтованих мовах);
− підтримка підключення модулів.
Ці нововведення мають на меті підвищити швидкість розробки,
прочитність, рефакторинг і повторне використання коду, здійснювати пошук
помилок на етапі розробки та компіляції, а також швидкодію програм.
Також для реалізації клієнтської сторони додатку використано bootstrap
фреймворк, для побудови адаптивного інтерфейсу користувача, до складу
якого входить HTML5 та CSS3.
HTML (англ. HyperText Markup Language – мова розмітки гіпертексту) –
це декларативна мова, якою пишуться гіпертекстові документи для мережі
Інтернет.
Веб-браузери відображають HTML-документи з веб-сервера або з локальної
пам'яті персонального комп’ютера. HTML описує структуру веб-сторінки
семантично і спочатку включені сигнали для зовнішнього вигляду документа.
Елементи HTML окреслені тегами, написаними з використанням кутових
дужок. Теги HTML є будівельними блоками сторінок HTML (рисунок 3.4). За
допомогою конструкцій HTML зображення, аудіо, відео, інтерактивних форми
і т.п. можуть бути вбудовані у візуалізовану інтернет-сторінку. HTML надає
засоби для створення структурованих документів, позначаючи структурну
семантику тексту, наприклад заголовки, абзаци, списки, посилання, цитати та
інші елементи. Браузери не показують теги HTML, але використовують їх для
інтерпретації вмісту сторінки. HTML може вбудовувати програми, написані
на мові сценаріїв, наприклад JavaScript, що впливає на поведінку та вміст веб-
сторінок. Включення CSS визначає вигляд і компонування вмісту.
Рис. 3.4. Блочна семантична розмітка сторінки (HTML 5)
CSS (англ. Cascading Style Sheets, укр. Каскадні таблиці стилів) – це
спеціальна мова стилю сторінок, що використовується для опису їхнього
зовнішнього вигляду. Самі ж сторінки написані мовами розмітки даних
(HTML). CSS є основною технологією всесвітньої павутини (world wide web),
поряд із HTML та JavaScript. Найчастіше CSS використовують для візуальної
презентації сторінок, написаних HTML та XHTML, але формат CSS може
застосовуватися до інших видів XML-документів. Специфікації CSS були
створені та розвиваються Консорціумом Всесвітньої мережі. CSS має різні
рівні та профілі. Наступний рівень CSS створюється на основі попередніх,
додаючи нову функціональність або розширюючи вже наявні функції. Рівні
позначаються як CSS1, CSS2 та CSS3.
В даному проекті було використано CSS 3 який входить до складу bootstrap
фреймворку.
Середовище розробки
Наша система розроблюється в середовищі програмування IntelliJ IDEA
яка є комерційним інтегрованим середовищем розробки для Java від компанії
JetBrains. Ми використовуємо це середовище з навчальною ліцензією.
IntelliJ IDEA підтримує інструменти для проведення тестування TestNG
і JUnit, системи контролю версій CVS, ми працювали з Git, building-засоби
Maven, Gradle і Ant, мови програмування Java, Kotlin, і Scala. До складу
входить модуль візуального проектування GUI-інтерфейсу Swing UI Designer,
XML-редактор, редактор регулярних виразів, система перевірки коректності
коду, система контролю за виконанням завдань і доповнення для імпорту та
експорту проектів з Eclipse. Доступні засоби інтеграції з системами
відстеження помилок JIRA, Trac, Redmine, Pivotal Tracker, GitHub, YouTrack,
Lighthouse.
Наша версія підтримує додаткові мови програмування які ми
використовували при розробці (наприклад, TypeScript, HTML, CSS, SQL)
підтримкою технологій Java EE, UML-діаграм, підрахунок покриття коду,
можливістю роботи з фреймворками Spring, Hibernate, Play Java Web. Ключові
можливості:
− інтелектуальний редактор Java коду з підсвічуванням синтаксису;
− підтримка Java, Kotlin, і Scala;
− HTML, CSS, JavaScript редактор;
− Повний набір інструментів для фронтенд-розробки;
− Інтеграція з системами управління версіями;
− інструменти роботи з базами даних, SQL редактор.
В якості системи керування базами даних (СКБД) ми обрали PostgreSQL.
PostgreSQL вважається найсучаснішою реляційною системою керування
базами даних у світі з відкритим кодом.
Дійсно, PostgreSQL – це потужна об'єктно-реляційна база даних із
відкритим кодом, яка використовує та розширює мову SQL у поєднанні з
багатьма функціями, які безпечно зберігають та масштабують найскладніші
навантаження даних. Витоки PostgreSQL відносяться до 1986 року в рамках
проекту POSTGRES в Каліфорнійському університеті в Берклі і мають більш
ніж 30 років активного розвитку на основній платформі, мільйони
користувачів у всьому світі.
PostgreSQL заслужив добру репутацію за свою перевірену архітектуру
(рис.3.5), надійність, цілісність даних, надійний набір функцій,
розширюваність та відданість спільноті з відкритим кодом, що стоїть за цим
програмним забезпеченням, щоб послідовно пропонувати ефективні та
інноваційні рішення. PostgreSQL працює на всіх основних операційних
системах, сумісний з ACID з 2001 року і має потужні додатки. PostgreSQL є
основною реляційною базою даних з відкритим кодом для багатьох проектів і
організацій, в тому числі дуже відомих.
До основних переваг PostgreSQL можна віднести:
− високопродуктивні і надійні механізми транзакцій і реплікації;
− спадкування;
− можливість індексування геометричних (зокрема, географічних)
об'єктів і наявність базується на ній розширення PostGIS;
− вбудована підтримка слабоструктурованих даних в форматі JSON з
можливістю їх індексації;
− розширюваність (можливість створювати нові типи даних, типи
індексів, мови програмування, модулі розширення, підключати будь-які
зовнішні джерела даних).
− сумісність з ANSI SQL;
− безкоштовна в більшості випадків;
− хороша підтримка з боку провайдерів послуг хостингу;
− швидка підтримка транзакцій через механізм InnoDB.
Рис. 3.5. Архітектура PostgreSQL
3.1.2 Опис структурної (функціональної) схеми
Архітектура додатку представлено на рисунку 3.6. Модулі нашого
додатку можна поділити на 3 основні функціональні частини:
− view, представлення, для взаємодії користувача з нашим додатком;
− control, контролер, служить для обробки подій які приходять від
взаємодії користувача з представленням;
− model, модель, призначена за збереження, вибірки, запис даних
додатку.
Рис. 3.6. Структура модулів системи
На рисунку 3.7 зображено обробники подій (контролери) проекту та їх
інтерфейси, які обробляють запити користувача.
Рис. 3.7. Контролери проекту
Основні функції, що виконуються контролерами системи:
1) CartController – відповідає за всю взаємодію користувача із кошиком
для замовлення товарів.
2) UserController – забезпечує роботу із профайлами користувача, їх
створення, оновлення та читання;
3) OrderController – містить в собі логіку обробки замовлень клієнтами.
4) ProductController – відповідає за зчитування, створення, редагування
та видалення товару.
5) CategoryController – забезпечує роботу з категоріями товару;
Веб-додаток marketplace розроблений в середовищі розробки Intellij
IDEA. Структура проекту (рисунок 3.8) розділяється на дві основні частини,
перша backend (рисунок 3.8а), друга frontend (рисунок 3.8б).
а) backend б) frontend
Рис. 3.8. Структура проекту
Всі веб-ресурси та необхідні файли розміщені тематичних директоріях
проекту:
1) файли web-сторінок з розширенням *.html
2) файли стилів web-сторінок з розширенням *.css;
3) файли скриптів в директорії з розширенням *.ts.
4) графічні зображення в директорії src/assets;
Рис.3.9. Структура веб-ресурсів
3.1.3 Опис логічної схеми системи
При побудові marketplace використовувались відомі та широко
поширені архітектурні шаблони Model-View-Controller (MVC) та
Representational State Transfer (REST).
Model-View-Controller (MVC) – це архітектурний шаблон, який розділяє
додаток на три основні логічні компоненти: модель, вигляд та контролер. Це
робиться для відокремлення внутрішніх представлень інформації від способів
подання та прийняття інформації від користувача. Традиційно
використовувалась для декстопних додатків, але потім модель стала
популярною з появою веб-додатків. Сьогодні майже всі популярні мови
підтримують цю архітектуру (рис. 3.10).
Рис. 3.10. Схема архітектурного шаблону Model-View-Controller (MVC)
Модель являє собою дані та правила роботи з ними; дані передається з
одного шару в інший. View відповідає за показ даних, наявних у програмі.
Контролер несе відповідальність за прийняття запиту від користувача,
модифікацію моделі та надсилання її до View, який відображається
користувачеві.
Ідея, що стоїть за шаблоном MVC – це чіткий розподіл
відповідальностей між об'єктами домену, що представляє сутність реального
світу та презентаційним рівнем, який відображається на екрані. Об'єкти
домену повинні бути повністю незалежними і також працювати без рівня
View. Це дає можливість, зокрема, мати різний інтерфейс для однієї і тієї ж
бекенд-частини програми [10a].
MVC є одним з базових стовпів, на яких базується Spring Framework.
Програми, що пишуться на основі Spring Framework, майже завжди
використовують підхід MVC.
REpresentational State Transfer (REST) – архітектурний стиль для
розподілених гіпермедіа-систем і вперше був представлений Роєм Філдінгом
у 2000 році у своїй дисертації.
Сутністю REST є 6 керівних обмежень – якщо програма їм повністю
відповідає, то інтерфейс можна назвати RESTful. Дані принципи перераховані
нижче.
Клієнт-сервер архітектура (рис. 3.11) – відокремлюючи питання
побудови користувальницького інтерфейсу від питань зберігання даних,
покращується портативність користувальницького інтерфейсу на кількох
платформах та покращуємо масштабованість, спрощуючи серверні
компоненти.
Рис. 3.11. Архітектура «клієнт-сервер»
Stateless – кожен запит від клієнта до сервера повинен містити всю
інформацію, необхідну для розуміння запиту, і не може скористатися будь-
яким збереженим контекстом на сервері. Тому стан сесії повністю зберігається
на клієнті.
Кешування – обмеження кешу вимагають, щоб дані у відповіді на запит
неявно або явно позначали як кешовані або не кешовані. Якщо відповідь є
кешованою, то кешу клієнта надається право повторно використовувати ці
дані відповіді для наступних, рівнозначних запитів.
Uniform interface – за допомогою застосування принципу загальної
інженерії програмного забезпечення до компонентного інтерфейсу
спрощується загальна архітектура системи та покращується видимість
взаємодій. Щоб отримати єдиний інтерфейс, для керування поведінкою
компонентів потрібно кілька архітектурних обмежень. REST визначається
чотирма обмеженнями інтерфейсу: ідентифікація ресурсів; маніпулювання
ресурсами через представництва; повідомлення з самоописанням; гіпермедіа
як двигун стану програми.
Багаторівнева система – рівневий стиль системи дозволяє архітектурі
складатися з ієрархічних шарів, обмежуючи поведінку компонентів таким
чином, що кожен компонент не може "бачити" за межами прямого шару, з
яким вони взаємодіють.
Код на вимогу (необов’язково) – REST дозволяє розширити
функціональність клієнта, завантаживши та виконавши код у вигляді аплетів
чи сценаріїв. Це спрощує клієнтів, зменшуючи кількість функцій, необхідних
для попередньої реалізації.
Програмне забезпечення marketplace розроблено у вигляді двох окремих
проектів – бекенду, розробленого на основі Java 11 та Spring Boot 2.2
[Помилка! Джерело посилання не знайдено.] і фронтенду, розробленого на
основі TypeScript та Angular Framework 7. Тобто це сучасний підхід, що
відповідає REST.
3.1.4 Розробка бази даних
Спроектована база даних складається з 6 таблиць 4 з яких логічно
пов’язані між собою (рисунок 3.12). Таблиці призначенні для збереження
даних про товари, клієнтів, їх замовлення, продажі, доставку та оплату.
Детально опишемо призначення і структуру таблиць.
Рис. 3.12. Модель бази даних
Таблиця product_info (товар) містить в собі інформацію про товари
продавців доступні на складі marketplace. Структура таблиці бази даних
наведена в таблиці 3.1
Таблиця 3.1
Реляційна модель структур товарів
Таблиця category призначена для зберігання даних про категорії товарів, які
розміщенні на marketplace. Структура наведена в таблиці 3.2
Таблиця 3.2
Реляційна модель структур категорій товарів
Таблиця users призначена для зберігання даних про клієнтів та
обслуговуючого персоналу платформи. Структура таблиці наведена в таблиці
3.3.
Таблиця 3.3
Реляційна модель структур користувачів
Таблиця product_in_order призначена для зберігання даних про замовлення
товарів, її структура наведена в таблиці 3.4.
Таблиця 3.4
Реляційна модель структур замовлення
Таблиця order_main призначена для зберігання даних про деталі замовлення, її
структура наведена в таблиці 3.5.
Таблиця 3.5
Таблиця cart призначена для зберігання даних про кошик клієнта.
3.1.5 Розробка інтерфейсу користувача
На рисунку 3.13 відображається інтерфейс головної сторінки
marketplace. У верху розміщене головне меню із логотипом та категоріями
товарів доступних для покупки а також пункти меню кошик, замовлення,
користувач та вихід. Одразу під меню знаходиться самі товари з назвою,
описом та кнопкою «обрати».
Рис. 3.13. Головне вікно marketplace
3.1.6 Опис розробки програмних компонентів
Головний клас запуску додатку Backend представлено нижче.
Даний клас імпортує компонент Bean що використовується для шифрування
паролів користувачів для забезпечення захисту додатку:
А також використання компоненту WebMvcConfigurer позначеного анотацією
Bean для конфігурації веб-додатку.
Опишемо основний програмний компонент, по роботі з корзиною:
Контролер обробляє всі запити користувача які розпочинаються з шляху
«/cart». Клас використовує залежності cartService з бізнес логікою роботи
корзини, userService – бізнес логіка користувачів, productService – бізнес логіка
роботи з товарами та productInOrderService – клас з бізнес логікою по роботі з
замовленням товарів.
Для отримання вмісту корзини користувача, слугує програмний
компонент, який приймає HTTP GET запит авторизованого користувача за
шляхом «/cart»:
Для додавання нового товару в корзину, слугує HTTP POST запит на
наступний програмний компонент:
Підтвердження замовлення, відбувається за допомогою відправки HTTP POST
запит за адресою «/checkout».
Компонент фронтенду на підтвердження замовлення в корзині, виглядає
наступним чином:
3.2 Розробка модулюючого алгоритму
Реалізація сценарію, коли користувач обирає категорію пошуку, а
система надає рекомендації на основі модулюючого алгоритму, потребує
додаткової логіки. В цьому випадку враховуються не лише особисті
вподобання користувача, але й вибір конкретної категорії, щоб рекомендації
були релевантні.
Користувачі зі схожими вподобаннями мають ймовірність цікавитися
схожими товарами. Тож кожен користувач отримує рекомендації також на
основі найчастіших виборів інших.
Опишемо основну логіку сервісу рекомендацій
Опишемо сервіс, який відповідає за підбір рекомендацій на основі тих,
які користувач високо оцінив або придбав
Опишемо сервіс, котрий надає персоналізовані пропозиції, ґрунтуючись на
взаємодії користувачів з продуктами або контентом
3.3 Тестування програмної системи
Після того як користувач зробив свій вибір йому потрібно додати
обраний товар у корзину а для оформлення замовлення необхідно пройти
авторизацію. В разі якщо користувач вперше відвідав сайт йому потрібно
пройти реєстрацію та авторизуватися. Після успішної авторизації користувач
має змогу підтвердити своє замовлення. Адміністратор marketplace має змогу
переглянути замовлення, підтвердити його чи відмінити. Також адміністратор
має змогу додавати, редагувати та видаляти інформацію про товари та їх
категорії.
3.3.1 Модульне тестування
Модульне тестування marketplace виконується для перевірки
правильності роботи окремих модулів або компонентів системи. Основна мета
модульного тестування полягає в тому, щоб впевнитися, що кожен модуль
працює коректно і виконує свої функції згідно з вимогами.
Модульне тестування допомагає забезпечити високу якість окремих
компонентів системи та зменшити ризик виявлення помилок на пізніших
етапах розробки або в експлуатації.
Для перевірки модуля реєстрації, натиснувши на відповідну кнопку
реєстрація. Після чого обов’язково необхідно заповнити всі поля відповідною
інформацією та натиснути кнопку «зареєструватися» (рисунок 3.14).
Рис. 3.14. Реєстрація нового користувача
В разі успішної реєстрації користувача перенаправляє на сторінку
авторизації системи на якій відображається поле логіну (електронної пошти)
та паролю.
3.3.2 Інтеграційне тестування
Інтеграційне тестування marketplace виконується для перевірки
взаємодії між різними модулями або компонентами системи. Основна мета
інтеграційного тестування полягає в тому, щоб впевнитися, що різні модулі
працюють разом згідно з очікуваннями та вимогами.
Інтеграційне тестування marketplace допомагає виявляти проблеми,
пов'язані з взаємодією між компонентами системи та забезпечує їх сумісність
та правильну роботу.
Для перевірки коректності взаємодії модуля реєстрації та авторизації
необхідно на сторінці входу в додаток ввести облікові дані щойно
зареєстрованого в системі користувача та натиснути на копку «увійти» (рис.
3.15).
Рис. 3.15. Авторизація користувача
В разі успішної взаємодії даних модулів користувач авторизується в
системі та йому відобразиться сторінка обрання товару з можливість
оформлення його замовлення.
3.3.3 Системне тестування
Системне тестування marketplace включає перевірку функціональності
та продуктивності системи в цілому, зокрема взаємодії різних компонентів та
модулів, а також перевірку відповідності вимогам замовника.
Серед основних аспектів системного тестування marketplace є перевірка
правильності реалізації основних функціональних можливостей, таких як
додавання чи редагування товарів, замовлення, оплата,, керування
користувачами тощо.
Для проведення системного тестування, виконаємо перевірку функції
редагування товару адміністратором системи. Для цього нам потрібно увійти
у систему з відповідними правами адміністратора (рисунок 3.16).
Рис. 3.16. Вікно авторизації менеджера магазину
Натиснувши на кнопку з емблемою магазину адміністратор переходить
до списку товарів які доступні для перегляду клієнтам (рисунок 3.17).
Рис. 3.17. Вигляд списку товарів для менеджера
Крім перегляду детальної інформації, у адміністратора є права
редагування інформації про товар. Після натиснення кнопки «редагування»
з’являється вікно редагування де можна виправити необхідну інформацію
(рисунок 3.18).
Рис. 3.18. Редагування інформації менеджером магазину
3.3.4 Приймальне тестування
Проведемо приймальне тестування, шляхом перевірки замовлення
товару покупцем. Обравши необхідний товар і натиснувши на однойменну
кнопку «обрати», клієнту відобразиться сторінка із детальним описом товару
та можливістю вказати кількість товару для покупки (рисунок 3.19).
Рис. 3.19. Сторінка попереднього перегляду
Натискаємо кнопку «Додати до кошика», після чого відобразиться
сторінка із вмістом кошика, де ми маємо змогу встановити кількість та
підтвердити замовлення чи взагалі відмінити, видаливши товар із кошика.
Перевіримо функцію оформлення замовлення, натиснувши на кнопку
«Підтвердити» (рис. 3.20).
Рис. 3.20. Вікно вмісту кошика
Для підтвердження замовлення необхідно бути авторизованим на сайті.
Після успішного підтвердження замовлення, буде відображений порожній
кошик (рисунок 3.21).
Рис. 3.21. Вікно порожнього кошика
Для того щоб переглянути історію своїх замовлень у правій верхній
частині меню натиснемо кнопку «Замовлення» (рисунок 3.22).
Рис. 3.22. Вікно замовлення
ВИСНОВКИ
Після аналізу аналогів на ринку програмного забезпечення було
виявлено їхні переваги та недоліки і на основі отриманої при аналізі існуючих
систем інформації розроблено вимоги до web-додатку marketplace.
Зібравши необхідні вимоги, було розроблено архітектуру програмної
системи, дизайн та здійснено програмування функціональних модулів
системи. Після збірки готова система була завантажена на локальний сервер
та протестована на відповідність поставленим вимогам.
Дана система володіє перевагами в порівнянні з наведеними аналогами
маючи мінімалістичний дизайн, що дає змогу збільшити швидкість
завантаження та можливість швидко знайти потрібну інформацію не
відволікаючись на рекламу. До недоліків можна віднести відсутність двох
етапної авторизації (з прив’язкою телефону), яка збільшує рівень безпеки.
Отже, в ході виконання кваліфікаційної роботи магістра було
продемонстровано практичні навички створення та розробки веб-додатку
marketplace. Завдяки використанню сучасних технології, вдалося оптимізувати
та покращити процес розробки програмного забезпечення в даній галузі. Веб-
додаток marketplace готовий для використання, є достатньо гнучким для
подальшого супроводу та удосконалення.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Іванина Р. Маркетплейси - що це таке простими словами [Електронний
ресурс] / Р. Іванина, А. Синявський. – 2023. – Режим доступу до ресурсу:
https://elit-web.ua/ua/blog/chto-takoe-marketplejsy
2. Маркетплейс ROZETKA. [Електронний ресурс]. – Режим доступу:
https://rozetka.com.ua/ua/
3. Маркетплейс Prom. [Електронний ресурс]. – Режим доступу:
https://prom.ua/
4. Маркетплейс Епіцентр. [Електронний ресурс]. – Режим доступу:
https://epicentrk.ua/
5. Лонг Д. Java в хмарі. Spring Boot, Spring Cloud, Cloud Foundry / Лонг Д.,
Бастані К.., 2019. – 624 с.
6. Гутьєррес Феліпе. Spring Boot 2: найкращі практики для професіоналів.
/ Ф. Гутьєррес, 2020. – 464 с. – (Бібліотека програміста).
7. Докука О. Практика реактивного програмування у Spring 5 / О. Докука,
І. Лозінський., 2019. – 508 с.
8. Старовойтова Т. Ф. Електронний бізнес та комерція / Т. Ф. Старовойтова.
– К.: ТетраСістемс, 2009. – 144 с.
9. Уоллс К. Spring в дії / Крейг Уоллс., 2022. – 544 с. – (6-е вид.).
10. Яків Файн, Антон Моїсеєв. Angular та TypeScript. Сайтобудування для
професіоналів. / Файн Я., Моїсеєв А.., 2018. – 464 с.
11. Вадим Станкевич. Знайомимся з Spring Framework [Електронний
ресурс]. – Режим доступу: http://www.kv.by/index2009291108.htm
12. Керівництво по Hibernate [Електронний ресурс]. – Режим доступу:
http://www.tutorialspoint.com/hibernate/
13. M. Guilbert, L. Joly, and P.-B. Wieber, “Optimization of complex robot
applications under real physical limitations,” The International Journal of
Robotics Research, vol. 27, no. 5, pp. 629–644, 2008.
14. S. Lengagne, J. Vaillant, E. Yoshida, and A. Kheddar, “Generation of Whole-
body Optimal Dynamic Multi-Contact Motions,” International Journal of
Robotics Research, vol. 32, no. 9-10, pp. 1104–1119, Apr. 2013.
15. B. Chretien, A. Escande, and A. Kheddar, “Continuously satisfying ´
constraints with contact forces in trajectory optimization for humanoid
robots,” in IEEE/RSJ International Conference on Intelligent Robots and
Systems, 2015.
16. S. Lengagne, N. Ramdani, and P. Fraisse, “Guaranteed computation of
constraints for safe path planning,” 2007 7th IEEE-RAS International
Conference on Humanoid Robots, 2007.
17. G. Kozikowski and B. Kubica, “Interval Arithmetic and Automatic
Differentiation on GPU Using OpenCL,” in Applied Parallel and Scientific
Computing, ser. Lecture Notes in Computer Science, P. Manninen and P.
Oster, Eds. Springer Berlin Heidelberg, 2013, ¨ vol. 7782, pp. 489–503
18. Сурмин Ю.П. Теория систем и системный анализ: Учеб. пособие. – К.:
МАУП, 2016. – 368 с.
19. E. Smith, J. Gondzio, and J. Hall, “GPU Acceleration of the MatrixFree
Interior Point Method,” in Parallel Processing and Applied Mathematics.
Springer, 2012, pp. 681–689.
20. R. Featherstone, “A divide-and-conquer articulated-body algorithm for
parallel O(log(n)) calculation of rigid-body dynamics. part 1: Basic
algorithm,” The International Journal of Robotics Research, vol. 18, no. 9, pp.
867–875, Sep. 1999
21. J. Pan and D. Manocha, “GPU-based parallel collision detection for fast
motion planning,” The International Journal of Robotics Research, vol. 31,
no. 2, pp. 187–200, 2012.