Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/9099| Title: | Web-додаток marketplace |
| Authors: | Олексюк, Вадим Володимирович Педченко, Любомир Романович |
| Keywords: | marketplace;веб-додаток;електронна комерція;торгівля;клієнт-сервер |
| Issue Date: | 2023 |
| Abstract: | Педченко Любомир Романович Web-додаток marketplace 121 – Інженерія програмного забезпечення Черкаський державний технологічний університет, Черкаси, 2023 Кваліфікаційна робота присвячена розробці веб-додатку типу «Marketplace», який надає платформу для торгівлі товарами між продавцями та покупцями. Додаток забезпечує зручне та ефективне середовище для користувачів, де вони можуть створювати облікові записи, переглядати, шукати та купувати товари. У роботі проведений аналіз ринку існуючих веб-додатків Marketplace, виявлені основні вимоги до функціональності та інтерфейсу. Застосовано сучасні технології розробки веб-додатків, зокрема використання Java, Spring Framework та Angular. Додаток реалізовано з використанням архітектурного підходу клієнт-сервер, де клієнтська частина взаємодіє з сервером через RESTful API. Забезпечено можливість реєстрації та авторизації користувачів, додавання товарів до кошика, обробка замовлень, а також функціонал адміністратора для керування товарами. Для забезпечення безпеки веб-додатку використані механізми шифрування паролів, валідація даних та обмеження доступу до певних функцій. Також реалізовано поділ товарів по категоріях, що полегшує користувачам знаходження потрібних продуктів. Результатом цієї кваліфікаційної роботи є розроблений та протестований веб-додаток Marketplace, який забезпечує зручну та надійну платформу для торгівлі товарами. Робота демонструє практичні навички у сфері інженерії програмного забезпечення, зокрема розробки веб-додатків, використання сучасних технологій та дотримання принципів безпеки та ефективності. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/9099 |
| Appears in Collections: | 121 Інженерія програмного забезпечення (Інженерія програмного забезпечення) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| Педченко Любомир.pdf Restricted Access | 3.49 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет інформаційних технологій і систем
Кафедра програмного забезпечення автоматизованих систем
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи
«бакалавра»
освітній рівень
на тему: Web-додаток marketplace
Виконав: студент 4 курсу, групи ПЗ-1904
Спеціальності
121 «Інженерія програмного забезпечення»
(шифр і назва напряму підготовки)
Студент Педченко Л.Р.
(прізвище та ініціали)
Керівник Олексюк В.В.
(прізвище та ініціали)
Рецензент
(прізвище та ініціали)
Черкаси 2023
АНОТАЦІЯ
Педченко Любомир Романович
Web-додаток marketplace
121 – Інженерія програмного забезпечення
Черкаський державний технологічний університет, Черкаси, 2023
Кваліфікаційна робота присвячена розробці веб-додатку типу
«Marketplace», який надає платформу для торгівлі товарами між продавцями
та покупцями. Додаток забезпечує зручне та ефективне середовище для
користувачів, де вони можуть створювати облікові записи, переглядати,
шукати та купувати товари.
У роботі проведений аналіз ринку існуючих веб-додатків Marketplace,
виявлені основні вимоги до функціональності та інтерфейсу. Застосовано
сучасні технології розробки веб-додатків, зокрема використання Java, Spring
Framework та Angular.
Додаток реалізовано з використанням архітектурного підходу клієнт-
сервер, де клієнтська частина взаємодіє з сервером через RESTful API.
Забезпечено можливість реєстрації та авторизації користувачів, додавання
товарів до кошика, обробка замовлень, а також функціонал адміністратора
для керування товарами.
Для забезпечення безпеки веб-додатку використані механізми
шифрування паролів, валідація даних та обмеження доступу до певних
функцій. Також реалізовано поділ товарів по категоріях, що полегшує
користувачам знаходження потрібних продуктів.
Результатом цієї кваліфікаційної роботи є розроблений та
протестований веб-додаток Marketplace, який забезпечує зручну та надійну
платформу для торгівлі товарами. Робота демонструє практичні навички у
сфері інженерії програмного забезпечення, зокрема розробки веб-додатків,
використання сучасних технологій та дотримання принципів безпеки та
ефективності.
Ключові слова: marketplace, веб-додаток, електронна комерція,
торгівля, клієнт-сервер.
ANNOTATION
Pedchenko Lubomyr
Marketplace web application
121 – Software engineering
Cherkasy State Technological University, Cherkasy, 2023
The qualification work is devoted to the development of a "Marketplace"
type web application, which provides a platform for trading goods between sellers
and buyers. The app provides a convenient and efficient environment for users to
create accounts, browse, search and purchase goods.
The paper analyzed the market of existing Marketplace web applications,
identified the main requirements for functionality and interface. Modern web
application development technologies are used, including the use of Java, Spring
Framework, and Angular.
The application is implemented using a client-server architectural approach,
where the client part interacts with the server through a RESTful API. The ability
to register and authorize users, add goods to the cart, process orders, as well as the
functionality of the administrator to manage goods is provided.
To ensure the security of the web application, mechanisms for encrypting
passwords, validating data and restricting access to certain functions are used. The
division of goods by categories has also been implemented, which makes it easier
for users to find the goods they need.
The result of this qualification work is a developed and tested Marketplace
web application that provides a convenient and reliable platform for trading goods.
The work demonstrates practical skills in the field of software engineering,
including the development of web applications, the use of modern technologies
and adherence to the principles of security and efficiency.
Keywords: marketplace, web application, e-commerce, trade, client-server.
ЗМІСТ
СПИСОК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ .................................. 6
ВСТУП .................................................................................................................. 7
1 ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ ПОСТАВЛЕНИХ
ЗАВДАНЬ .............................................................................................................. 9
1.1 Опис предметної області .......................................................................... 9
1.2 Огляд існуючих аналогів ........................................................................ 14
1.3 Актуальні проблеми, що виникають в процесі розробки .................... 18
1.4 Методи та засоби, які вже використовуються для розробки .............. 19
1.5 Конкретизація завдань роботи ............................................................... 20
2 ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ СИСТЕМИ ........ 23
2.1 Модель предметної області .................................................................... 23
2.1.1 Словник предметної області ....................................................... 23
2.1.2 Елементи моделювання предметної області .............................. 25
2.1.3 Робоча область моделювання ...................................................... 26
2.2 Формування та аналіз вимог до програмного забезпечення ............... 27
2.2.1 Первинні вимоги .......................................................................... 27
2.2.2 Функціональні та нефункціональні вимоги ............................... 28
2.2.3 Формування вимог за допомогою діаграми прецедентів ......... 29
2.3 Проектування логічної структури програмного комплексу ............... 30
2.3.1 Діаграми класів ............................................................................. 30
2.3.1 Діаграми пакетів ........................................................................... 31
ЧДТУ.231919.005 ПЗ
Зм Арк № докум. Підп. Дата
Розроб. Педченко Л. W EB-ДОДАТОК Лит. Лист Листів
Пров. Олексюк В.В. MARKETPLACE 3 97
ФІТІС,
Н.контр. Півень О.Б. група ПЗ-1904
Затв . Голуб С.В.
2.4 Архітектурне проектування ................................................................... 31
2.4.1 Розгортання програмної системи ................................................ 31
2.4 Моделювання поведінки системи .......................................................... 33
3 КОНСТРУЮВАННЯ ПРОГРАМНОЇ СИСТЕМИ ....................................... 36
3.1 Обґрунтування вибору засобів реалізації ............................................. 36
3.2 Опис структурної (функціональної) схеми ........................................... 44
3.3 Опис логічної схеми системи ................................................................. 47
3.4 Розробка бази даних ................................................................................ 50
3.3 Серверне програмне забезпечення та системні вимоги ...................... 52
3.5 Розробка інтерфейсу користувача ......................................................... 54
3.6 Тестування програмної системи ............................................................ 56
3.6.1 Модульне тестування ................................................................... 56
3.6.2 Інтеграційне тестування .............................................................. 57
3.6.3 Приймальне тестування ............................................................... 57
ВИСНОВКИ ........................................................................................................ 60
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ .......................................................... 61
Додаток А. Специфікація .................................................................................. 63
Додаток Б. Лістинг програми ............................................................................ 64
Додаток В. Інструкція користувачеві ............................................................... 78
Додаток Г. Графічні матеріали ......................................................................... 88
Лист
ЧДТУ.231919.005 ПЗ
Зм. Лист № документа
Підпис Дата 4
ЧДТУ.231919.005 ПЗ
СПИСОК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ
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
БД – База даних
ОС – Операційна система
ПЗ – Програмне забезпечення
ПК – Персональний комп’ютер
СКБД – Система керування базами даних
6
ЧДТУ.231919.005 ПЗ
ВСТУП
Актуальність теми. Інтернет комерція – це вид діяльності в мережі
Інтернет, заснований на отриманні прибутку при здійсненні купівлі-продажу
продукції або послуг, в процесі якого певний цикл фінансової або комерційної
транзакції здійснюється за допомогою Інтернет технологій [1].
Маркетплейс є однією з форм електронної комерції, що відноситься до типу
бізнес-до-споживача (B2C). Процес купівлі-продажу товарів в мережі Інтернет, є
багатоетапним. Тому для збільшення прибутку та товарообігу необхідна його
автоматизація, що дозволить зробити процес купівлі та продажу більш зручним та
ефективним.
Мета і завдання розробки. Метою бакалаврської роботи являється
розробка web додатку marketplace для продажу товарів. Завдання цієї системи
полягає в спрощенні процесу розміщення, продажу та покупки товару на всіх
етапах, надаючи доступ до неї через єдиний веб-ресурс.
Об'єкт розробки. Процеси електронної комерції в мережі Інтернет.
Методи проектування та конструювання.
У роботі розглядалися основні етапи розробки веб-додатку, такі як
проектування, реалізація, тестування та впровадження. В процесі розробки були
використані сучасні технології, такі як TypeScript, Angular, Java, SpringBoot,
PostgreSQL та інші.
Опис отриманих результатів. У дипломній роботі продемонстровано
розробку веб-додатка типу marketplace, який дозволяє користувачам здійснювати
купівлю та продаж різноманітних товарів. Даний проект був створений з метою
дослідження і розробки програмного забезпечення для сфери електронної
комерції, з урахуванням сучасних технологій та методик розробки.
Практичне значення отриманих результатів. У ході дослідження було
проведено порівняльний аналіз існуючих веб-додатків marketplace, що дозволило
побачити переваги та недоліки існуючих рішень та врахувати їх при розробці
власного додатку. Основними функціональними можливостями додатка є:
7
ЧДТУ.231919.005 ПЗ
реєстрація та авторизація користувачів, додавання та перегляд інформації про
товар, здійснення покупки та продажу товарів.
Отримані результати дозволили розробити зручний, ефективний та
багатофункціональний веб-додаток, який може бути використаний як основа для
подальших розробок в даній області.
8
ЧДТУ.231919.005 ПЗ
1 ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ ПОСТАВЛЕНИХ
ЗАВДАНЬ
1.1 Опис предметної області
Під поняттям marketplace розуміють електронні майданчики для торгівлі
товарами чи послугами. Marketplace – являється свого роду посередником між
продавцем та клієнтом. Такі платформи можна порівняти з гіпермаркетами. На
одному сервісі може знаходиться багато продавців, а покупці можуть вибирати
товари, порівнювати та купувати їх в різних магазинах, не залишаючи меж
майданчика.
Основною метою marketplace є забезпечення взаємодії між покупцями та
постачальниками (рис. 1). Як правило вони не формують замовлення і не
займаються організацією доставки, а лише приймають заявки і передають їх
продавцю. Ще однією задачею маркетплейса є надання трафіку для
постачальників, відповідають за аналітику та зручність використання,
забезпечують підтримку у маркетинговій галузі. Серед головних завдань таких
сервісів можна відзначити допомогу у пошуку товарів та збільшення обсягів
продажу [1].
Рисунок 1.1 – Схема взаємодії між покупцями та постачальниками
Принципи роботи marketplace
9
ЧДТУ.231919.005 ПЗ
Серед існуючих на ринку сервісів можна знайти певні нюансами та
особливості. Але серед загального числа можна виділити основні принципи
роботи таких площадок:
1 авторизація продавців;
2 реєстрація товарів (додавання фото, детальні описи);
3 транспортування товару на складські комплекси;
4 пошук необхідної продукцію клієнтами;
5 оформлення замовлення;
6 відправка товару клієнтам.
Наводячи принципи роботи, варто відзначаючи принцип оплати послуг
платформи. При замовленні товару через дану платформу, клієнт переказує кошти
на її рахунок. Майданчик отримує комісію із суми купівлі за свої послуги
посередника. Решта грошей переказується на карту або рахунок продавця.
Переваги та недоліки платформи marketplace
До переваг даних платформ можна віднести:
1 Швидкий старт власного бізнесу. На багатьох платформах можна
обійтися навіть без сайту магазину. Щоб розпочати бізнес, необхідно бути
зареєстрованим у державних органах як Товариство з обмеженою
відповідальністю (ТОВ) чи індивідуальний підприємець (ІП), пройти реєстрацію
на платформі, закупити товар та розпочати продаж.
2 Мінімізація витрат. Можна заощадити на розробці та підтримці
вебсайту, запуску контекстної реклами, послугах програмістів, SEO та інших
фахівців. Просування товарів на маркетплейс відбувається за рахунок інших
інструментів, таких як – зниження ціни.
3 Організація процесу продажів, що називається під ключ. Від продавців
потрібно лише завезти продукцію до складу (якщо є свій, то робити це
необов'язково), створити картки. Відповідальність за саме зберігання та
організацію доставки marketplace бере на себе.
4 Такого типу платформи, стабільно займають місце в топі видачі.
10
ЧДТУ.231919.005 ПЗ
5 Широкі можливості для просування своїх клієнтів. Завдяки цим сервісам
інтернет-магазини набувають популярності, отримують своє коло покупців, а
бренди починають впізнавати.
6 Можливість виходу на закордоні ринки. Зробити це можна через такі
популярні міжнародні маркетплейси, як Amazon, AliExpress та ін.
7 Наявність аналітики з продукції. Статистика відображається в
особистому кабінеті.
Не зважаючи на ряд вагомих переваг, маркетплейси мають і свої недоліки:
1 Висока конкуренція. У топі платформи традиційно демонструються
товари з найнижчими цінами. Щоб уникнути падіння позицій продукту, продавцю
потрібно знижувати вартість, що невигідно.
2 Аналогічна ситуація з рекламними акціями. Нерідко компанії, що
реалізують продукцію, скаржаться, що їхні товари не піднімаються у видачі без
купівлі реклами та участі у спеціальних пропозиціях.
3 Необхідно детально вивчати вимоги платформ. В іншому випадку, при
невиконанні визначених вимог аккаунт продавця буде заблоковано.
Вивчивши плюси та мінуси маркетплейсів, варто розібратися й у тому, чим
вони відрізняються від інших торгових платформ.
Відмінність маркетплейсу від Інтернет магазину
Інтернет-магазин та маркетплейс – це два різних типи електронної комерції,
хоча вони мають деякі спільні риси. Основні відмінності між ними полягають у
моделі бізнесу, взаємодії з покупцями та продавцями, а також в асортименті
товарів.
Основна відмінність між інтернет-магазином та маркетплейсом полягає у
тому, що інтернет-магазин – це один продавець, який продає свій власний товар
або послуги. Таким чином, покупці можуть здійснювати покупки тільки від
одного продавця. У магазині продавець зазвичай відповідає за всі етапи продажу,
від розміщення товарів на сайті до доставки і оплати.
Маркетплейс, з іншого боку, забезпечує взаємодію кількох продавців та
11
ЧДТУ.231919.005 ПЗ
покупців на одній платформі. На маркетплейсі можуть продавати товари як
компанії, так і окремі приватні особи. В той же час, маркетплейс не має власного
товару, а лише надає платформу для здійснення торгівлі між покупцями та
продавцями. Основний вид прибутку маркетплейсу це комісія з продажу товарів.
Щодо асортименту товарів, то в інтернет-магазинах зазвичай продаються
власні товари продавця або товари від виробників, з якими продавець укладає
угоди. У маркетплейсах же можна знайти великий асортимент товарів від різних
продавців, що робить вибір для покупців більш різноманітним.
Отже, основна відмінність між інтернет-магазином та маркетплейсом
полягає в моделі бізнесу. За видом бізнес-моделей маркетплейсів,
взаємовідносини з клієнтами можна класифікувати наступним чином:
- B2B (англ. business-to-business) бізнес для бізнесу;
- В2С (англ. business-to-customer) бізнес для споживача;
- C2C (англ. customer -to-customer) споживач для споживача.
Форма «бізнес для бізнесу» передбачає взаємодію з оптовим продавцем.
Сфера діяльності орієнтована на отримання прибутку від надання послуг чи
продажу товарів іншому бізнесу. До маркетплейсів даного типу належать ті, що
займаються обслуговуванням оптових покупок;
Форма «бізнес для споживача» передбачає продажі розраховані на окремих
покупців. Цей вид бізнес-моделі є найбільш поширеним серед маркетплейсів.
Форма «споживач для споживача» передбачає взаємодію між приватними
особами, причому як за гроші, так і за бартером. Подібний принцип реалізований
на таких платформах як eBay, Ozon та ін.
Процес створення і розробки marketplace включає в себе:
- затвердження первинного технічного завдання на розробку веб-додатку;
- аналіз сфери застосування;
- веб-дизайн;
- розробка архітектури програмного забезпечення;
- вибір методу проектування та програмних засобів реалізації ПЗ;
12
ЧДТУ.231919.005 ПЗ
- розробка структури даних для зберігання інформації;
- розробка алгоритмів розв'язання задач;
- тестування системи;
- розгортання marketplace в мережі Інтернет;
- розробка інструкції програміста;
- розробка інструкції користувача;
Отже, основна мета будь-якого комерційного сайту полягає в
обслуговуванні користувачів способом, який принесе йому вигоду. Мета
поширення інформації шляхом такого сайту полягає в тому, щоб спробувати
підштовхнути людей придбати продукцію або послуги компанії. Кінцевий
результат використання marketplace полягає в заохоченні інтересу до здійснення
ділової операції.
13
ЧДТУ.231919.005 ПЗ
1.2 Огляд існуючих аналогів
Marketplace «Rozetka»
Інтернет-магазин ROZETKA стартував в 2005 році, а в 2016 році він
перейшов у формат маркетплейса. В день сайт відвідують близько 3 мільйонів
користувачів, що робить ROZETKA популярною та ефективною торговою
площадкою №1 в Україні.
На сьогоднішній день Rozetka.ua позиціонує себе як найбільш популярним
магазином електроніки і побутової техніки в Україні. Такого статусу вдалося
досягти завдяки максимально широкому асортименту та хорошому сервісу. На
сайті доступні відеоогляди новинок, статті та новини. На рисунку 1.1
представлено зовнішній вигляд Інтернет магазину [3].
Рисунок 1.1 – Зовнішній вигляд магазину Rozetka.ua
Зверху розташоване стрічка заголовку магазину із головним меню,
логотипом та стрічкою пошуку. По дизайну стрічка заголовку має гарний
контраст із тлом основної області. Зліва зручно розташована панель навігації, з
перерахуванням категорій товарів, що доступні для покупки користувачу. До
недоліків можна віднести повільне завантаження сторінки та спливаючу рекламу.
14
ЧДТУ.231919.005 ПЗ
Marketplace «Prom»
Prom існує з 2008 року і за цей час зарекомендував себе як зручний онлайн-
майданчик і для покупців, і для продавців. На маркетплейсі представлено понад
100 мільйонів товарів та 60 тисяч підприємців, тут можна знайти як роздрібні, так
і оптові пропозиції, а на день сайт відвідує понад 2,6 млн користувачів.
Для початку співробітництва потрібно пройти процедуру реєстрації,
вибрати тариф у кабінеті та завантажити товари відповідно до правил
маркетплейсу, вказати способи оплати та доставки. Потім відповідно до умов
вибраного тарифу можна опрацювати дизайн вашого магазину, налаштувати
аналітику та рекламу, щоб підвищити ефективність продажу. На рисунку 1.2
представлено зовнішній вигляд Інтернет магазину [4].
Рисунок 1.2 – Зовнішній вигляд marketplace prom.ua
До переваг можна віднести, те що Prom.ua дозволяє створити власний сайт
на базі маркетплейсу за допомогою конструктора, а також має інтеграцію з
основними постачальниками логістичних та фінансових послуг. Крім цього,
маркетплейс має три синхронізовані канали продажу: каталог маркетплейсу, сайт
на платформі Prom.ua та мобільний додаток «Prom покупки».
15
ЧДТУ.231919.005 ПЗ
Подібно попередньому Інтернет магазину зверху розташоване головне
меню магазину із його логотипом, стрічкою пошуку з функціональними кнопками
праворуч. Зліва – панель навігації по різним товарам. До недоліків можна
віднести велику площу, що займає рекламна інформація.
Marketplace «Епіцентр»
Епіцентр – найбільша мережа українських будівельно-господарських
гіпермаркетів, заснована 2003 року. Останніми роками асортимент компанії, як
роздрібної мережі, так і онлайн-майданчика, розширився: окрім будматеріалів та
товарів для дому, тут можна придбати автотовари, побутову техніку, продукти
харчування, товари для тварин та багато іншого.
Епіцентр як маркетплейс було запущено восени 2020 року, тому його можна
назвати одним із наймолодших і при цьому перспективних маркетплейсів
України. Основою маркетплейсу став офіційний інтернет-магазин компанії. На
сьогоднішній день Епіцентр дає можливість зайняти свою нішу в більш ніж 3500
категоріях товарів і планує їх розширення в майбутньому. На рисунку 1.3
представлено зовнішній вигляд маркетплейсу [5].
Рисунок 1.3 – Зовнішній вигляд маркетплейсу epicentrk.ua
16
ЧДТУ.231919.005 ПЗ
До переваг можна віднести інтеграцію гіпермаркету з найпопулярнішими
поштовими службами, що дозволяє як продавцю, так і покупцю заощаджувати на
доставці. Також маркетплейс надає послуги call-центру та самостійно обробляє
замовлення, що для багатьох бізнесів буде плюсом. До мінусів можна віднести
повільне завантаження головної сторінки.
Підводячи підсумки проведеного аналізу існуючих аналогів в таблиці 1.1
відзначені функціональні можливості (які можна віднести до переваг)
розглянутих маркетплейсів а також їх недоліки. До спільних недоліків
розглянутих аналогів, можна віднести повільне завантаження головної сторінки та
наявність відволікаючої реклами.
Кожен маркетплейс має свої особливості, переваги та недоліки, які ми
докладно розглянули вище. У чомусь умови співпраці у представлених
маркетплейсів схожі, а чимось відрізняються, що ми відобразили в порівняльній
таблиці 1.1.
Таблиця 1.1
Аналіз можливостей програмних систем
№
1 ROZETKA 42,1 10 000+ 3,9 100 грн./міс. + 13,8 +
+2-25%
комісія
2 Prom 51,1 60 000 100+ 500 – 1000 + 15 +
грн./міс.
3 Епіцентр 21,6 3 500+ 2+ 1 100 грн. + 13 +
авансовий
платіж,
100 грн/міс.
+ 15%
комісія
17
Назва
програмного
продукту
К-сть відвідувачів
млн./в місяць
К-сть продавців
К-сть товарів, млн.
Вартість та умови
партнерства
Конфіденційність
Час повного
завантаження, сек
Реклама
ЧДТУ.231919.005 ПЗ
Параметри Інтернет з’єднання для розглянутих аналогів перевірялося за
допомогою сервісу www.speedtest.net та представлені на рисунку 1.4.
Рисунок 1.4 – Параметри Інтернет з’єднання
1.3 Актуальні проблеми, що виникають в процесі розробки
У процесі розробки маркетплейсів можуть виникати різні проблеми, які
потребують уваги та вирішення. Деякі з актуальних проблем, що можуть
виникати, включають:
1 Складність масштабування: Маркетплейси можуть зіткнутися з
проблемами масштабування, особливо якщо з'являється велика кількість
користувачів, товарів або транзакцій. Розробники повинні забезпечити ефективне
масштабування архітектури, бази даних та інфраструктури для забезпечення
стабільної роботи маркетплейсу.
2 Безпека та захист даних: Маркетплейси мають робити все можливе для
захисту конфіденційності та безпеки даних користувачів. Це охоплює захист від
зловживань, хакерських атак, витоку персональних даних та забезпечення
безпечних платежів.
3 Регуляторні вимоги: У залежності від регіону та сфери діяльності, на
маркетплейси можуть накладатися різні регуляторні обмеження та вимоги.
Розробники повинні бути свідомими щодо цих вимог і враховувати їх у процесі
18
ЧДТУ.231919.005 ПЗ
розробки.
4 Конкуренція та привабливість: Маркетплейси зазвичай працюють у
конкурентному середовищі, де важливо привертати і утримувати як продавців,
так і покупців. Розробники повинні створити зручний та привабливий інтерфейс,
забезпечити широкий функціонал та ефективну підтримку користувачів.
5 Управління ризиками та спорами: Маркетплейси можуть стикатися з
різними ризиками, такими як суперечки між продавцями та покупцями,
недобросовісні користувачі або шахрайство. Розробники повинні розробити
механізми для вирішення спорів та управління ризиками на платформі.
Ці проблеми не є вичерпним переліком, але вони відображають деякі
загальні виклики, які можуть виникнути під час розробки маркетплейсу.
Вирішення цих проблем вимагає уважності, експертизи та надійних технічних
рішень.
1.4 Методи та засоби, які вже використовуються для розробки
Розробка маркетплейсів включає в себе використання різних методів і
засобів, що допомагають створити функціональну та ефективну онлайн-
платформу для торгівлі товарами або послугами. Ось деякі з них:
1 Веб-розробка: Для розробки маркетплейсу потрібно використовувати
веб-технології, такі як HTML, CSS і JavaScript, для створення клієнтського
інтерфейсу. Крім того, можна використовувати різні фреймворки і бібліотеки, такі
як React, Angular або Vue.js, для полегшення розробки фронтенду.
2 База даних: Маркетплейси потребують потужної бази даних для
зберігання і керування інформацією про товари, продавців, покупців та
замовлення. Реляційні бази даних, такі як MySQL або PostgreSQL, часто
використовуються для забезпечення структурованого зберігання даних.
3 API-інтеграція: Використання API (інтерфейсів програмування
застосунків) для інтеграції зовнішніх сервісів, таких як платіжні шлюзи, системи
доставки або соціальні мережі. Це дозволяє забезпечити роботу з різними
функціями та сервісами, необхідними для маркетплейсу [19].
19
ЧДТУ.231919.005 ПЗ
4 Облікові записи користувачів: Реалізація системи облікових записів та
автентифікації користувачів, щоб дозволити їм створювати профілі, виконувати
покупки, розміщувати продукти та управляти своїми активностями на
маркетплейсі.
5 Автентифікація та безпека: Маркетплейси мають забезпечувати безпеку
та конфіденційність даних своїх користувачів. Це можна зробити шляхом
реалізації механізмів автентифікації, шифрування даних, застосування заходів
безпеки на рівні сервера та забезпечення безпеки платежів.
6 Інтеграція платіжних систем: Маркетплейси повинні забезпечити
можливість здійснення безпечних та зручних платежів між покупцями та
продавцями. Це може включати інтеграцію з провідними платіжними шлюзами,
такими як PayPal та ін..
7 Пошук та фільтрація: Розробка механізмів пошуку та фільтрації, щоб
дозволити користувачам швидко знаходити необхідні товари або послуги за
різними критеріями, такими як категорії, ціна, розташування тощо.
Наведено основні методи та засоби, що використовуються в розробці
маркетплейсів. Фактичний вибір залежатиме від специфіки проекту та потреб
бізнесу.
1.5 Конкретизація завдань роботи
Після аналізу існуючих аналогів на ринку ПЗ було виявлено їхні переваги та
недоліки і на основі отриманих потреб замовників, виникла наступна постановка
задачі – розробити marketplace, який швидко завантажується, не містить зайвої
інформації та реклами. Розроблений функціонал повинен містити:
1 Реєстрація нового користувача та вхід в систему існуючого.
На формі авторизації повинні бути поля для введення логіну, парою та
кнопка яка здійснює вхід. Новий користувач має змогу зареєструватися в системі.
2 Перегляд історії замовлень;
Кожен користувач повинен мати змогу переглядати історію своїх
замовлень.
20
ЧДТУ.231919.005 ПЗ
3 Перегляд товарів які занесені в систему.
При запуску marketplace користувачу відображається загальний список
товарів із можливістю перегляду його характеристик та доступністю на складі.
4 Поділ товарів на категорії.
Користувач має змогу вибрати товар з доступних на сайті категорій.
5 Додавання товарів в кошик.
Кожен користувач має змогу додати до кошика обраний ним товар.
6 Оформлення замовлень на вибрані товари.
Після додавання обраного товару в кошик користувачу потрібно бути
авторизованим для оформлення замовлення.
7 Адміністрування системи окремим користувачем.
Адміністратор (менеджер) отримує дані про всі замовлення, товари та
категорії з бази даних, і може їх обробляти.
Для наведених завдань повинні бути реалізовані:
- Реляційна база даних
- Користувацький інтерфейс
- Функціонал авторизації та реєстрації користувачів
- Передачу та зберігання конфіденційних даних в зашифрованому вигляді
Технічні характеристики
Сервер на якому встановлена система повинен мати наступні
характеристиками:
- CPU: 2x Intel Xeon 2Ghz
- RAM 4096 Mb
- LAN: 100 Mbps
- Встановлений: сервер додатків Apache Tomcat, та БД: Postgres.
Для відображення marketplace майданчика необхідний ПК, планшет або
телефон з роздільною здатністю екрану 1280х720 і більше, наявність браузера з
оновленням до останньої версії.
Платформа відкрита із мобільного пристрою повинна бути адаптована та
21
ЧДТУ.231919.005 ПЗ
сумісна зі смартфонами сімейства Apple (починаючи з: iPhone5s +; iPad3+) та
Android (починаючи з Android 5.0+).
Для запуску розробленої системи, клієнт повинен мати наступні
характеристики:
- CPU: 2xCore 1Ghz
- RAM 1024 Mb
- ОС: Windows, Linux, MacOS, IOS, Android
- Браузер з підтримкою HTML5, CSS3, JS.
22
ЧДТУ.231919.005 ПЗ
2 ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ СИСТЕМИ
2.1 Модель предметної області
Модель предметної області для маркетплейсу може включати різні сутності
та взаємодію між ними. Ось приклади основних сутностей, які можуть бути
частиною моделі предметної області для маркетплейсу:
1 Користувачі: Це сутності, які включають покупців, продавців та
адміністраторів. Вони мають інформацію про особисті дані, облікові записи,
історію покупок та активності.
2 Товари або Послуги: Це предмети або послуги, які продаються на
маркетплейсі. Вони можуть мати різні характеристики, такі як назва, опис, ціна,
категорія, фотографії тощо.
3 Замовлення: Це сутності, що представляють окремі покупки
користувачів. Вони містять інформацію про товари, кількість, ціну, адресу
доставки та статус замовлення.
4 Рейтинги та відгуки: Це сутності, які дозволяють користувачам
залишати оцінки та коментарі про товари, послуги та продавців. Вони можуть
містити оцінку, текстовий відгук та інформацію про автора.
5 Платіжні транзакції: Це сутності, які відображають фінансові операції,
пов'язані з покупками. Вони містять інформацію про суму платежу, метод оплати,
дату та статус транзакції.
6 Система доставки: Це сутності, які описують послуги доставки товарів
покупцям. Вони можуть включати інформацію про доставку, перевізників, адреси
доставки, статус відправлення тощо.
Наведений приклад основних сутностей, які можуть бути частиною моделі
предметної області для маркетплейсу. Розробка моделі предметної області
допомагає визначити основні компоненти та взаємодію між ними, що в свою
чергу допомагає у процесі проектування та розробки маркетплейсу.
2.1.1 Словник предметної області
У словнику предметної області для маркетплейсу можуть бути використані
23
ЧДТУ.231919.005 ПЗ
наступні терміни:
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): Відсоток або сума, яку маркетплейс бере з
24
ЧДТУ.231919.005 ПЗ
продажу в якості плати за надання платформи.
15 Пошук та фільтрація (англ. Search and Filtering): Механізми, що
дозволяють користувачам шукати та фільтрувати товари або послуги за різними
критеріями.
2.1.2 Елементи моделювання предметної області
Елементи моделювання предметної області включають в себе [10]:
Сутності – це об'єкти або концепції, які існують в предметній області. У
нашому проекті можуть бути наступні сутності: Адміністратор, Покупець, База
даних, Товар, Кошик, Замовлення.
Атрибути – це характеристики сутностей, які мають значення і дозволяють
ідентифікувати та описувати сутності. У нашому проекті можуть бути наступні
атрибути: для сутності Адміністратор – ім'я, прізвище, логін та пароль, для
сутності Покупець – ім'я, прізвище, електронна адреса, логін та пароль, для
сутності Товар - назва, опис, ціна, кількість та ін.
Відносини – це зв'язки між сутностями. У нашому проекті можуть бути
наступні відносини: Адміністратор може додавати, редагувати та видаляти товари
в базі даних, переглядати та оформлювати замовлення покупців. Покупець може
реєструватись на сайті, переглядати товари на сайті, додавати їх до кошика та
оформлювати замовлення з обраними товарами.
Асоціації – це відносини між сутностями, що показують, як вони пов'язані
між собою. У нашому проекті можуть бути наступні асоціації: Покупець має
доступ до всіх товарів. Одне замовлення може містити багато Товарів, Покупець
може оформлювати багато Замовлень, Сума замовлення залежить від кількості та
вартості окремого Товару.
При проектуванні системи та моделюванні предметної області ми будемо
використовувати мову UML. Для створення діаграм в мові UML
використовуються три типи візуальних позначень: графічні символи, зв'язки, що
об'єднують елементи, та текст.
25
ЧДТУ.231919.005 ПЗ
2.1.3 Робоча область моделювання
Робоча область моделювання marketplace включає в себе всі аспекти,
пов'язані з функціональністю та процесами, що відбуваються в електронному
майданчику, де продаються товари або послуги від різних продавців. Основні
компоненти цієї моделі включають:
1 Користувачі: Модель повинна включати різні типи користувачів, такі як
покупці, продавці, адміністратори та інші ролі, які можуть взаємодіяти з
платформою.
2 Реєстрація та авторизація: Модель повинна включати процес реєстрації
нових користувачів та авторизації зареєстрованих користувачів для доступу до
своїх облікових записів.
3 Каталог товарів/послуг: Модель повинна описувати структуру каталогу
товарів або послуг, який включає категорії, підкатегорії, атрибути, фотографії,
описи та ціни.
4 Пошук та фільтрація: Модель повинна включати можливості пошуку
товарів або послуг за різними критеріями такими як категорія, ключові слова,
тощо.
5 Кошик покупок: Модель повинна описувати процес додавання товарів
до кошика, керування кількістю товарів, видалення товарів, розрахунок загальної
вартості покупки та оформлення замовлення.
6 Оплата та доставка: Модель повинна включати інтеграцію з платіжними
шлюзами для забезпечення безпечних онлайн-транзакцій. Також може бути
потрібна модель для опису процесу доставки товарів покупцям.
7 Управління замовленнями: Модель повинна описувати процес обробки
замовлень, зміни статусів замовлення, повернення товарів та інші операції,
пов'язані з управлінням замовленнями.
8 Аналітика та звітність: Модель може включати можливості збору
статистичних даних, аналізу покупок, генерації звітів та показників ефективності
платформи.
26
ЧДТУ.231919.005 ПЗ
2.2 Формування та аналіз вимог до програмного забезпечення
2.2.1 Первинні вимоги
Формування загальних вимог до ПЗ складається з формування первинних і
детальних вимог, які ми перерахуємо нижче. При розробці маркетплейсу важливо
визначити і сформулювати первинні вимоги, які відображають основні
функціональні та нефункціональні вимоги проекту. Перарахуємо загальні
первинні вимоги, які виникають при створенні маркетплейсу:
1 Реєстрація користувачів: Забезпечення можливості реєстрації для
покупців, продавців та адміністраторів, щоб вони могли отримати доступ до
функціоналу маркетплейсу.
2 Розміщення товарів та послуг: Можливість продавцям додавати товари
або послуги для продажу, включаючи інформацію про назву, опис, ціну,
фотографії, категорії тощо.
3 Пошук та фільтрація: Забезпечення зручного і ефективного пошуку
товарів або послуг за різними критеріями.
4 Кошик та оформлення замовлення: Реалізація функціоналу кошика, де
покупці можуть додавати товари та послуги перед оформленням замовлення, а
також можливість безпечного та зручного оформлення замовлення.
5 Управління користувачами: Можливість адміністраторам
встановлювати та керувати правами доступу користувачів, включаючи модерацію
контенту, вирішення спорів та управління рейтингами та відгуками.
6 Рейтинги та відгуки: Забезпечення можливості користувачам залишати
оцінки та коментарі про товари, послуги та продавців, що допомагає іншим
користувачам зробити інформований вибір.
7 Система доставки: Інтеграція з системами доставки для забезпечення
ефективного та надійного доставлення товарів покупцям.
8 Аналітика та звітність: Забезпечення інструментів для аналізу даних,
статистики продажів, звітності про фінансові операції та інших ключових метрик
маркетплейсу.
27
ЧДТУ.231919.005 ПЗ
9 Безпека та захист даних: Забезпечення високого рівня безпеки
маркетплейсу, включаючи захист особистих даних користувачів, захист від
шахрайства та зловживань.
2.2.2 Функціональні та нефункціональні вимоги
Детальні вимоги до програмного забезпечення включають:
1. Функціональні вимоги:
- Реєстрація та авторизація користувачів;
- Можливість створення та управління профілями користувачів;
- Додавання, редагування та видалення товарів або послуг продавцями;
- Пошук, фільтрація та сортування товарів або послуг;
- Кошик для зберігання обраних товарів перед оформленням замовлення;
- Оформлення замовлення та здійснення платежів.
- Система відстеження стану замовлення та доставки.
- Відгуки та рейтинги товарів, послуг та продавців.
- Система сповіщень та повідомлень для користувачів.
- Адміністративні функції для управління користувачами, товарами,
замовленнями, платежами тощо.
2. Нефункціональні вимоги:
- Безпека та захист даних: Забезпечення високого рівня безпеки передачі
та зберігання даних користувачів, використання шифрування, захист від
несанкціонованого доступу.
- Швидкодія та масштабованість: Забезпечення швидкого та ефективного
виконання операцій, можливість масштабування системи зі зростанням
навантаження.
- Висока доступність: Гарантування доступності маркетплейсу для
користувачів без значних перерв у роботі.
- Відповідність правовим вимогам: Дотримання законодавства та
правових вимог, зокрема у сферах захисту даних, споживчих прав, авторських
прав тощо.
28
ЧДТУ.231919.005 ПЗ
- Інтерфейс та дизайн: Розробка зручного та привабливого інтерфейсу для
користувачів, з урахуванням їхніх потреб та звичок.
- Сумісність: Підтримка різних браузерів, пристроїв та операційних
систем.
- Аналітика та звітність: Забезпечення можливості збору та аналізу даних
про активність користувачів, продажі, ефективність маркетплейсу тощо.
2.2.3 Формування вимог за допомогою діаграми прецедентів
Діаграма прецедентів відображає функціональність системи з точки зору
користувачів, і дозволяє аналізувати взаємодію між користувачами та системою.
В результаті проведення моделювання предметної області, формуванню словника
та представлення вимог до системи, ми сформуємо наступну діаграму (рис. 2.1)
використання веб-додатку marketplace, користувачами системи.
Рисунок 2.1 – Діаграма варіантів використання
29
ЧДТУ.231919.005 ПЗ
2.3 Проектування логічної структури програмного комплексу
2.3.1 Діаграми класів
Діаграма класів є одним із видів діаграм в рамках мови моделювання UML
Вона використовується для відображення класів, їх взаємодій та залежностей між
ними в об'єктно-орієнтованому програмуванні. Діаграма класів містить класи,
атрибути, методи, асоціації, спадкування та інші відношення між класами, що
дозволяє проектувати та аналізувати архітектуру програмного забезпечення.
Діаграма класів розробленого веб-додатку marletplace представлена на
рис.2.2. Реалізація виконана на мові програмування Java.
Рисунок 2.2 – Діаграма класів
Дана діаграма (рис. 2.2) описує основні класи, що використовуються в
системі. Клас ProductInfo (товар) описує товари продавців доступні на складі
marketplace. Клас ProductCategory описує категорії товарів, що розміщенні на
marketplace. Клас User описує користувачів системи (покупців та обслуговуючий
персонал платформи). Клас ProductInOrder описує замовлення товарів. Клас
OrderMain описує деталі замовлення. Клас Card описує корзину для додавання в
неї товарів покупцем.
30
ЧДТУ.231919.005 ПЗ
2.3.1 Діаграми пакетів
На рисунку 2.3 представлена діаграма пакетів нашого проекту.
Рисунок 2.3 – Діаграма пакетів
2.4 Архітектурне проектування
2.4.1 Розгортання програмної системи
Для запуску marketplace спочатку потрібно стартувати backend-частину а
потім лише frontend-частину із клієнтським інтерфейсом.
Backend-частина
На сервері перед тим повинен бути попередньо встановлений PostgreSQL.
Далі нам потрібно створити базу даних «marketplace» за допомогою SQL-
команди:
31
ЧДТУ.231919.005 ПЗ
create database marketplace;
Та прописати наступні конфігурації (лістинг 2.1) у файлі application.yml.
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring:
datasource:
driver-class-name: org.postgresql.Driver
username: postgres
password: admin
url: jdbc:postgresql://localhost/marketplace
platform: postgres
initialization-mode: always
continue-on-error: true
jpa:
show-sql: true
# generate-ddl: false
hibernate:
ddl-auto: create
database: postgresql
properties:
hibernate:
temp:
use_jdbc_metadata_defaults: false;
database-platform: org.hibernate.dialect.PostgreSQL9Dialect
Лістинг 2.1 – конфігурації бази даних
Для старту самої 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-проекту, і по замовчуванню має значення:
32
ЧДТУ.231919.005 ПЗ
«localhost:8080/api». На рисунку 2.4 представлена діаграма розгортання проекту.
Рисунок 2.4 – Діаграма розгортання системи
2.4 Моделювання поведінки системи
Діаграма діяльності (англ. activity diagram) – це графічний інструмент
моделювання, який використовується для представлення послідовності дій або
операцій у системі або процесі. На рисунку 2.5 представлений загальний алгоритм
використання системи у вигляді діаграми діяльності.
33
ЧДТУ.231919.005 ПЗ
Рисунок 2.5 – Діаграма діяльності
34
ЧДТУ.231919.005 ПЗ
Діаграма послідовності – це uml діаграма, що відображає послідовність
виконання повідомлень між об'єктами в рамках конкретного сценарію взаємодії.
Вона дозволяє ілюструвати, як об'єкти взаємодіють між собою в певному порядку
та часовому проміжку для досягнення певної мети або виконання певної функції.
На рисунку 2.6 зображена діаграма процесу замовлення товару покупцем.
Рисунок 2.6 – Діаграма послідовності: замовлення товару
На рис. 2.7 зображена діаграма процесу обробки замовлення
адміністратором marketplace.
Рисунок 2.7 – Діаграма послідовності: оформлення замовлення
35
ЧДТУ.231919.005 ПЗ
3 КОНСТРУЮВАННЯ ПРОГРАМНОЇ СИСТЕМИ
3.1 Обґрунтування вибору засобів реалізації
Засобами реалізації з самого початку були обрані Java зі Spring Framework
на бекенді та TypeScript з Angular [11] на фронтенді, системою керування базою
даних було обрано PostgreSQL. Загальна схема використаних технологій та
засобів показана на рис.3.1.
Рисунок 3.1 – Загальна схема використаних для проектування та розробки
технологій та засобів
Разом з цим для проектування та розробки потрібно знати і вміти
використовувати велику кількість супутніх технологій, принципів, інструментів,
як пов’язаних з Java [6], Spring Framework [10, 13] та PostgreSQL, так і тих, що
знаходяться на стику їх використання; також потрібно знати та вміти
використовувати різні методи та інструменти побудови процесу розробки – без
цього досягти ефективності розробки неможливо. Детальна схема використаних
технологій та засобів показана на рис.3.2.
36
ЧДТУ.231919.005 ПЗ
Рисунок 3.2 – Детальна cхема технологій та засобів використаних для
проектування та розробки системи
Мова програмування Java має значні переваги перед іншими мовами та
середовищами, що робить її придатною практично для будь-якого завдання
програмування.
Мова програмування Java має декілька основних переваг, які зробили її
популярною серед розробників. Перерахуємо деякі з них:
Переносимість: Java є "write once, run anywhere" мовою, що означає, що
програми, написані на Java, можуть працювати на різних платформах без
необхідності відновлення коду. Це досягається завдяки використанню віртуальної
машини Java (JVM), яка виконує байт-код Java на будь-якій підтримуваній
платформі.
Об'єктно-орієнтований підхід: Java підтримує повну об'єктно-орієнтовану
парадигму програмування. Це сприяє модульності, повторному використанню
коду, спадкуванню, поліморфізму та іншим перевагам об'єктно-орієнтованого
програмування.
Багатопотоковість: Java надає вбудовану підтримку для багатопотокового
програмування. Розробники можуть легко створювати та керувати багатьма
паралельними потоками в одній програмі, що дозволяє ефективно
37
ЧДТУ.231919.005 ПЗ
використовувати ресурси та забезпечувати відгук на запити користувачів.
Велика стандартна бібліотека: Java має велику стандартну бібліотеку, яка
включає багато корисних класів і методів для роботи з різними завданнями,
включаючи роботу з мережами, роботу з базами даних, обробку рядків, роботу з
графічним інтерфейсом тощо. Це дозволяє розробникам прискорити процес
розробки і скоротити час, необхідний для написання власного коду.
Безпека: Java має вбудовану систему безпеки, яка дозволяє контролювати
доступ до ресурсів і обмежувати дії програми. Вона включає в себе механізми для
управління пам'яттю, обробки винятків і контролю типів, що допомагає запобігти
багатьом типам програмних помилок та забезпечує більш безпечну роботу
програм.
Підтримка спільноти: Java має велику спільноту розробників, яка активно
працює над розширенням мови, вирішенням проблем та наданням допомоги один
одному. Існують безліч ресурсів, форумів, бібліотек і фреймворків, які
розробники можуть використовувати для полегшення роботи.
Звісно, кожна мова програмування має свої переваги та обмеження, і вибір
мови залежить від конкретних потреб та вимог проекту. Але Java широко
використовується в комерційних проектах завдяки своїм перевагам, стабільності
та надійності. [6a].
Spring Framework є провідним фреймворком для побудови бекенд-частин
веб-застосунків на Java. Він є розгалуженою, з багатьма потрібними складовими
основою для побудови програм від середніх до найбільших та найскладніших.
Можливості Spring Framework вказано на початковій сторінці Spring (рис. 3.3).
Spring Framework є цінним не тільки як якісний, зрілий продукт – він також
має гнучкий та всебічний набір розширень та бібліотеки сторонніх виробників,
що дозволяють розробникам створювати практично будь-які програми, які можна
уявити. По суті, функції Inversion of Control (IoC) та Dependency Injection (DI)
Spring Framework створюють основу для широкого набору можливостей та
функціональності. Незалежно від того, чи створюються безпечні, реактивні,
38
ЧДТУ.231919.005 ПЗ
хмарні мікросервіси для Інтернету або складні потоки даних для підприємства,
Spring має інструменти, які допоможуть [6].
Високий рівень безпеки є однією з рис, яка відрізняє його від інших
поширених фреймворків. Spring має перевірений досвід вирішення питань
безпеки швидко та відповідально. Розробники Spring працюють з фахівцями з
безпеки, щоб виправити і протестувати будь-які повідомлення про вразливості.
Сторонні залежності також ретельно контролюються і регулярно оновлюються,
щоб зберегти дані та програми максимально безпечними. Крім того, є спеціальна
частина Spring Framework – це Spring Security, яка полегшує інтеграцію зі
стандартними галузевими схемами безпеки та забезпечує надійні рішення, які
захищені за замовчуванням [10].
Рисунок 3.3 – Можливості Spring Framework
Клієнтська сторона. Мова програмування TypeScript.
TypeScript — мова програмування, представлена Microsoft восени 2012;
позиціонується як засіб розробки веб-застосунків, що розширює можливості
39
ЧДТУ.231919.005 ПЗ
JavaScript [15]. Розробником мови 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 зображення, аудіо, відео, інтерактивних форми і т.п. можуть
40
ЧДТУ.231919.005 ПЗ
бути вбудовані у візуалізовану інтернет-сторінку. 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 має різні рівні та профілі. Наступний
41
ЧДТУ.231919.005 ПЗ
рівень 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 вважається найсучаснішою реляційною системою керування базами
42
ЧДТУ.231919.005 ПЗ
даних у світі з відкритим кодом.
Дійсно, PostgreSQL – це потужна об'єктно-реляційна база даних із
відкритим кодом, яка використовує та розширює мову SQL у поєднанні з
багатьма функціями, які безпечно зберігають та масштабують найскладніші
навантаження даних. Витоки PostgreSQL відносяться до 1986 року в рамках
проекту POSTGRES в Каліфорнійському університеті в Берклі і мають більш ніж
30 років активного розвитку на основній платформі, мільйони користувачів у
всьому світі.
PostgreSQL заслужив добру репутацію за свою перевірену архітектуру
(рис.3.5), надійність, цілісність даних, надійний набір функцій, розширюваність та
відданість спільноті з відкритим кодом, що стоїть за цим програмним
забезпеченням, щоб послідовно пропонувати ефективні та інноваційні рішення.
PostgreSQL працює на всіх основних операційних системах, сумісний з ACID з
2001 року і має потужні додатки. PostgreSQL є основною реляційною базою даних
з відкритим кодом для багатьох проектів і організацій, в тому числі дуже відомих.
До основних переваг PostgreSQL можна віднести:
- високопродуктивні і надійні механізми транзакцій і реплікації;
- спадкування;
- можливість індексування геометричних (зокрема, географічних) об'єктів
і наявність базується на ній розширення PostGIS;
- вбудована підтримка слабоструктурованих даних в форматі JSON з
можливістю їх індексації;
- розширюваність (можливість створювати нові типи даних, типи індексів,
мови програмування, модулі розширення, підключати будь-які зовнішні джерела
даних).
- сумісність з ANSI SQL;
- безкоштовна в більшості випадків;
- хороша підтримка з боку провайдерів послуг хостингу;
- швидка підтримка транзакцій через механізм InnoDB.
43
ЧДТУ.231919.005 ПЗ
Рисунок 3.5 – Архітектура PostgreSQL
3.2 Опис структурної (функціональної) схеми
Архітектура додатку представлено на рисунку 3.6. Модулі нашого додатку
можна поділити на 3 основні функціональні частини:
- view, представлення, для взаємодії користувача з нашим додатком;
- control, контролер, служить для обробки подій які приходять від
взаємодії користувача з представленням;
- model, модель, призначена за збереження, вибірки, запис даних
додатку.
44
ЧДТУ.231919.005 ПЗ
Рисунок 3.6 – Структура модулів системи
На рисунку 3.7 зображено обробники подій (контролери) проекту та їх
інтерфейси, які обробляють запити користувача.
Рисунок 3.7 – Контролери проекту
Основні функції, що виконуються контролерами системи:
1) CartController – відповідає за всю взаємодію користувача із кошиком для
замовлення товарів.
2) UserController – забезпечує роботу із профайлами користувача, їх
створення, оновлення та читання;
3) OrderController – містить в собі логіку обробки замовлень клієнтами.
4) ProductController – відповідає за зчитування, створення, редагування та
видалення товару.
5) CategoryController – забезпечує роботу з категоріями товару;
Веб-додаток marketplace розроблений в середовищі розробки Intellij IDEA.
Структура проекту (рисунок 3.8) розділяється на дві основні частини, перша
45
ЧДТУ.231919.005 ПЗ
backend (рисунок 3.8а), друга frontend (рисунок 3.8б).
а) backend б) frontend
Рисунок 3.8 – Структура проекту
Всі веб-ресурси та необхідні файли розміщені тематичних директоріях
проекту:
1) файли web-сторінок з розширенням *.html
2) файли стилів web-сторінок з розширенням *.css;
3) файли скриптів в директорії з розширенням *.ts.
4) графічні зображення в директорії src/assets;
46
ЧДТУ.231919.005 ПЗ
Рисунок 3.9 – Структура веб-ресурсів
3.3 Опис логічної схеми системи
При побудові marketplace використовувались відомі та широко поширені
архітектурні шаблони Model-View-Controller (MVC) та Representational State
Transfer (REST).
Model-View-Controller (MVC) – це архітектурний шаблон, який розділяє
додаток на три основні логічні компоненти: модель, вигляд та контролер. Це
робиться для відокремлення внутрішніх представлень інформації від способів
подання та прийняття інформації від користувача. Традиційно використовувалась
для декстопних додатків, але потім модель стала популярною з появою веб-
додатків. Сьогодні майже всі популярні мови підтримують цю архітектуру
(рис. 3.10).
Рисунок 3.10 – Схема архітектурного шаблону Model-View-Controller
(MVC)
Модель являє собою дані та правила роботи з ними; дані передається з
одного шару в інший. View відповідає за показ даних, наявних у програмі.
47
ЧДТУ.231919.005 ПЗ
Контролер несе відповідальність за прийняття запиту від користувача,
модифікацію моделі та надсилання її до View, який відображається користувачеві.
Ідея, що стоїть за шаблоном MVC – це чіткий розподіл відповідальностей
між об'єктами домену, що представляє сутність реального світу та
презентаційним рівнем, який відображається на екрані. Об'єкти домену повинні
бути повністю незалежними і також працювати без рівня View. Це дає
можливість, зокрема, мати різний інтерфейс для однієї і тієї ж бекенд-частини
програми [10a].
MVC є одним з базових стовпів, на яких базується Spring Framework.
Програми, що пишуться на основі Spring Framework, майже завжди
використовують підхід MVC.
REpresentational State Transfer (REST) – архітектурний стиль для
розподілених гіпермедіа-систем і вперше був представлений Роєм Філдінгом у
2000 році у своїй дисертації.
Сутністю REST є 6 керівних обмежень – якщо програма їм повністю
відповідає, то інтерфейс можна назвати RESTful. Дані принципи перераховані
нижче.
Клієнт-сервер архітектура (рис. 3.11) – відокремлюючи питання побудови
користувальницького інтерфейсу від питань зберігання даних, покращується
портативність користувальницького інтерфейсу на кількох платформах та
покращуємо масштабованість, спрощуючи серверні компоненти.
Рисунок 3.11 – Архітектура «клієнт-сервер»
48
ЧДТУ.231919.005 ПЗ
Stateless – кожен запит від клієнта до сервера повинен містити всю
інформацію, необхідну для розуміння запиту, і не може скористатися будь-яким
збереженим контекстом на сервері. Тому стан сесії повністю зберігається на
клієнті.
Кешування – обмеження кешу вимагають, щоб дані у відповіді на запит
неявно або явно позначали як кешовані або не кешовані. Якщо відповідь є
кешованою, то кешу клієнта надається право повторно використовувати ці дані
відповіді для наступних, рівнозначних запитів.
Uniform interface – за допомогою застосування принципу загальної
інженерії програмного забезпечення до компонентного інтерфейсу спрощується
загальна архітектура системи та покращується видимість взаємодій. Щоб
отримати єдиний інтерфейс, для керування поведінкою компонентів потрібно
кілька архітектурних обмежень. REST визначається чотирма обмеженнями
інтерфейсу: ідентифікація ресурсів; маніпулювання ресурсами через
представництва; повідомлення з самоописанням; гіпермедіа як двигун стану
програми.
Багаторівнева система – рівневий стиль системи дозволяє архітектурі
складатися з ієрархічних шарів, обмежуючи поведінку компонентів таким чином,
що кожен компонент не може "бачити" за межами прямого шару, з яким вони
взаємодіють.
Код на вимогу (необов’язково) – REST дозволяє розширити
функціональність клієнта, завантаживши та виконавши код у вигляді аплетів чи
сценаріїв. Це спрощує клієнтів, зменшуючи кількість функцій, необхідних для
попередньої реалізації.
Програмне забезпечення marketplace розроблено у вигляді двох окремих
проектів – бекенду, розробленого на основі Java 11 та Spring Boot 2.2 [18] і
фронтенду, розробленого на основі TypeScript та Angular Framework 7. Тобто це
сучасний підхід, що відповідає REST.
49
ЧДТУ.231919.005 ПЗ
3.4 Розробка бази даних
Спроектована база даних складається з 6 таблиць 4 з яких логічно пов’язані
між собою (рисунок 3.12). Таблиці призначенні для збереження даних про товари,
клієнтів, їх замовлення, продажі, доставку та оплату. Детально опишемо
призначення і структуру таблиць.
Рисунок 3.12 – Модель бази даних
Таблиця product_info (товар) містить в собі інформацію про товари
продавців доступні на складі marketplace. Структура таблиці бази даних наведена
в таблиці 3.1
50
ЧДТУ.231919.005 ПЗ
Таблиця 3.1
Структура таблиці Товар (product_info)
№ п/п Назва поля Тип поля Ключ Опис
1 product_id varchar(255) PK Ідентифікатор
2 category_type integer Категорія
3 create_time timestamp Дата надходження
4 product_description Varchar(255) Опис
5 product_icon Varchar(255) Шлях до фото
6 product_name Varchar(255) Назва
7 product_price numeric(19, 2) Ціна
8 product_status integer Статус
9 product_stock integer К-сть на складі
10 update_time timestamp Дата оновлення
Таблиця category призначена для зберігання даних про категорії товарів, які
розміщенні на marketplace. Структура наведена в таблиці 3.2
Таблиця 3.2
Структура таблиці Категорія товару (product_category)
№ п/п Назва поля Тип поля Ключ Опис
1 category_id integer PK Ідентифікатор
2 category_name Varchar(255) Назва категорії
3 category_type integer Тип
4 create_time timestamp Дата створення
5 update_time timestamp Дата оновлення
Таблиця users призначена для зберігання даних про клієнтів та
обслуговуючого персоналу платформи. Структура таблиці наведена в таблиці 3.3.
Таблиця 3.3
Структура таблиці Користувачі (Users)
№ п/п Назва поля Тип поля Ключ Опис
1 id bigint PK Ідентифікатор
2 active boolean
3 address Varchar(255) Адреса (доставки)
4 email Varchar(255) Електронна адреса
5 name Varchar(255) Ім’я користувача
6 password Varchar(255) Зашифрований пароль
7 phone Varchar(255) Телефон
8 role Varchar(255) Права
51
ЧДТУ.231919.005 ПЗ
Таблиця product_in_order призначена для зберігання даних про замовлення
товарів, її структура наведена в таблиці 3.4.
Таблиця 3.4
Структура таблиці Замовлення (product_in_order)
№ п/п Назва поля Тип поля Ключ Опис
1 id bigint PK Ідентифікатор
2 category_type integer Категорія
3 count integer Кількість
4 product_description Varchar(255) Опис
5 product_icon Varchar(255) Шлях до фото
6 product_id Varchar(255) Ідентифікатор товару
7 product_name Varchar(255) Назва товару
8 product_price numeric(19, 2) Ціна
9 product_stock integer К-сть на складі
10 cart_user_id bigint FK Ідентифікатор кошика
11 order_id bigint FK Ідентифікатор замовл.
Таблиця order_main призначена для зберігання даних про деталі замовлення,
її структура наведена в таблиці 3.5.
Таблиця 3.5
Структура таблиці Замовлення (order_main)
№ п/п Назва поля Тип поля Ключ Опис
1 id bigint PK Ідентифікатор
2 buyer_address Varchar(255) Адреса клієнта
3 buyer_email Varchar(255) Email клієнта
4 buyer_name Varchar(255) Ім’я клієнта
5 buyer_phone Varchar(255) Телефон клієнта
6 create_time timestamp Дата створення
7 order_amount numeric(19, 2) Сума замовлення
8 order_status integer Статус замовлення
9 update_time timestamp Дата оновлення
Таблиця cart призначена для зберігання даних про кошик клієнта.
3.3 Серверне програмне забезпечення та системні вимоги
Сервер додатків J2EE — це реалізація системи в відповідності з
специфікацією J2EE, яка забезпечує роботу модулів з логікою конкретної
програми. Він включає в себе як наступні сервіси або їх підмножину:
52
ЧДТУ.231919.005 ПЗ
– EJB-контейнер, який підтримує автоматичну синхронізацію Java об'єктів з
базою даних (CMP — container managed persistence, BMP — bean managed
persistence);
– JMS – сервіс доставки повідомлень між компонентами і серверами;
– керування ресурсами (доступ до СКБД, файлової системи тощо);
– безпека і захист даних;
– підтримка транзакцій (в том числі і розподілених);
– веб-сервер і сервлет-сервер;
– підтримка веб-сервісів;
– JSF.
Для реалізації проекту вибрано Apache Tomcat 7 (на будь-якій сумісній з
Java операційній системі зокрема Windows, FreeBSD, Linux, OpenSolaris тощо),
який являє собою Веб-сервер з відкритим вихідним кодом [5]. Розробляється з
1999 року на основі однойменної розробки фірми Sun. Являє собою контейнер
сервлетів (JEE), що реалізує специфікацію JSR 154 (Servlet 2.5). Поширюється під
ліцензією Apache License 2.0, що дозволяє використовувати її в будь-яких цілях
без відома розробників. Вимоги до апаратної частини клієнта залежать від
кількості клієнтів, що одночасно будуть працювати з системою та вимогами по
максимальному часу обробки одного HTTP-запиту.
Для правильної роботи web-системи потрібно щоб комп’ютер-сервер на
якому буде встановлено програму відповідав наступним характеристикам
наведеним в таблиці 3.6.
Таблиця 3.6
Характеристики апаратного забезпечення сервера
№ п/п Назва Значення
1 Процесор із тактовою частотою не менше 3 ГГц
2 Оперативна пам'ять не менше 8 ГБ.
3 Вільного місця на жорсткому диску 1 Гб.
4 Встановлена ОС Windows, Linux, MacOS
На клієнті повинен бути встановлений браузер для входу в marketplace.
53
ЧДТУ.231919.005 ПЗ
Девайс клієнта повинен володіти характеристиками наведеними в таблиці 3.7.
Таблиця 3.7
Характеристики апаратного забезпечення клієнта
№ п/п Назва Значення
1 Процесор із тактовою частотою не менше 2 ГГц
2 Оперативна пам'ять не менше 4 ГБ.
3 Встановлена ОС Windows, Linux, MacOS,
Android, iOS
3.5 Розробка інтерфейсу користувача
Для перевірки функцій веб-додатку, проведемо покупку товару новим
користувачем системи. Спочатку перевіримо функцію реєстрації в системі,
натиснувши кнопку реєстрація. Після чого введемо тестові дані та натиснемо
кнопку «зареєструватися» (рисунок 3.13).
Рисунок 3.13 – Реєстрація нового користувача
В разі успішної реєстрації користувача перенаправляє на сторінку
авторизації системи на якій відображається поле логіну (електронної пошти) та
паролю.
54
ЧДТУ.231919.005 ПЗ
Рисунок 3.14 – Авторизація користувача
Після успішної авторизації клієнту відображається список товарів (рисунок
3.15) доступних для покупки. У лівій верхній частині меню можемо бачити
логотип marketplace та список категорій товарів.
Рисунок 3.15 – Головне вікно marketplace
55
ЧДТУ.231919.005 ПЗ
3.6 Тестування програмної системи
Після того як користувач зробив свій вибір йому потрібно додати обраний
товар у корзину а для оформлення замовлення необхідно пройти авторизацію. В
разі якщо користувач вперше відвідав сайт йому потрібно пройти реєстрацію та
авторизуватися. Після успішної авторизації користувач має змогу підтвердити
своє замовлення. Адміністратор marketplace має змогу переглянути замовлення,
підтвердити його чи відмінити. Також адміністратор має змогу додавати,
редагувати та видаляти інформацію про товари та їх категорії.
3.6.1 Модульне тестування
Модульне тестування marketplace виконується для перевірки правильності
роботи окремих модулів або компонентів системи. Основна мета модульного
тестування полягає в тому, щоб впевнитися, що кожен модуль працює коректно і
виконує свої функції згідно з вимогами. Основні кроки модульного тестування
marketplace включають:
Вибір модуля: Виберіть конкретний модуль або компонент системи, який
плануєте протестувати. Наприклад, це може бути модуль для обробки замовлень.
Розробка тестових сценаріїв: Розробляється набір тестових сценаріїв, які
покривають різні аспекти функціональності модуля. Враховуючи різні варіанти
вхідних даних, граничні значення, помилкові ситуації та інші важливі аспекти.
Написані тестові сценарії у вигляді коду перевірятимуть правильність
роботи модуля. Для цього в проекті використовується популярний фреймворк для
модульного тестування, такі як JUnit для Java для зручного написання та
виконання тестів.
Ці кроки мають бути виконанні для інших модулів або компонентів системи
marketplace, щоб переконатися, що кожен з них працює коректно та взаємодіє з
іншими модулями належним чином.
Модульне тестування допомагає забезпечити високу якість окремих
компонентів системи та зменшити ризик виявлення помилок на пізніших етапах
розробки або в експлуатації.
56
ЧДТУ.231919.005 ПЗ
3.6.2 Інтеграційне тестування
Інтеграційне тестування marketplace виконується для перевірки взаємодії
між різними модулями або компонентами системи. Основна мета інтеграційного
тестування полягає в тому, щоб впевнитися, що різні модулі працюють разом
згідно з очікуваннями та вимогами. Основні кроки інтеграційного тестування
marketplace включають:
Визначення сценаріїв взаємодії: Визначивши сценарії, що передбачають
взаємодію між різними модулями або компонентами системи, розглянемо такі
аспекти, як створення замовлення.
Підготовка тестових даних: Підготуйте тестові дані, необхідні для
виконання інтеграційних тестів. Це будуть тестові дані замовлення.
Написання тестових сценаріїв: Напишіть тестові сценарії, які відтворюють
взаємодію між різними модулями або компонентами. Використовуйте
фреймворки для інтеграційного тестування, такі як Selenium, Postman або
RestAssured, для зручного написання та виконання тестів.
Виконання інтеграційних тестів: Запуск інтеграційних тести для перевірки
взаємодії між модулями або компонентами системи. Переконуємось, що всі
тестові сценарії успішно виконуються і взаємодія працює згідно з очікуваннями.
Аналіз результатів:. Виявлені на даному етапі помилки підлагоджуємо та
виправляємо. Впевнившись, що модулі правильно взаємодіють між собою та
відповідають вимогам.
Повторення та розширення тестів: Повторюємо кроки інтеграційного
тестування для різних сценаріїв взаємодії та розширяємо його для перевірки
нових функцій або змін в системі.
Інтеграційне тестування marketplace допомагає виявляти проблеми,
пов'язані з взаємодією між компонентами системи та забезпечує їх сумісність та
правильну роботу.
3.6.3 Приймальне тестування
Проведемо приймальне тестування, шляхом перевірки замовлення товару
57
ЧДТУ.231919.005 ПЗ
покупцем. Обравши необхідний товар і натиснувши на однойменну кнопку
«обрати», клієнту відобразиться сторінка із детальним описом товару та
можливістю вказати кількість товару для покупки (рисунок 3.16).
Рисунок 3.16 – Сторінка попереднього перегляду
Натискаємо кнопку «Додати до кошика», після чого відобразиться сторінка
із вмістом кошика, де ми маємо змогу встановити кількість та підтвердити
замовлення чи взагалі відмінити, видаливши товар із кошика. Перевіримо
функцію оформлення замовлення, натиснувши на кнопку «Підтвердити» (рисунок
3.17).
58
ЧДТУ.231919.005 ПЗ
Рисунок 3.17 – Вікно вмісту кошика
Для підтвердження замовлення необхідно бути авторизованим на сайті.
Після успішного підтвердження замовлення, буде відображений порожній кошик
(рисунок 3.18).
Рисунок 3.18 – Вікно порожнього кошика
Для того щоб переглянути історію своїх замовлень у правій верхній частині
меню натиснемо кнопку «Замовлення» (рисунок 3.19).
Рисунок 3.19 – Вікно замовлення
59
ЧДТУ.231919.005 ПЗ
ВИСНОВКИ
Після аналізу аналогів на ринку програмного забезпечення було виявлено
їхні переваги та недоліки і на основі отриманої при аналізі існуючих систем
інформації розроблено вимоги до web-додатку marketplace.
Зібравши необхідні вимоги, було розроблено архітектуру програмної
системи, дизайн та здійснено програмування функціональних модулів системи.
Після збірки готова система була завантажена на локальний сервер та
протестована на відповідність поставленим вимогам.
Дана система володіє перевагами в порівнянні з наведеними аналогами
маючи мінімалістичний дизайн, що дає змогу збільшити скорість завантаження та
можливість швидко знайти потрібну інформацію не відволікаючись на рекламу.
До недоліків можна віднести відсутність двох етапної авторизації (з прив’язкою
телефону) яка збільшує рівень безпеки.
Отже, в ході виконання бакалаврської роботи було продемонстровано
практичні навички створення та розробки веб-додатку marketplace. Завдяки
використанню сучасних технології, вдалося оптимізувати та покращити процес
розробки програмного забезпечення в даній галузі. Веб-додаток marketplace
готовий для використання, є достатньо гнучким для подальшого супроводу та
удосконалення.
60
ЧДТУ.231919.005 ПЗ
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1 Іванина Р. Маркетплейси - що це таке простими словами [Електронний
ресурс] / Р. Іванина, А. Синявський. – 2023. – Режим доступу до ресурсу:
https://elit-web.ua/ua/blog/chto-takoe-marketplejsy
2 Вікіпедія. Електронний бізнес [Електронний ресурс]. – Режим доступу:
https://uk.wikipedia.org/wiki/Маркетплейс
3 Маркетплейс ROZETKA. [Електронний ресурс]. – Режим доступу:
https://rozetka.com.ua/ua/
4 Маркетплейс Prom. [Електронний ресурс]. – Режим доступу:
https://prom.ua/
5 Маркетплейс Епіцентр. [Електронний ресурс]. – Режим доступу:
https://epicentrk.ua/
6 Лонг Д. Java в хмарі. Spring Boot, Spring Cloud, Cloud Foundry / Лонг Д.,
Бастані К.., 2019. – 624 с.
7 Гутьєррес Феліпе. Spring Boot 2: найкращі практики для професіоналів. /
Ф. Гутьєррес, 2020. – 464 с. – (Бібліотека програміста).
8 Докука О. Практика реактивного програмування у Spring 5 / О. Докука,
І. Лозінський., 2019. – 508 с.
9 Старовойтова Т. Ф. Електронний бізнес та комерція / Т. Ф.
Старовойтова. – К.: ТетраСістемс, 2009. – 144 с.
10 Уоллс К. Spring в дії / Крейг Уоллс., 2022. – 544 с. – (6-е вид.).
11 Яків Файн, Антон Моїсеєв. Angular та TypeScript. Сайтобудування для
професіоналів. / Файн Я., Моїсеєв А.., 2018. – 464 с.
12 Вадим Станкевич. Знайомимся з Spring Framework [Електронний
ресурс]. – Режим доступу: http://www.kv.by/index2009291108.htm
13 Артем Бородін. Spring framework [Електронний ресурс]. – Режим
доступу: http://www.spring-source.ru
14 Вікіпедія. Архітектура клієнт-сервер. [Електронний ресурс]. – Режим
доступу: https://uk.wikipedia.org/wiki/Клієнт-серверна_архітектура
61
ЧДТУ.231919.005 ПЗ
15 Вікіпедія. Мова програмування TypeScript [Електронний ресурс]. –
Режим доступу: https://uk.wikipedia.org/wiki/TypeScript
16 Система питань і відповідей про програмування [Електронний ресурс]. –
Режим доступу: http://stackoverflow.com/
17 Керівництво по Hibernate [Електронний ресурс]. – Режим доступу:
http://www.tutorialspoint.com/hibernate/
18 Публікація по Spring 3 MVC + Spring Security + Hibernate [Електронний
ресурс]. – Режим доступу: http://habrahabr.ru/post/111102/
19 Вікіпедія. Формат даних JSON [Електронний ресурс]. – Режим доступу:
http://uk.wikipedia.org/wiki/JSON
20 Dependency injection шаблон проектування. Матеріал з вікіпедії
[Електронний ресурс] Режим доступу:
http://en.wikipedia.org/wiki/Dependency_injection
62
ЧДТУ.231919.005 ПЗ
Додаток А. Специфікація
63
Додаток Б. Лістинг програми
64
Додаток В. Інструкція користувачеві
78
Додаток Г. Графічні матеріали
88
86