Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал: https://er.chdtu.edu.ua/handle/ChSTU/5465
Повний запис метаданих
Поле DCЗначенняМова
dc.contributor.advisorРудницький, Сергій Володимирович-
dc.contributor.authorОсипенко, Артем Олександрович-
dc.date.accessioned2025-02-28T08:53:30Z-
dc.date.available2025-02-28T08:53:30Z-
dc.date.issued2023-06-14-
dc.identifier.urihttps://er.chdtu.edu.ua/handle/ChSTU/5465-
dc.description.abstractУ сучасному цифровому світі, де технології невпинно розвиваються, електронна комерція стає все більш популярною. З кожним роком зростає кількість людей, які здійснюють покупки онлайн, зокрема комп'ютерної техніки. Це створює необхідність у веб-ресурсах, що забезпечують зручний і безпечний доступ до широкого асортименту комп'ютерної техніки для покупців. У цьому контексті, метою даної кваліфікаційної роботи бакалавра є проектування та розробка серверної частини веб-ресурсу з продажу комп'ютерної техніки. Для досягнення цієї мети була використана технологія Nest.js, яка надає потужні інструменти для розробки сучасних веб-додатків. Об’єктом дослідження є серверна частина веб-ресурсу з продажу комп’ютерної техніки. Предмет дослідження: технології, методи та інструменти, використовувані при розробці серверної частини веб-ресурсу, зокрема бази даних, безпека, забезпечення швидкодії та масштабованості та інші аспекти, необхідні для успішної реалізації функцій продажу комп'ютерної техніки через веб-ресурс. Враховуючи постійний розвиток електронної комерції та зростаючу популярність онлайн-покупок, цей проект є актуальним та значущим. Результати, отримані в кваліфікаційній роботі бакалавра, можуть бути використані для подальшого розвитку та удосконалення веб-ресурсу «CompShop». Метою кваліфікаційної роботи бакалавра є проектування та розробка серверної частини веб-ресурсу для продажу комп'ютерної техніки. Для досягнення цієї мети була використана технологія Nest.js, яка надає потужні інструменти для розробки сучасних веб-додатківuk_UA
dc.language.isoukuk_UA
dc.subjectпроектуванняuk_UA
dc.subjectNest.jsuk_UA
dc.subjectрозробкаuk_UA
dc.subjectвеб-ресурсиuk_UA
dc.subjectсерверuk_UA
dc.titleСерверна частина WEB-ресурсу з продажу комп’ютерної технікиuk_UA
dc.typeBachelor Thesisuk_UA
Розташовується у зібраннях:126 Інформаційні системи та технології (Web-технології, web-дизайн)

Файли цього матеріалу:
Файл Опис РозмірФормат 
РЕП_БАК_Осипенко_WebC-2111.pdf
  Restricted Access
Серверна частина WEB-ресурсу з продажу комп’ютерної техніки3.03 MBAdobe PDFПереглянути/Відкрити    Запит копії


Усі матеріали в архіві електронних ресурсів захищено авторським правом, усі права збережено.

Extracted text
  
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ 
КАФЕДРА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ ПРОЕКТУВАННЯ 
 
ПОЯСНЮВАЛЬНА ЗАПИСКА 
до кваліфікаційної роботи бакалавра 
на тему: «Серверна частина WEB-ресурсу з продажу комп’ютерної техніки» 
Виконав: здобувач першого 
(бакалаврського) рівня вищої освіти 
4 курсу, групи WebС-2111 
Спеціальності 126 Інформаційні системи 
та технології 
ОП «Web-технології, Web-дизайн» 
Осипенко Артем Олександрович 
Керівник: к.т.н. доцент кафедри ІПТ 
Рудницький Сергій Володимирович 
Рецензент: к.т.н., доцент кафедри техніки 
та засобів цивільного захисту Черкаський 
інститут пожежної безпеки імені Героїв 
Чорнобиля Національного університету 
цивільного захисту України Мельник 
Руслан Павлович 
Черкаси 2023 
  
 
 
  
  
ЗМІСТ 
 
ВСТУП .............................................................................................................................. 4 
РОЗДІЛ 1. АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ............................................................ 7 
1.1 Аналіз предметної області .................................................................................... 7 
1.2 Огляд існуючих аналогів і їх порівняння .......................................................... 10 
1.3 Постановка задачі ................................................................................................ 20 
Висновки до розділу 1 ............................................................................................... 21 
РОЗДІЛ 2. ПРОЕКТУВАННЯ BACKEND ЧАСТИНИ ВЕБ РЕСУРСУ ................. 22 
2.1 Аналіз та вибір мови програмування ................................................................. 22 
2.2 Аналіз та вибір програмних засобів ................................................................... 27 
2.3 Опис фреймворків, які можуть використовуватись ......................................... 31 
2.4 Проектування архітектури backend частини сайту .......................................... 35 
2.5 Проектування бази даних .................................................................................... 37 
Висновки до розділу 2 ............................................................................................... 41 
РОЗДІЛ 3. РЕАЛІЗАЦІЯ WEB-РЕСУРСУ З ПРОДАЖУ КОМП’ЮТЕРНОЇ  
ТЕХНІКИ ........................................................................................................................ 43 
3.1 Реалізація бази даних ........................................................................................... 43 
3.2 Реалізація бекенду користувацької частини ..................................................... 45 
1.3 Реалізація бекенду адмінської частини ............................................................. 51 
Висновки до розділу 3 ............................................................................................... 53 
ВИСНОВКИ ................................................................................................................... 54 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ..................................................................... 56 
ДОДАТОК А .................................................................................................................. 56 
ДОДАТОК Б ................................................................................................................... 58 
 
 
 
 
СПИСОК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ 
 
ІТ – інформаційні технології; 
БД – база даних; 
СУБД – система управління базами даних; 
MVC – Model-View-Controller (Модель–вигляд–контролер); 
SQL – Structured Query Language (декларативна мова програмування); 
API – Application Programming Interface (Прикладний програмний інтерфейс); 
HTTP – Назва скорочена від HyperText Transfer Protocol, протокол передачі 
гіпертекстових документів; 
IDE – Integrated development environment (Інтегроване середовище розробки); 
URL-адрес – Uniform Resource Locator (Уніфікований вказівник ресурсу); 
npm – Node Package Manager (менеджер пакетів, що входить до складу Node.js). 
  
     Лист 
     ЧДТУ 232231.004 ПЗ 
3 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
ВСТУП 
 
 
У сучасному цифровому світі, де технології невпинно розвиваються, 
електронна комерція стає все більш популярною. З кожним роком зростає кількість 
людей, які здійснюють покупки онлайн, зокрема комп'ютерної техніки. Це створює 
необхідність у веб-ресурсах, що забезпечують зручний і безпечний доступ до 
широкого асортименту комп'ютерної техніки для покупців. 
У цьому контексті, метою даної кваліфікаційної роботи бакалавра є 
проектування та розробка серверної частини веб-ресурсу з продажу комп'ютерної 
техніки. Для досягнення цієї мети була використана технологія Nest.js, яка надає 
потужні інструменти для розробки сучасних веб-додатків. 
Об’єктом дослідження є серверна частина веб-ресурсу з продажу 
комп’ютерної техніки. 
Предмет дослідження: технології, методи та інструменти, використовувані 
при розробці серверної частини веб-ресурсу, зокрема бази даних, безпека, 
забезпечення швидкодії та масштабованості та інші аспекти, необхідні для 
успішної реалізації функцій продажу комп'ютерної техніки через веб-ресурс. 
Враховуючи постійний розвиток електронної комерції та зростаючу 
популярність онлайн-покупок, цей проект є актуальним та значущим. Результати, 
отримані в кваліфікаційній роботі бакалавра, можуть бути використані для 
подальшого розвитку та удосконалення веб-ресурсу «CompShop». 
Метою кваліфікаційної роботи бакалавра є проектування та розробка 
серверної частини веб-ресурсу для продажу комп'ютерної техніки. Для досягнення 
цієї мети була використана технологія Nest.js, яка надає потужні інструменти для 
розробки сучасних веб-додатків. 
Для досягнення поставленої мети в кваліфікаційній роботі бакалавра треба 
виконати наступні завдання: 
- аналіз предметної області; 
- огляд існуючих аналогів і їх порівняння; 
     Лист 
     ЧДТУ 232231.004 ПЗ 
4 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
- постановка задачі; 
- аналіз та вибір мови програмуванн; 
- аналіз та вибір програмних засобів; 
- опис фреймворків, які можуть використовуватись; 
- проектування архітектури backend частини сайту; 
- проектування бази даних; 
- реалізація бази даних; 
- реалізація бекенду користувацької частини; 
- реалізація бекенду адмінської частини. 
Nest.js є прогресивним фреймворком для побудови ефективних та 
масштабованих серверних додатків на основі Node.js. Він використовує принципи 
архітектури Model-View-Controller (MVC) та забезпечує розподілену структуру, 
модульність, ефективну обробку запитів та високий рівень надійності. Завдяки цим 
перевагам, Nest.js є ідеальним вибором для створення серверної частини 
«CompShop», яка має задовольнити потреби сучасних інтернет-магазинів. 
У цій роботі будуть розглянуті основні етапи проектування та розробки 
серверної частини «CompShop» з використанням Nest.js. Буде досліджено 
архітектурні рішення, способи взаємодії з базою даних, реалізацію механізму 
аутентифікації та авторизації користувачів, а також інтеграцію зовнішніх сервісів, 
необхідних для реалізації функціональності «CompShop». 
Окрім того, будуть розглянуті питання забезпечення безпеки даних та 
захисту від різних видів атак, а також шляхи оптимізації продуктивності веб-
ресурсу для забезпечення швидкого та ефективного обслуговування клієнтів. 
Результати цієї кваліфікаційної роботи бакалавра будуть сприяти 
подальшому розвитку електронної комерції та забезпечать надійну та 
функціональну серверну частину для веб-ресурсу «CompShop». 
Таким чином, дана робота висвітлює важливі аспекти проектування та 
розробки серверної частини веб-ресурсів з використанням технології Nest.js. 
Досліджуються архітектурні рішення, робота з базою даних, механізми 
     Лист 
     ЧДТУ 232231.004 ПЗ 
5 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
аутентифікації та авторизації, інтеграція зовнішніх сервісів, забезпечення безпеки 
та оптимізація продуктивності. 
Використання Nest.js дозволяє створити потужну, масштабовану та надійну 
серверну частину «CompShop», яка забезпечує зручну та безпечну платформу для 
продажу комп'ютерної техніки онлайн. Цей веб-ресурс надає можливість покупцям 
легко знаходити та замовляти необхідну техніку, а також забезпечує 
адміністраторам ефективний інструментарій для керування та аналізу продажів. 
Враховуючи постійний розвиток електронної комерції та зростаючу 
популярність онлайн-покупок, цей проект є актуальним та значущим. Результати 
досліджень та розробки, які будуть представлені в даній роботі, можуть бути 
використані для подальшого розвитку та удосконалення веб-ресурсу «CompShop», 
а також можуть послужити вихідним пунктом для подальших наукових досліджень 
у цій області. 
Отже, дана кваліфікаційна робота бакалавра пропонує глибоке дослідження 
та практичне застосування технології Nest.js для проектування та розробки 
серверної частини різноманітних веб-ресурсів. 
  
     Лист 
     ЧДТУ 232231.004 ПЗ 
6 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
РОЗДІЛ 1. АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ 
 
 
1.1 Аналіз предметної області 
 
Проектування та розробка серверної частини WEB-ресурсу з продажу 
комп'ютерної техніки – це процес створення і налаштування інфраструктури, 
необхідної для роботи онлайн-магазину комп'ютерної техніки. Ця серверна частина 
включає в себе низку компонентів і технологій, які забезпечують оптимальну 
функціональність та безпеку веб-ресурсу. 
Основні етапи проектування та розробки серверної частини WEB-ресурсу з 
продажу комп'ютерної техніки включають: 
1. Вибір технологічного стеку: на цьому етапі визначається набір технологій, 
які будуть використовуватися для розробки серверної частини. Це можуть бути 
мови програмування, такі як Python, Java або JavaScript, фреймворки, такі як Django 
або Ruby on Rails, бази даних, такі як MySQL або PostgreSQL, а також інші 
інструменти та сервіси, що підходять для потреб проекту. 
2. Архітектура системи: визначається загальна архітектура системи, яка 
описує взаємодію різних компонентів серверної частини. Зазвичай це означає 
розділення функцій на окремі модулі, такі як модуль для каталогу товарів, модуль 
для обробки замовлень, модуль для авторизації користувачів і т.д. Також 
враховуються питання масштабованості, надійності та безпеки системи. 
3. Розробка бази даних: створюється база даних для зберігання інформації 
про товари, замовлення, користувачів та іншу необхідну інформацію. Дизайн бази 
даних повинен відповідати вимогам проекту і забезпечувати ефективну роботу з 
даними. 
4. Розробка серверної логіки: на цьому етапі розробляються серверні 
компоненти, які забезпечують основну логіку роботи ресурсу. Це можуть бути 
     Лист 
     ЧДТУ 232231.004 ПЗ 
7 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
контролери, які обробляють HTTP-запити, сервіси, що виконують бізнес-логіку, 
інтерфейси до бази даних та інші компоненти, необхідні для роботи системи. 
5. Розробка API: для взаємодії з клієнтською частиною WEB-ресурсу може 
бути розроблено API (інтерфейс програмування додатків). Цей API дозволяє 
отримувати інформацію про товари, робити замовлення, отримувати статистику і 
т.д. API може бути розроблено за допомогою REST або GraphQL протоколів. 
6. Інтеграція з платіжними системами: якщо ресурс передбачає онлайн-
продажі, то необхідно інтегрувати його з платіжними системами, щоб забезпечити 
оплату замовлень. Це може включати інтеграцію з платіжними шлюзами, такими 
як PayPal або Stripe, а також реалізацію функцій обробки платежів та повернення 
коштів. 
7. Тестування та оптимізація: після розробки серверної частини важливо 
провести ретельне тестування, щоб переконатися в її працездатності, надійності та 
безпековості. Також можуть бути виконані оптимізації для поліпшення 
продуктивності та швидкодії системи. 
8. Розгортання та підтримка: після успішного завершення розробки серверної 
частини ресурсу, вона може бути розгорнута на серверах або в хмарному 
середовищі. Після цього необхідно забезпечити підтримку і обслуговування 
серверної частини, включаючи моніторинг, виявлення та виправлення помилок, 
оновлення компонентів і т.д. 
 
 
Рисунок 1.1 – Схема REST-API 
     Лист 
     ЧДТУ 232231.004 ПЗ 
8 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
В цілому, проектування та розробка серверної частини WEB-ресурсу з 
продажу комп'ютерної техніки є складним процесом, який вимагає глибоких знань 
програмування, баз даних, мережевих технологій та безпеки. Ефективна серверна 
частина дозволить створити потужний та надійний онлайн-магазин, який 
забезпечить зручне та безпечне замовлення комп'ютерної техніки для користувачів. 
На сьогоднішній день e-commerce є дуже важливим для продажу 
комп'ютерної техніки. Ось кілька причин, чому e-commerce є необхідним для 
бізнесу, що спеціалізується на продажу комп'ютерної техніки [1]: 
− Глобальний ринок: E-commerce дозволяє розширити свій ринок і 
привернути клієнтів з усього світу. Магазин не обмежений географічними межами 
і можете пропонувати свої товари і послуги широкому колу клієнтів. 
− Зручність для покупців: Завдяки e-commerce, клієнти можуть переглядати 
і купувати комп'ютерну техніку в будь-який зручний для них час і місце. Вони 
можуть легко порівняти ціни, характеристики та відгуки про товари, що допомагає 
їм прийняти інформоване рішення при покупці. 
− Можливість персоналізації: За допомогою e-commerce можна надати 
персоналізований підхід до своїх клієнтів. Можна пропонувати рекомендації щодо 
товарів, враховуючи їхній попередній досвід покупок або індивідуальні 
вподобання. 
− Розширені можливості маркетингу: E-commerce надає широкі можливості 
для маркетингу та реклами. Можна використовувати цифрові канали, такі як 
соціальні медіа, електронна пошта та контекстна реклама, для привертання нових 
клієнтів і збільшення продажів. 
− Аналітика та оптимізація: E-commerce дозволяє збирати дані про 
поведінку своїх клієнтів, їхні вподобання та покупкові звички. Ці дані можна 
використовувати для аналізу та оптимізації бізнесу, зокрема для удосконалення 
асортименту товарів, пристосування пропозицій та покращення взаємодії з 
клієнтами. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
9 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Враховуючи ці переваги, e-commerce є необхідним для ефективного продажу 
комп'ютерної техніки і забезпечує можливість конкурувати на ринку і 
задовольняти потреби сучасних покупців. 
 
1.2 Огляд існуючих аналогів і їх порівняння 
 
Rozetka.com.ua (рисунок 1.2) – також відома просто як «Розетка», є одним з 
найбільших онлайн-роздрібних майданчиків в Україні. Вона була запущена у 2005 
році і з того часу стала одним з провідних електронних магазинів в країні [2]. 
Розетка пропонує широкий асортимент товарів, включаючи електроніку, 
комп'ютери, побутову техніку, мобільні телефони, планшети, одяг, косметику, 
товари для дому, іграшки та багато іншого. Сайт має зручний і легкий у 
використанні інтерфейс, що дозволяє покупцям легко знайти потрібний товар і 
оформити замовлення. 
Однією з ключових особливостей Розетки є велика кількість відгуків і 
рейтингів користувачів для багатьох товарів. Це допомагає покупцям зробити 
обґрунтований вибір, оцінивши думки і досвід інших покупців. Розетка також 
пропонує швидку доставку по всій Україні. Вони співпрацюють з багатьма 
кур'єрськими службами, що дозволяє забезпечити доставку замовлень у 
максимально короткі терміни. Крім того, є можливість самовивозу замовлень з 
пунктів видачі, розташованих у різних містах. 
Окрім роздрібного бізнесу, Розетка також має власну мережу фізичних 
магазинів, де клієнти можуть оглянути та придбати товари особисто. Це дозволяє 
покупцям отримати додаткову інформацію про товар та скористатися послугами 
продавців-консультантів. Rozetka.com.ua заслужила популярність серед 
українських споживачів завдяки своєму широкому асортименту товарів, високій 
якості обслуговування та зручному сервісу. Вона продовжує розвиватися і 
вдосконалювати свої послуги, щоб задовольнити потреби своїх клієнтів. 
 
     Лист 
     ЧДТУ 232231.004 ПЗ 
10 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
 
Рисунок 1.2 – Головна сторінка сайту «rozetka.com.ua» 
 
Функціонал: 
− Потужний пошуковий двигун, який дозволяє користувачам швидко 
знайти потрібний товар. Можна використовувати фільтри, щоб обмежити 
результати за категоріями, цінами, брендами, рейтингами тощо. 
− Широкий асортимент товарів, які розподілені за категоріями. Можна 
легко переглянути різні категорії, включаючи електроніку, побутову техніку, одяг, 
косметику, іграшки та інші. 
− Наявність відгуків і рейтингів користувачів для багатьох товарів. Можна 
переглянути думки і досвід інших покупців, щоб зробити обґрунтований вибір при 
покупці. 
− Кошик покупок: є вбудована функція кошика, де можна додавати товари, 
які потрібно придбати. Можна легко керувати своїми покупками, додавати або 
видаляти товари, а також змінювати їх кількість. 
− Можна оформити замовлення на сайті. Після оформлення буде 
запропоновано вибрати зручний спосіб доставки та сплати, ввести необхідну 
інформацію для доставки та здійснити оплату. 
− Розетка пропонує швидку доставку по всій Україні. Вони співпрацюють 
з кур'єрськими службами, що дозволяє забезпечити доставку замовлень у 
     Лист 
     ЧДТУ 232231.004 ПЗ 
11 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
максимально короткі терміни. Також є можливість самовивозу замовлень з пунктів 
видачі, розташованих у різних містах. 
− Можливість обміну або повернення товару у випадку, якщо він не 
задовольнив очікування або має дефекти. Є певні умови та терміни для здійснення 
таких дій. 
Вигляд сторінки товару показано на рисунку 1.3. 
 
 
Рисунок 1.3 – Сторінка товару на сайті «rozetka.com.ua» 
 
Foxtrot.com.ua (рисунок 1.4) – є одним з найбільших роздрібних майданчиків 
в Україні, спеціалізуючимся на електроніці, побутовій техніці, комп'ютерах, 
гаджетах та інших товарах для дому. Він був запущений у 1999 році і з того часу 
зарекомендував себе як надійний та популярний онлайн-магазин [3]. 
Foxtrot пропонує широкий вибір продукції від провідних брендів. Можна 
знайти тут товари різних категорій, включаючи мобільні телефони, ноутбуки, 
телевізори, фотоапарати, планшети, побутову техніку, аксесуари та багато іншого. 
Сайт Foxtrot.com.ua має зручний і простий у використанні інтерфейс, що 
дозволяє швидко знайти потрібний товар і здійснити покупку. Можна 
     Лист 
     ЧДТУ 232231.004 ПЗ 
12 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
використовувати фільтри для обмеження результатів пошуку за ціною, брендом, 
характеристиками товару тощо. Крім того, Foxtrot надає різні способи доставки 
замовлень, включаючи кур'єрську доставку, самовивіз з магазину та доставку 
поштою. Також є можливість повернення або обміну товару у випадку, якщо він не 
задовольнив ваші очікування або має дефекти. 
Foxtrot також має фізичні магазини, розташовані у різних містах України, де 
можна оглянути товари особисто та скористатися послугами продавців-
консультантів. Загалом, Foxtrot.com.ua є відомим онлайн-магазином в Україні, який 
пропонує широкий вибір товарів, зручний сервіс та доставку по всій країні. 
 
 
Рисунок 1.4 – Головна сторінка магазину «foxtrot.com.ua» 
 
Серед товарів, які пропонує «Фокстрот», можна знайти: 
− Електроніка: широкий вибір електронних пристроїв, включаючи мобільні 
телефони, смартфони, ноутбуки, планшети, комп'ютери, принтери, фото- та 
відеокамери, аудіотехніку, геймінгові приставки та аксесуари до них. 
− Побутова техніка: широкий вибір побутової техніки, такої як пральні 
машини, холодильники, мікрохвильові печі, пилососи, кавоварки, кухонні 
прилади, кондиціонери, обігрівачі та багато іншого. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
13 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
− Телевізори та аудіо-відео техніка: вибір телевізорів різних розмірів та 
технологій, а також аудіотехніки, включаючи акустичні системи, гарнітури, 
домашні кінотеатри, Blu-ray плеєри та інше. 
− Краса та здоров'я: товари для догляду за шкірою, волоссям, макіяжу, 
парфуми, а також медичні прилади, вітаміни та додатки до харчування для 
збереження здоров'я. 
− Товари для дому: великий вибір товарів для дому, таких як меблі, 
побутова хімія, посуд, предмети інтер'єру, освітлення, садова техніка та багато 
іншого. 
− Автомобільні товари: аксесуари для автомобілів, автомобільну 
електроніку, аудіосистеми, автопилососи, шини, масла та інші товари для 
автомобілістів. 
Сторінка товару представлена на рисунку 1.5. 
 
 
Рисунок 1.5 – Сторінка товару в магазині «foxtrot.com.ua» 
 
Eldorado.ua (рисунок 1.6) є одним з найвідоміших роздрібних майданчиків в 
Україні, спеціалізуючимся на продажу електроніки, побутової техніки, 
комп'ютерів, мобільних пристроїв та багатьох інших товарів для дому та розваг. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
14 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Eldorado позиціонує себе як надійного та професійного продавця електроніки 
та побутової техніки, забезпечуючи якісні товари та задоволення потреб своїх 
клієнтів. Основна мета компанії – задовольнення потреб клієнтів і надання їм 
високоякісного обслуговування [4]. 
 
Рисунок 1.6 – Головна сторінка сайту «eldorado.ua» 
 
Особливості та переваги Ельдорадо: 
− Розмаїття товарів різних категорій, включаючи електроніку, побутову 
техніку, комп'ютери, мобільні пристрої, розважальні приставки, товари для дому та 
багато іншого. Можна знайти продукцію від відомих брендів та варіанти для різних 
бюджетів. 
− Працює як онлайн-магазин, так і має фізичні магазини, розташовані у 
різних містах України. Це дає можливість клієнтам обирати зручний для них спосіб 
покупки - онлайн або особисте відвідування магазину. 
− Ельдорадо пропонує різні варіанти доставки, включаючи кур'єрську 
доставку, самовивіз з магазинів і доставку поштою. Компанія намагається 
забезпечити як найшвидшу, так і надійну доставку замовлень своїм клієнтам. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
15 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
− Магазин надає гарантію на багато товарів і забезпечує післяпродажне 
обслуговування. У разі необхідності, можна звернутися до сервісного центру 
компанії для ремонту або обслуговування продукту. 
− Ельдорадо запускає різні програми лояльності та акції, які дозволяють 
клієнтам зекономити гроші та отримати додаткові переваги під час покупок. 
На сайті Eldorado.ua можна знайти широкий асортимент товарів різних 
категорій. Ось кілька основних категорій товарів, які доступні на цьому магазині: 
− Вибір електронних пристроїв, включаючи мобільні телефони, смартфони, 
ноутбуки, планшети, комп'ютери, телевізори, фото- та відеокамери, аудіотехніку, 
геймінгові приставки та багато іншого. 
− Широкий вибір побутової техніки, включаючи пральні машини, 
холодильники, пилососи, плити, мікрохвильові печі, кавоварки, обігрівачі та багато 
іншого. 
− Комп'ютери та аксесуари: Eldorado пропонує комп'ютери, ноутбуки, 
монітори, принтери, сканери, аксесуари для комп'ютерів та периферійні пристрої. 
− Мобільні пристрої та аксесуари, включаючи чохли, захисні плівки, 
зарядні пристрої, гарнітури та інше. 
− Eldorado також пропонує товари для дому, такі як меблі, освітлення, 
посуд, постільна білизна, предмети інтер'єру, садові товари та інші товари для 
побуту. 
− Можна придбати геймінгові приставки, відеоігри, аксесуари для гри, 
аудіотехніку для розваг та багато іншого. 
Сторінка товару представлена на рисунку 1.7. 
 
     Лист 
     ЧДТУ 232231.004 ПЗ 
16 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
 
Рисунок 1.7 – Сторінка товару на сайті «eldorado.ua» 
F.ua (Fotos, рисунок 1.8) є одним з найпопулярніших українських інтернет-
магазинів, який спеціалізується на продажу електроніки, побутової техніки та 
фототехніки. Цей магазин відомий своїм великим асортиментом товарів, які 
охоплюють різні категорії, такі як фотокамери, об'єктиви, відеокамери, смартфони, 
комп'ютери, планшети, побутова техніка, аксесуари та багато іншого [5]. 
 
 
Рисунок 1.8 – Головна сторінка сайту «f.ua» 
 
     Лист 
     ЧДТУ 232231.004 ПЗ 
17 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Fotos має декілька розділів, які допомагають покупцям зорієнтуватися в 
асортименті та зробити правильний вибір. Це включає розділи з оглядами та 
рейтингами товарів, порадами щодо вибору, популярними моделями, новинами 
технологій та статтями про різні аспекти електроніки. Крім того, на сайті можна 
знайти відгуки покупців, що допомагають зробити усвідомлений вибір. 
Магазин прагне забезпечити зручний та безпечний процес покупки. 
Користувачі мають можливість порівнювати ціни та характеристики різних 
товарів, докладно ознайомлюватися з їхніми характеристиками та відгуками, а 
також замовляти товари онлайн. Цей інтернет-магазин завоював довіру багатьох 
покупців завдяки своїй надійності, якісному обслуговуванню та широкому вибору 
товарів. F.ua (Fotos) є відомою назвою в українському електронному ринку, і він 
продовжує розвиватися, пропонуючи нові продукти та послуги для задоволення 
потреб клієнтів. 
Fotos надає різні способи оплати, такі як готівка при отриманні, онлайн-
платежі, оплата банківською карткою. Доступні різні варіанти доставки, 
включаючи кур'єрську доставку та самовивіз. 
Вигляд сторінки товару показано на рисунку 1.9. 
 
 
Рисунок 1.9 – Вигляд сторінки товару на сайті «f.ua» 
     Лист 
     ЧДТУ 232231.004 ПЗ 
18 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
В таблиці 1.1 порівняно переглянуті магазини. В результаті порівняння 
виявляється, що не один магазин не є ідеальним. 
 
Таблиця 1.1 – Порівняння аналогів (за 5-ти бальною шкалою) 
 Карта сайту Форма зворотного Розширене Програми 
 зв'язку оцінювання товару лояльності 
Brain Добре Форма зв'язку з Кількість оглядів Програми 
структурована підтримкою та оцінок товарів лояльності 
карта сайту дозволяє зручно може бути можуть бути 
полегшує пошук ставити питання обмеженою або діючими 
інформації і та надавати недостатньою. 
товарів. пропозиції. 
Compx Зручна карта Доступна форма Обмежена Програма 
сайту сприяє зворотного зв'язку кількість оглядів лояльності надає 
швидкому дозволяє клієнтам та оцінок товарів постійним 
орієнтуванню зручно звертатися може обмежити клієнтам 
користувачів і до служби доступну можливість 
допомагає знайти підтримки та інформацію для отримувати 
потрібні розділи отримувати прийняття знижки, бонуси та 
та товари. відповіді на рішення про спеціальні акції 
 запитання. покупку. 
Kvshop Доступна карта Зручна форма Не завжди є Програми 
сайту допомагає зворотного зв'язку достатня кількість лояльності 
легко навігувати дозволяє клієнтам розгорнутих можуть бути 
по різних швидко відгуків та оцінок діючими і 
розділах і звернутися до для оцінки товару надавати переваги 
знаходити служби підтримки або послуги постійним 
потрібні товари. та отримати повністю.. клієнтам 
відповіді на свої 
запитання. 
Telemart Зрозуміла карта Доступна зручна Обсяг розгорнутих Можуть бути 
сайту спрощує форма зворотного оглядів та оцінок програми 
навігацію та зв'язку дозволяє товарів може бути лояльності. 
допомагає з клієнтам обмеженим або 
легкістю знайти звертатися до невеликим. 
потрібні розділи служби підтримки 
та товари. та отримувати 
відповіді на свої 
запитання. 
CompShop Карта сайту Форма зворотного Розгорнуті огляди Крута програма 
сприяє легкому зв'язку дозволяє та оцінки товарів, лояльності, яка 
орієнтуванню клієнтам легко які надаються надає клієнтам 
клієнтів в зв'язатися зі довірливими багато переваг. 
широкому службою користувачами та 
асортименті підтримки для експертами. 
товарів. отримання 
допомоги та 
вирішення своїх 
питань. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
19 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
1.3 Постановка задачі 
 
Задача проектування та розробки серверної частини WEB-ресурсу 
«CompShop» з продажу комп'ютерної техніки полягає у створенні функціонального 
та ефективного серверного середовища, що забезпечує взаємодію з клієнтськими 
пристроями та забезпечує надійну та безперебійну роботу веб-ресурсу для продажу 
комп'ютерної техніки. 
Постановка задачі включає наступні аспекти: 
1. Проведення детального аналізу функціональних та нефункціональних 
вимог до серверної частини «CompShop». Це включає вивчення потреб 
користувачів, вимог до безпеки, швидкодії, масштабованості, доступності та інших 
ключових параметрів системи. 
2. Розробка архітектурного рішення для серверної частини «CompShop». Це 
включає визначення компонентів, модулів та їх взаємодії, розробку схеми бази 
даних, вибір технологій розробки та розподіл завдань між ними. 
3. Реалізація необхідних функціональних модулів серверної частини 
«CompShop», таких як обробка запитів користувачів, управління базою даних, 
авторизація та аутентифікація, операції замовлення, розрахунок вартості та інші. 
При розробці слід керуватися принципами безпеки, швидкодії та масштабованості. 
4. Можливе забезпечення інтеграції серверної частини «CompShop» з іншими 
системами, такими як система керування запасами, система оплати, система 
доставки тощо. Це включає розробку API та механізмів комунікації з іншими 
сервісами. 
5. Проведення тестування розроблених серверних модулів для перевірки 
їхньої функціональності, безпеки та відповідності вимогам. Виявлені помилки 
повинні бути виправлені, а розроблені модулі – налагоджені. 
 
 
     Лист 
     ЧДТУ 232231.004 ПЗ 
20 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Висновки до розділу 1 
 
В даному розділі проведено аналіз предметної області, оглянуто існуючі 
аналоги веб-ресурсів, спрямованих на продаж комп'ютерної техніки, такі як 
rozetka.com.ua, foxtrot.com.ua, eldorado.ua та f.ua, а також порівняння їх 
функціональності та особливостей. 
Аналіз предметної області дозволив отримати розуміння про характеристики 
та основні вимоги до серверної частини веб-ресурсу з продажу комп'ютерної 
техніки. Враховуючи специфіку такого ресурсу, вимоги включають швидкодію, 
безпеку, масштабованість, зручний інтерфейс та ефективне керування товарами та 
замовленнями. 
Під час огляду існуючих аналогів були виявлені певні схожості та 
відмінності. Кожен з розглянутих веб-ресурсів має свої особливості щодо дизайну, 
функціональності та способу презентації товарів. Розетка, Foxtrot, Eldorado та f.ua 
є популярними і впізнаваними брендами в Україні і мають широкий асортимент 
товарів для продажу. Крім того, вони надають додаткові послуги, такі як доставка, 
гарантія, обмін товару тощо. 
На підставі проведеного аналізу можна зробити висновок, що існуючі 
аналоги успішно функціонують на ринку, але мають свої переваги та недоліки. Це 
створює можливості для проектування та розробки нової серверної частини WEB-
ресурсу «CompShop», яка буде поєднувати кращі риси існуючих рішень та 
додавати унікальні функціональні можливості, щоб забезпечити зручну та 
ефективну платформу для продажу комп'ютерної техніки. 
 
  
     Лист 
     ЧДТУ 232231.004 ПЗ 
21 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
РОЗДІЛ 2. ПРОЕКТУВАННЯ BACKEND ЧАСТИНИ ВЕБ РЕСУРСУ 
 
 
2.1 Аналіз та вибір мови програмування 
 
При виборі мови програмування для розробки серверної частини веб-ресурсу 
магазину є кілька факторів, які варто враховувати. Популярних мов програмування, 
які часто використовуються для цієї цілі: 
PHP (рисунок 2.1) – є однією з найпоширеніших мов програмування для веб-
розробки. Вона має велику спільноту розробників та багатий вибір фреймворків, 
таких як Laravel та Symfony, спеціально розроблених для розробки магазинів. PHP 
зручно використовувати з базами даних, такими як MySQL, що часто 
використовуються у веб-ресурсах магазинів. PHP є потужним та гнучким 
інструментом для розробки серверної частини веб-ресурсу магазину з широким 
спектром можливостей та підтримкою великої спільноти розробників [6]. 
 
 
Рисунок 2.1 – Вигляд синтаксису мови PHP 
     Лист 
     ЧДТУ 232231.004 ПЗ 
22 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
1. PHP має простий синтаксис, який нагадує C-подібні мови програмування. 
Це робить її досить легкою для вивчення та початку роботи. 
2. PHP має велику та активну спільноту розробників, яка надає безліч 
розширень та бібліотек для використання. Це означає, що можна легко знайти 
готові рішення для багатьох типових задач веб-розробки. 
3. Вбудована підтримка баз даних, таких як MySQL, PostgreSQL, SQLite і 
багато інших. Це дозволяє легко працювати з даними та здійснювати базові 
операції з базами даних. 
4. Розширені можливості веб-розробки: PHP дозволяє створювати динамічні 
веб-сторінки, обробляти форми, робити запити до сервера, взаємодіяти з базою 
даних та створювати власні функції та бібліотеки. Можна створювати розширені 
функціональність, таку як авторизація користувачів, керування кошиком покупок 
та оплати, створення API для зовнішніх служб і багато іншого. 
5. Підтримка фреймворків: PHP має розширену екосистему фреймворків, 
таких як Laravel, Symfony, CodeIgniter, Yii і Zend Framework, які спрощують 
розробку веб-додатків. Ці фреймворки надають готові компоненти та шаблони, які 
допомагають підвищити продуктивність, забезпечити безпеку та структурувати 
ваш код. 
6. Портативність: PHP можна використовувати на багатьох різних 
платформах, таких як Windows, Linux і MacOS, та забезпечує сумісність з різними 
веб-серверами, такими як Apache і Nginx. 
7. Безпека: PHP має ряд вбудованих заходів безпеки, які дозволяють 
запобігати загрозам безпеки, таким як SQL-ін'єкції та хакерські атаки [22]. 
Java (рис. 2.2) є однією з найпопулярніших мов програмування, яка широко 
використовується для розробки різноманітних програм та додатків. Крім цього, 
Java є потужною та універсальною мовою програмування, яка підходить для 
розробки різних типів програм та додатків. Вона надійна, масштабована та має 
велику спільноту, що робить її популярним вибором для багатьох розробників [7]. 
 
 
     Лист 
     ЧДТУ 232231.004 ПЗ 
23 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Ключові особливості та переваги Java: 
1. Платформонезалежність: Java базується на концепції «Write Once, Run 
Anywhere» (WORA), що означає, що програми, написані на Java, можуть 
працювати на будь-якій платформі, яка підтримує віртуальну машину Java (JVM). 
Це дозволяє розробляти додатки для різних операційних систем, таких як Windows, 
macOS, Linux і багатьох інших. 
2. Об'єктно-орієнтована парадигма (рисунок 2.2): Java побудована на 
об'єктно-орієнтованій парадигмі програмування, що сприяє модульності, 
повторному використанню коду та полегшує розробку складних програм. 
 
 
Рисунок 2.2 – Вигляд синтаксису мови Java 
 
3. Java постачається з великою стандартною бібліотекою, яка включає в себе 
різноманітні класи та інтерфейси для роботи з мережами, базами даних, графікою, 
     Лист 
     ЧДТУ 232231.004 ПЗ 
24 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
безпекою та багато іншого. Це спрощує розробку додатків та забезпечує широкий 
функціонал «з коробки». 
4. Масштабованість та надійність: Java має вбудовану підтримку 
багатопотоковості та механізми керування пам'яттю, що дозволяє розробляти 
масштабовані додатки, які можуть обробляти багато запитів одночасно. Java також 
відома своєю стабільністю та надійністю, що робить її популярним вибором для 
підприємственого програмування. 
5. Java має широку спільноту розробників, яка надає безліч ресурсів, 
бібліотек, фреймворків та інструментів для підтримки розробки. Це означає, що 
можна легко знайти допомогу, документацію та готові рішення для багатьох 
завдань. 
6. Використання у веб-розробці: Java широко використовується для розробки 
серверних компонентів веб-додатків. Фреймворки, такі як Spring та JavaServer 
Faces (JSF), дозволяють створювати потужні та масштабовані веб-додатки з 
доброю підтримкою безпеки та управління транзакціями. 
TypeScript (рисунок 2.3) – синтаксичне розширення мови JavaScript, яке надає 
статичну типізацію та деякі додаткові функції для поліпшення розробки програм. 
TypeScript є потужним інструментом для розробки програм, особливо для середніх 
і великих проектів, де статична типізація та засоби рефакторингу можуть значно 
полегшити розробку та підтримку коду. Він надає розширення JavaScript з багатьма 
корисними функціями, що допомагають збільшити продуктивність розробки та 
якість програмного забезпечення [8]. 
Статична типізація: однією з головних особливостей TypeScript є можливість 
визначення типів для змінних, параметрів функцій та повернутих значень. Це 
дозволяє виявляти помилки під час компіляції і полегшує розробку, оскільки можна 
заранньо виявити багато потенційних проблем. 
Розширення JavaScript: TypeScript є надмножиною JavaScript, тому весь 
існуючий JavaScript-код може бути використаний у проекті TypeScript без будь-
яких змін. Це дозволяє поступово впроваджувати TypeScript у проект і отримувати 
всі переваги статичної типізації. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
25 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Орієнтованість на об'єкти: TypeScript підтримує об'єктно-орієнтовану 
парадигму програмування, включаючи класи, спадкування, інтерфейси, абстрактні 
класи та багато іншого. Це дозволяє структурувати код, покращує його 
читабельність та сприяє повторному використанню. 
Екосистема та інструменти: TypeScript має багатий набір інструментів і 
фреймворків, що полегшують розробку програм. Компілятор TypeScript 
перетворює код у валідний JavaScript, що може бути виконаний у будь-якому 
середовищі. Крім того, TypeScript підтримує інтеграцію з редакторами коду, 
такими як Visual Studio Code, що забезпечує автодоповнення коду, виявлення 
помилок під час набору тощо. 
Широке застосування: TypeScript використовується як на клієнтській стороні 
веб-розробки (у поєднанні з фреймворками, такими як Angular або React), так і на 
серверній стороні (за допомогою фреймворків, таких як Node.js). Він також може 
використовуватись для розробки мобільних додатків (з використанням фреймворка 
NativeScript). 
Розширена підтримка ES6 та нових стандартів: TypeScript активно підтримує 
функціональність ECMAScript 6 (ES6) та наступних стандартів JavaScript. Це 
означає, що можна використовувати сучасні можливості JavaScript, такі як 
стрілкові функції, розгортання об'єктів, модулі та інші, навіть якщо ваша цільова 
платформа не підтримує ці функції напряму. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
26 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
 
Рисунок 2.3 – Вигляд синтаксису мови TypeScript 
 
Було обрано мову TypeScript через її використання в індустрії веб-розробки. 
 
2.2 Аналіз та вибір програмних засобів 
 
Visual Studio Code (VS Code) – безкоштовний інтегрований розробний 
середовище (IDE) з відкритим вихідним кодом, розроблений компанією Microsoft. 
Він став популярним серед розробників завдяки своїй легкості використання, 
широкому спектру функцій та розширенням, які роблять його ідеальним 
інструментом для бекенд-розробки. В цілому, VS Code – це потужний та гнучкий 
інструмент для розробки бекенду. Він дозволяє розробникам працювати з різними 
мовами програмування, фреймворками та інструментами, надаючи при цьому 
зручний інтерфейс та розширення для налаштування середовища розробки під їхні 
потреби [9]. 
 
     Лист 
     ЧДТУ 232231.004 ПЗ 
27 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Основні переваги використання VS Code для бекенд-розробки: 
− Мови програмування: VS Code підтримує багато популярних мов 
програмування, які використовуються для розробки бекенду, такі як JavaScript, 
Python, Java, C#, Go, PHP та багато інших. Можна встановити розширення для 
підтримки конкретної мови, що дозволяє отримати підказки, перевірку синтаксису, 
рефакторинг коду та багато іншого. 
− Розширення: VS Code має широкий вибір розширень, які розробляються 
спільнотою. Можна встановити розширення для підтримки конкретних 
фреймворків або бібліотек, додаткових інструментів для налагодження коду, 
роботи з контролем версій, розширення для роботи з базами даних та багато 
іншого. Це дозволяє налаштувати робочий процес під свої потреби. 
− Легкість використання: VS Code має інтуїтивний і зручний інтерфейс 
користувача. Він пропонує багато корисних функцій, таких як підказки, 
автодоповнення, швидкий пошук та заміна, інтегрований термінал, можливість 
поділу екрану, редактор мультикурсору та багато іншого. Це дозволяє збільшити 
продуктивність розробки та знизити час, потрібний на написання коду. 
− Налагодження: VS Code надає вбудований інструмент для налагодження 
коду, який дозволяє встановлювати точки зупину, крокувати по коду, переглядати 
значення змінних та стек викликів. Це допомагає виявляти та виправляти помилки 
в програмному коді бекенду. 
− Інтеграція з Git [10]: VS Code має потужну підтримку системи контролю 
версій Git. Можна легко виконувати операції коміту, відгалуження, злиття гілок та 
інші дії прямо з редактора. Це робить спільну роботу над проектами бекенду з 
командою більш зручною та ефективною. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
28 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
 
Рисунок 2.4 – Можливості Visual Studio Code 
 
WebStorm (рисунок 2.5) – це комерційне інтегроване розробницьке 
середовище (IDE) для розробки веб-додатків, розроблене компанією JetBrains. Він 
спеціалізується на розробці фронтенду та бекенду, і надає розширені можливості 
для роботи з різними мовами програмування, фреймворками та інструментами. 
WebStorm є потужним інструментом для бекенд-розробки, який надає широкі 
можливості для роботи з різними мовами програмування, фреймворками та 
інструментами. Він допомагає підвищити продуктивність та якість розробки 
завдяки своїм розширенням, інструментам налагодження та інтегрованим 
функціям [11]. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
29 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
 
Рисунок 2.5 – Вигляд IDE WebStorm 
 
Основні переваги використання WebStorm для бекенд-розробки: 
− Підтримка мов програмування: WebStorm підтримує багато мов 
програмування, що використовуються для розробки бекенду, включаючи 
JavaScript, TypeScript, Node.js, PHP, Python, Java, Go та багато інших. Він надає 
підказки, перевірку синтаксису, автодоповнення та інші корисні функції, що 
допомагають збільшити продуктивність розробки. 
− Розширення та плагіни: WebStorm має багатий вибір розширень та 
плагінів, які дозволяють розширити його функціональність. Можна встановлювати 
розширення для підтримки конкретних фреймворків, бібліотек або інших 
інструментів, таких як системи контролю версій. Це дозволяє налаштувати IDE під 
свої потреби та робочий процес. 
− Інструменти для налагодження: WebStorm надає потужні інструменти для 
налагодження коду. Можна встановлювати точки зупину, крокувати по коду, 
переглядати значення змінних та стек викликів. Це допомагає виявляти та 
виправляти помилки в програмному коді бекенду. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
30 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
− Інтеграція зі системами контролю версій: WebStorm має підтримку 
популярних систем контролю версій, таких як Git, SVN та Mercurial. Можна 
виконувати операції коміту, злиття гілок, вирішувати конфлікти та інші дії 
безпосередньо з інтерфейсу IDE. 
− Інтегровані інструменти та інспектори: WebStorm має багато вбудованих 
інструментів та інспекторів, які допомагають виявляти й виправляти помилки в 
коді. Наприклад, інспектори дозволяють перевірити якість коду, виявити 
неправильне використання API або потенційні проблеми безпеки. 
− Live Edit: WebStorm надає можливість відстежувати та автоматично 
оновлювати веб-сторінки в реальному часі під час розробки. Це дозволяє швидко 
бачити зміни, вносити виправлення та відлагоджувати код без перезавантаження 
сторінки. 
В кінці кінців вирішено використати WebStorm через його багатий 
функціонал. 
 
2.3 Опис фреймворків, які можуть використовуватись 
 
Потрібно обрати фреймворк для розробки бекенду. Переглянемо доступні 
опції. 
Express.js (або просто Express) – це легковагий фреймворк для розробки веб-
додатків на основі Node.js. Він надає простий і зручний спосіб створення веб-
серверів і обробки запитів. Express.js є дуже популярним фреймворком в 
середовищі Node.js завдяки своїй простоті використання, широкій підтримці 
спільноти і великій кількості розширень. Він став стандартом для розробки 
серверної частини веб-додатків на Node.js. 
Основна філософія Express полягає в тому, щоб бути мінімалістичним і 
гнучким, надаючи розробникам велику свободу в області вибору компонентів для 
побудови свого додатку. Він не нав'язує жодних строгих правил або шаблонів, але 
надає базовий набір функцій, які допомагають швидко розробляти веб-додатки 
[12]. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
31 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Основні особливості Express.js: 
− Маршрутизація: Express дозволяє визначати маршрути для обробки 
різних URL-адрес, запитів HTTP (GET, POST, PUT тощо) та виконувати відповідні 
функції для обробки цих маршрутів. 
− Мідлвари: Express побудований на основі концепції мідлвару, що 
дозволяє ланцюжком обробляти запити перед тим, як вони досягнуть маршрутів. 
Це дає можливість виконувати функції, які перевіряють аутентифікацію, 
обробляють дані запиту, реєструють журнали тощо. 
− Шаблонізація: Express підтримує використання різних шаблонізаторів, 
таких як EJS, Pug (раніше відомий як Jade), Handlebars і багатьох інших. 
Шаблонізатори дозволяють генерувати HTML-сторінки на основі шаблонів з 
динамічними даними. 
− Статичні файли: Express дозволяє легко надавати доступ до статичних 
файлів, таких як CSS, JavaScript, зображення тощо. 
− Розширення: За допомогою Express можна легко додавати розширення, 
які розширюють функціональність фреймворку. Наприклад, можна 
використовувати розширення для роботи з базами даних, аутентифікації, обробки 
форм, REST API і багатьох інших. 
Django – потужний фреймворк для розробки веб-додатків, який 
зосереджується на створенні ефективних та масштабованих серверних бекендів. 
Основним призначенням Django є надання зручних інструментів для швидкого 
створення безпечних та складних веб-додатків. Django є дуже популярним 
фреймворком для розробки бекендів через свою потужну функціональність, 
розширюваність та зручність використання. Він широко використовується для 
розробки веб-додатків різного рівня складності, від невеликих проектів до великих 
платформ [13]. 
Основні особливості Django: 
− Модель-поділ-контролер (MVC): Django використовує патерн 
проектування MVC, де моделі представляють базу даних, представлення 
     Лист 
     ЧДТУ 232231.004 ПЗ 
32 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
відповідають за логіку відображення даних, а контролери виконують обробку 
запитів. 
− ORM (Object-Relational Mapping): Django має потужний ORM, який 
дозволяє розробникам взаємодіяти з базою даних за допомогою об'єктів Python. Це 
дозволяє простіше і зручніше працювати з базами даних, а також забезпечує 
переносимість між різними Системами Керування Базами Даних (СКБД). 
− Адміністративний інтерфейс: Django має вбудований адміністративний 
інтерфейс, який автоматично створюється на основі моделей вашого додатку. Це 
дозволяє легко управляти даними вашого додатку без необхідності писати власний 
код для адміністрування. 
− Маршрутизація та обробка URL: Django надає механізм для визначення 
маршрутів URL, що вказують, які функції або класи будуть виконувати обробку 
запитів для певних URL-шляхів. 
− Безпека: Django має вбудовану систему аутентифікації та авторизації, яка 
дозволяє захищати ваші дані і обмежувати доступ до різних частин вашого додатку. 
Він також включає механізми захисту від загроз, таких як SQL-ін'єкції, 
міжсайтовий скриптінг (XSS) і міжсайтовий запити між доменами (CSRF). 
− Розширюваність: Django надає багато вбудованих компонентів, таких як 
бібліотеки для роботи з електронною поштою, роботи з файлами, графічного 
виводу тощо. Також можна використовувати сторонні розширення або створювати 
власні, щоб розширити функціональність вашого додатку. 
− Сумісність з різними серверами: Django може працювати з різними веб-
серверами, такими як Apache, Nginx, або може бути запущений у власному веб-
сервері, який надається йому за замовчуванням. 
Nest.js – прогресивний фреймворк для розробки серверних застосунків на 
Node.js, який використовує TypeScript. Він пропонує розробникам елегантний та 
розширюваний спосіб створення масштабованих і модульних додатків, заснованих 
на архітектурі модулів, сервісів та контролерів. Nest.js стає все більш популярним 
в розробці серверних додатків на Node.js завдяки своїй модульній архітектурі, 
TypeScript, потужним можливостям та зручності використання. Він допомагає 
     Лист 
     ЧДТУ 232231.004 ПЗ 
33 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
розробникам швидко створювати ефективні і масштабовані бекенди для веб-
додатків [14]. 
Основні особливості Nest.js: 
− Архітектура модулів: Nest.js пропонує архітектуру, основану на модулях, 
яка допомагає організувати функціональні блоки додатку. Модулі 
використовуються для групування схожих компонентів, сервісів та контролерів, 
що спрощує структуру проекту і підтримує розширюваність. 
− TypeScript: Nest.js розроблений з використанням TypeScript, який надає 
типізацію, покращує інструменти розробки та допомагає уникати помилок під час 
розробки. 
− Декоратори: Nest.js використовує декоратори для визначення різних 
компонентів, таких як сервіси, контролери та модулі. Це дає можливість легко 
налаштовувати функціональність та залежності компонентів. 
− Вбудована обробка HTTP-запитів: Nest.js надає вбудовану підтримку для 
обробки HTTP-запитів. Можна визначати маршрути, обробники, параметри запиту 
та інші аспекти HTTP-протоколу з використанням спеціальних декораторів та 
класів. 
− Dependency Injection (DI): Nest.js має вбудовану систему впровадження 
залежностей, яка спрощує створення та управління об'єктами та їх залежностями. 
Це сприяє легкості тестування та підтримує принципи SOLID. 
− WebSocket-підтримка: Nest.js надає підтримку для WebSocket-
комунікації, що дозволяє розробляти реальні часи додатки, такі як чати або 
стрімінгові сервіси. 
− Розширюваність: Nest.js має багатий екосистему розширень та модулів, 
що дозволяє розширювати його функціональність та використовувати сторонні 
бібліотеки. 
Дивлячись на сьогоднішню індустрію, доречно використати Nest.js для 
розробки серверної частини магазину. 
 
     Лист 
     ЧДТУ 232231.004 ПЗ 
34 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
2.4 Проектування архітектури backend частини сайту 
 
Проектування архітектури серверної частини сайту є важливим етапом в 
розробці веб-додатків. Вона визначає структуру, організацію та взаємодію 
компонентів, що входять до складу бекенду, і має вирішальний вплив на 
продуктивність, розширюваність та підтримку додатку [23]. 
У Nest.js використовується патерн архітектури Model-View-Controller (MVC), 
але з деякими додатковими елементами. Nest.js спирається на концепції і принципи 
MVC, але додає до них елементи Dependency Injection (DI) та модульності [24]. 
Основні компоненти архітектури Nest.js включають [14]: 
1. Модулі (Modules): використовуються для організації функціональності і 
групування пов'язаних компонентів. Кожен модуль містить свої сервіси, 
контролери, провайдери і інші компоненти. Це дозволяє забезпечити логічну 
розділеність функцій і залежностей. 
2. Сервіси (Services): виконують бізнес-логіку додатку і містять логіку 
обробки даних. Вони можуть бути використані в контролерах або інших сервісах 
за допомогою Dependency Injection. 
3. Контролери (Controllers): відповідають за обробку HTTP-запитів і 
взаємодію з клієнтом. Вони використовуються для визначення маршрутів, обробки 
запитів і передачі даних між клієнтом і сервером. 
4. Провайдери (Providers): використовуються для управління залежностями 
і впровадження інших компонентів. Вони можуть бути використані для створення 
і постачання інших сервісів або додаткових залежностей. 
Ця комбінація компонентів, а також використання декораторів і TypeScript, 
дозволяє побудувати модульну, розширювану та легко тестовану архітектуру в 
Nest.js. 
Архітектура розроблювального веб-ресурсу полягає в наступному. 
1. Моделі (Models): 
– Користувач (User): Модель, що містить дані про адміністраторів адмін-
панелі, такі як ім'я, електронна пошта, пароль тощо. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
35 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
– Товар (Product): Модель, що містить дані про товари, наприклад, назва, 
опис, ціна, фото тощо. 
– Замовлення (Order): Модель, що зберігає інформацію про замовлення, 
включаючи вибрані товари, кількість, адресу доставки та інше. 
2. Контролери (Controllers): 
– Аутентифікація (AuthenticationController): Контролер, що відповідає за 
обробку дій, пов'язаних з аутентифікацією адміністраторів, такі як вхід, 
вихід, зміна пароля тощо. 
– Управління товарами (ProductManagementController): Контролер, що 
виконує дії, пов'язані з управлінням товарами, такі як додавання нового 
товару, редагування, видалення, перегляд списку тощо. 
– Управління замовленнями (OrderManagementController): Контролер, 
що відповідає за управлінням замовленнями, включаючи перегляд 
історії замовлень, підтвердження, відміну тощо. 
3. Маршрутизація (Routes): 
– Описує маршрути, які пов'язані з кожним контролером і вказує, які дії 
контролера викликати для кожного маршруту. 
4. Сервіси (Services): 
– Сервіс аутентифікації (AuthenticationService): Забезпечує логіку 
аутентифікації адміністраторів, перевірку даних, генерацію токенів 
тощо. 
– Сервіс управління товарами (ProductManagementService): Містить 
бізнес-логіку для управління товарами, включаючи збереження, 
оновлення, видалення тощо. 
– Сервіс управління замовленнями (OrderManagementService): Містить 
логіку для управління замовленнями, включаючи підтвердження, 
відміну, отримання історії тощо. 
Ця архітектура MVC дозволяє ефективно організувати управління 
адміністративними функціями, забезпечувати безпеку та масштабованість, а також 
     Лист 
     ЧДТУ 232231.004 ПЗ 
36 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
покращувати управління товарами та замовленнями. Дана архітектура може бути 
розширена при розробці. 
 
2.5 Проектування бази даних 
 
Проектування бази даних – це процес створення структури і організації бази 
даних для забезпечення ефективного зберігання, керування та доступу до даних. 
Цей процес включає в себе кроки від аналізу вимог до розробки схеми бази даних 
і встановлення зв'язків між таблицями. Проектування бази даних є складним і 
важливим процесом, оскільки правильна структура бази даних впливає на 
продуктивність, ефективність та надійність системи управління даними. Важливим 
аспектом при проектуванні бази даних є забезпечення надійності, цілісності і 
безпеки даних. Для цього можуть використовуватись різні методи, такі як резервне 
копіювання, шифрування і встановлення прав доступу [16].  
Основні етапи проектування бази даних: 
1. Аналіз вимог: починається з розуміння потреб користувачів і визначення 
вимог до системи. Цей етап включає збір і аналіз інформації про домен даних, 
бізнес-правила і функціональні вимоги до системи. 
2. Концептуальне проектування: на цьому етапі створюється концептуальна 
модель бази даних, яка відображає загальну структуру даних і їх зв'язки. За 
допомогою сутностно-реляційної моделі (ER-моделі) створюються сутності, 
атрибути і зв'язки між ними. Ця модель допомагає визначити основні сутності, 
атрибути і їх взаємозв'язки. 
3. Логічне проектування: тут концептуальна модель перетворюється в 
логічну модель, яка використовує специфічні для обраної СУБД поняття, такі як 
таблиці, стовпці, ключі тощо. В цьому етапі також вирішуються питання 
нормалізації бази даних для забезпечення ефективного зберігання даних і 
уникнення аномалій. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
37 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
4. Фізичне проектування: тут визначається, як дані будуть зберігатись 
фізично на диску. Вирішуються питання розташування таблиць, індексації, 
доступу до даних і оптимізації продуктивності. 
5. Реалізація: на останньому етапі проектування бази даних створюється 
сама база даних на основі розробленої схеми. В цей момент також виконується 
наповнення бази даних початковими даними. 
В розроблювальному проекті вирішено застосувати реляційну базу даних. 
Реляційна база даних (SQL) є одним з найпоширеніших типів баз даних і 
використовуєся у багатьох веб-додатках. 
Реляційна база даних має чітку структуру, яка використовує таблиці, стовпці 
та рядки для організації даних. Це дозволяє легко визначати схему бази даних та 
забезпечує консистентність даних. Запити SQL: Реляційні бази даних 
використовують мову запитів SQL, що надає потужний інструментарій для 
виконання складних запитів до бази даних. Це дозволяє швидко отримувати 
потрібну інформацію та виконувати різноманітні операції з даними, такі як 
фільтрація, сортування, групування тощо. Цілісність даних: Реляційні бази даних 
підтримують можливість встановлювати обмеження (наприклад, унікальність 
значень, зовнішні ключі) для забезпечення цілісності даних. Це дозволяє уникнути 
некоректних даних і забезпечити консистентність бази даних. 
Зв'язки між даними: такі бази даних дозволяють встановлювати зв'язки між 
таблицями, що дозволяє ефективно організовувати дані та виконувати операції з 
ними. Наприклад, можна встановити зв'язок між таблицями «Товари» і «Категорії», 
щоб легко відстежувати категорії, до яких належить кожен товар. 
Підтримка транзакцій: також SQL бази даних забезпечують механізми 
транзакцій, що дозволяють забезпечити атомарність, консистентність, 
ізольованість та стійкість даних. Це важливо для збереження цілісності бази даних 
під час виконання комплексних операцій, таких як оновлення, видалення або 
вставка даних. 
БД для веб-ресурсу продажу комп'ютерної техніки можна спроектувати 
використовуючи третю нормальну форму (3NF) або вищу. Нормалізація даних 
     Лист 
     ЧДТУ 232231.004 ПЗ 
38 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
відповідно до нормальних форм допомагає уникнути аномалій, забезпечити 
цілісність даних та оптимізувати запити. 
Основні критерії для досягнення 3NF включають: 
1. Перший нормальний форма (1NF): 
– Кожна клітинка в таблиці повинна містити тільки атомарні значення. 
– Кожен стовпець повинен містити лише однорідні дані. 
2. Другий нормальний форма (2NF): 
– Таблиця повинна бути в 1NF. 
– Усі стовпці, що не є первинним ключем, повинні пов'язуватися з цілим 
ключем, а не з частиною ключа. 
3. Третій нормальний форма (3NF): 
– Таблиця повинна бути в 2NF. 
– Немає транзитивних залежностей, тобто кожен стовпець, що не є 
первинним ключем, повинен залежати лише від первинного ключа. 
При проектуванні БД для веб-ресурсу продажу комп'ютерної техніки можна 
застосувати ці принципи, наприклад, розбивши дані на відповідні таблиці, які 
відображають сутності вашого домену (наприклад, користувачі, товари, категорії, 
замовлення) та зв'язки між ними. При цьому, необхідно врахувати ієрархію даних, 
уникати зайвої дублювання і забезпечити, щоб кожен стовпець мав відношення 
тільки до первинного ключа тієї таблиці, в якій він розташований. 
При спроектуванні бази даних для веб-ресурсу продажу комп'ютерної 
техніки, можна розглянути наступні таблиці та їх взаємозв'язки: 
1. Таблиця «Користувачі» (Users): 
– user_id (PRIMARY KEY): унікальний ідентифікатор користувача; 
– username: ім'я користувача; 
– email: електронна пошта користувача; 
– password: пароль користувача; 
– role: роль користувача (наприклад, адміністратор, звичайний 
користувач). 
2. Таблиця «Товари» (Products): 
     Лист 
     ЧДТУ 232231.004 ПЗ 
39 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
– product_id (PRIMARY KEY): унікальний ідентифікатор товару; 
– name: назва товару; 
– description: опис товару; 
– price: ціна товару; 
– image: посилання на зображення товару; 
– category_id (FOREIGN KEY): ідентифікатор категорії, до якої належить 
товар. 
3. Таблиця «Категорії» (Categories): 
– category_id (PRIMARY KEY): унікальний ідентифікатор категорії; 
– name: назва категорії; 
– description: опис категорії. 
4. Таблиця «Замовлення» (Orders): 
– order_id (PRIMARY KEY): унікальний ідентифікатор замовлення; 
– user_id (FOREIGN KEY): ідентифікатор користувача, який зробив 
замовлення; 
– order_date: дата замовлення; 
– total_amount: загальна сума замовлення. 
5. Таблиця «Деталі замовлення» (OrderDetails): 
– order_detail_id (PRIMARY KEY): унікальний ідентифікатор деталі 
замовлення; 
– order_id (FOREIGN KEY): ідентифікатор замовлення; 
– product_id (FOREIGN KEY): ідентифікатор товару, що був замовлений; 
– quantity: кількість замовлених товарів. 
Фінальна спроектована структура бази даних показана на рисунку 2.6. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
40 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
 
Рисунок 2.6 – Остаточна схема бази даних 
 
Висновки до розділу 2 
 
В ході цього розділу було вирішено використати мову TypeScript, IDE 
WebStorm та фреймворк Nest.js для проектування та розробки серверної частини 
WEB-ресурсу з продажу комп'ютерної техніки «CompShop». Була спроектована 
базова архітектура бекенду та бази даних. 
Мова TypeScript володіє важливими перевагами, такими як статична 
типізація, підтримка сучасних функціональних можливостей та розширена 
підтримка ООП-парадигми. Використання TypeScript дозволяє зменшити кількість 
помилок та підвищити стабільність розроблюваного рішення. 
IDE WebStorm є потужним інструментом для розробки веб-додатків на мові 
TypeScript. Вона надає широкий набір функцій, таких як автодоповнення коду, 
     Лист 
     ЧДТУ 232231.004 ПЗ 
41 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
відладка та підтримка версій контролю, що полегшує процес розробки та 
забезпечує продуктивність. 
Фреймворк Nest.js, заснований на TypeScript, дозволяє швидко та ефективно 
будувати масштабовані веб-додатки з використанням принципів модульності, 
розширюваності та тестованості. Він надає гнучкість вибору шаблону архітектури 
та спрощує роботу з HTTP-запитами, маршрутизацією та іншими аспектами 
розробки серверної частини. 
Проектування базової архітектури бекенду та бази даних є ключовим етапом 
розробки веб-ресурсу. Враховуючи специфіку комп'ютерної техніки «CompShop», 
було визначено необхідні модулі, сервіси та схеми бази даних, що дозволить 
забезпечити ефективну роботу ресурсу та зручний досвід користувачів. 
Загалом, використання мови TypeScript, IDE WebStorm та фреймворку Nest.js 
в поєднанні зі спроектованою базовою архітектурою бекенду та БД створює 
потужну основу для розробки серверної частини WEB-ресурсу з продажу 
комп'ютерної техніки «CompShop». Цей підхід допоможе забезпечити швидку та 
надійну роботу системи, а також забезпечить розширення та підтримку в 
майбутньому. 
 
  
     Лист 
     ЧДТУ 232231.004 ПЗ 
42 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
РОЗДІЛ 3. РЕАЛІЗАЦІЯ WEB-РЕСУРСУ З ПРОДАЖУ 
КОМП’ЮТЕРНОЇ ТЕХНІКИ 
 
 
3.1 Реалізація бази даних 
 
Для реалізації бекенду вирішено використати СУБД SQLite (рис. 3.1). SQLite 
– це вбудована база даних, яка зберігає дані в локальному файлі без необхідності 
установки окремого сервера баз даних. Вона проста у використанні і має маленький 
розмір, що робить її популярною в багатьох додатках і мобільних пристроях. 
SQLite використовується в різних типах додатків, включаючи веб-додатки, 
мобільні додатки, настільні програми та інші проекти з обмеженими ресурсами. З 
його допомогою можна зберігати, організовувати та отримувати доступ до даних в 
зручний спосіб [17]. 
SQLite не потребує окремого сервера баз даних. Всі дані зберігаються в 
одному файлі бази даних на локальному пристрої. Має дуже маленький розмір 
(навколо 500 КБ), що робить його ідеальним вибором для використання на 
пристроях з обмеженими ресурсами або з низькою потужністю обробки. 
Не потребує конфігурації: можна почати використовувати SQLite без 
необхідності налаштування сервера або інших параметрів. Просто створюється 
файл бази даних і можна працювати з ним. SQLite підтримує стандартну мову 
структурованого запиту SQL (Structured Query Language). Можна виконувати 
операції створення, зчитування, оновлення та видалення даних за допомогою SQL-
запитів. 
Ця СУБД підтримує транзакції, які дозволяють групувати кілька операцій 
бази даних в одну атомарну операцію. Це забезпечує цілісність даних та може бути 
корисним у випадках, коли ви хочете забезпечити, що всі зміни виконуються 
успішно або жодної зміни не виконується. 
Є підтримка індексів: можна створювати індекси на таблиці для покращення 
швидкодії запитів. Індекси дозволяють прискорити пошук і сортування даних. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
43 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
SQLite підтримується на багатьох платформах, включаючи Windows, macOS, 
Linux і мобільні операційні системи, такі як Android та iOS. Це робить його 
універсальним і зручним для розробки кросплатформових додатків. 
 
Рисунок 3.1 – Логотип SQLite 
 
Для менеджменту даних бази даних використано програму DB Browser for 
SQLite (рис. 3.2).  
 
Рисунок 3.2 – Вигляд програми DB Browser for SQLite 
 
     Лист 
     ЧДТУ 232231.004 ПЗ 
44 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
DB Browser for SQLite (раніше відомий як SQLite Database Browser) є 
безкоштовним графічним інтерфейсом користувача (GUI) для роботи з базами 
даних SQLite. Він надає зручний спосіб перегляду, редагування, запитів та 
управління базами даних SQLite [18]. 
DB Browser for SQLite пропонує інтуїтивно зрозумілий інтерфейс 
користувача з вкладками та панелями для перегляду таблиць, запитів, структури 
бази даних і т. д. Це полегшує взаємодію з базою даних і зроблює процес більш 
доступним для некваліфікованих користувачів. 
Перегляд та редагування даних: мжна переглядати дані таблиць у форматі 
таблиці, редагувати їх, додавати нові записи, видаляти або оновлювати існуючі. DB 
Browser for SQLite надає різні інструменти для редагування даних, такі як фільтри, 
сортування, пошук і т. д. Також дана програма дозволяє створювати нові бази 
даних, створювати таблиці, модифікувати структуру бази даних (додавати, 
перейменовувати або видаляти таблиці, стовпці тощо), створювати індекси, 
переглядати схему бази даних і багато іншого. 
Можна виконувати SQL-запити безпосередньо у DB Browser for SQLite. 
Інструменти запитів дозволяють вам створювати складні запити, виконувати 
агрегатні функції, об'єднувати таблиці і т. д. Ви також можете зберігати імовірні 
запити для майбутнього використання. 
Програма підтримує імпорт і експорт даних у різних форматах, таких як CSV, 
SQL, JSON і т. д. Це дозволяє легко обмінюватися даними між різними додатками 
та системами. 
 
3.2 Реалізація бекенду користувацької частини 
 
Для розробки використано Node.js, в якому вже підключено бібліотеку 
фреймворку Nest.js. 
Node.js є відкритим середовищем виконання JavaScript, яке побудоване на 
движку V8 (розробленому компанією Google) і призначене для серверного 
використання. Воно дозволяє розробникам виконувати JavaScript поза браузером і 
     Лист 
     ЧДТУ 232231.004 ПЗ 
45 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
будувати швидкі та масштабовані мережеві додатки. Node.js є популярним 
інструментом серед розробників, особливо для створення серверних додатків, веб-
сайтів, мікросервісів і інших типів додатків, які потребують швидкості, 
масштабованості та ефективності [19,25]. 
Дане середовище є ідеальним вибором для створення серверних додатків. 
Воно має вбудовану підтримку протоколів HTTP і WebSocket, що дозволяє легко 
створювати веб-сервери, API, чат-сервери та інші мережеві додатки. Node.js 
постачається з npm (Node Package Manager) – одним з найбільших репозиторіїв 
пакетів з відкритим вихідним кодом. За допомогою npm ви можете легко 
встановлювати, оновлювати та управляти залежностями проекту, а також 
використовувати тисячі готових пакетів, які спрощують розробку. 
Модульна архітектура: Node підтримує модульну архітектуру, що дозволяє 
розробникам організовувати свій код у невеликі модулі. Це допомагає полегшити 
перевикористання коду, забезпечує чистоту та підтримує принципи DRY (Don't 
Repeat Yourself). Node також має широку спільноту розробників, яка активно 
розробляє пакети і модулі для різних потреб. Ви можете використовувати пакети 
для розширення функціональності вашого додатка, такі як робота з базами даних, 
обробка зображень, автентифікація, шифрування і багато іншого. 
Використані бібліотеки показано на рис. 3.3. rxjs 
 
 
Рисунок 3.3 – Використані бібліотеки 
     Лист 
     ЧДТУ 232231.004 ПЗ 
46 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Одна з головних бібліотек – RxJS (Reactive Extensions for JavaScript), є 
бібліотекою для програмування реактивних програм в JavaScript. Вона реалізує 
парадигму програмування реактивного програмування, що базується на принципах 
спостережуваних послідовностей (Observables). RxJS надає потужні інструменти 
для роботи з асинхронними потоками даних та подій. 
RxJS є потужним інструментом для реалізації асинхронних, реактивних 
програм в JavaScript. Він дозволяє забезпечити більш ефективну та елегантну 
обробку потоків даних і подій у порівнянні з традиційним підходом до 
асинхронного програмування [20]. 
Основна ідея RxJS полягає в тому, що дані та події розглядаються як 
спостережувані послідовності, які можна підписатися і отримувати значення в 
асинхронному режимі. Спостережувані послідовності можуть видавати значення 
одне за одним або у вигляді потоку подій. 
RxJS надає багато вбудованих операторів, які дозволяють змінювати, 
фільтрувати, комбінувати та обробляти дані, що потрапляють в спостережувані 
послідовності. Це дозволяє легко маніпулювати потоком даних та виконувати 
складні операції. 
Підписка на спостережувані послідовності відбувається за допомогою 
методу subscribe(). Коли ви підписуєтесь, ви отримуєте повідомлення про кожне 
нове значення або подію, які виникають у спостережуваній послідовності. Ви 
також можете відписатися від спостережуваної послідовності, викликавши метод 
unsubscribe(). 
RxJS може бути використаний як самостійна бібліотека або в поєднанні з 
іншими бібліотеками та фреймворками, такими як Angular, React, Node.js та інші. 
Він пропонує спеціальні інтеграційні модулі для полегшення роботи з цими 
технологіями. 
Бібліотеки «sqlite» та «sqlite3» дозволяють легко оперувати над базою даних 
SQLite. 
«typeorm» є бібліотекою для реляційних баз даних, яка дозволяє зручно 
працювати з базами даних у програмах, написаних на TypeScript або JavaScript. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
47 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Вона надає ORM (Object-Relational Mapping) підхід до роботи з базами даних, що 
дозволяє використовувати об'єктно-орієнтований підхід при роботі з таблицями та 
записами. TypeORM є потужним інструментом для роботи з базами даних у 
JavaScript та TypeScript. Він спрощує взаємодію з базою даних і допомагає 
розробникам зосередитися на бізнес-логіці своїх додатків, забезпечуючи зручний 
та ефективний спосіб роботи з даними [21]. 
TypeORM підтримує різні СУБД, такі як MySQL, PostgreSQL, SQLite, 
Microsoft SQL Server, та багато інших. Це дозволяє розробникам працювати з базою 
даних свого вибору, не змінюючи логіку свого коду. 
Об'єктно-реляційне відображення: TypeORM дозволяє визначати сутності 
(таблиці) бази даних як звичайні класи TypeScript або JavaScript. Можна 
використовувати декоратори для визначення властивостей сутностей, зв'язків між 
ними та додаткової інформації про таблиці (рис. 3.4). 
TypeORM надає механізм міграцій, що дозволяє зберігати та керувати 
версіями схеми бази даних. Можна використовувати міграції для автоматичного 
оновлення структури бази даних при змінах у визначенні сутностей. 
Цей концепт надає зручний API для виконання запитів до бази даних. Можна 
використовувати ланцюжки методів для складання складних SQL-запитів, 
фільтрації, сортування та обмеження результатів. 
 
 
Рисунок 3.4 – Розроблений клас категорії товарів за допомогою сутності typeorm 
     Лист 
     ЧДТУ 232231.004 ПЗ 
48 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Nest.js має поняття «контролерів». У Nest.js контролери використовуються 
для обробки запитів HTTP і виконання бізнес-логіки в контексті вашого додатка. 
Вони є одним з основних елементів архітектури Nest.js і допомагають організувати 
програмне забезпечення за принципами розділення обов'язків. 
Контролери в Nest.js допомагають організувати логіку серверного додатка 
(рис. 3.5), надаючи зручний спосіб відповідати на HTTP-запити та обробляти їх. 
Вони співпрацюють з іншими компонентами Nest.js, такими як сервіси, фільтри та 
перехоплювачі, для створення потужних та модульних додатків. 
 
 
Рисунок 3.5 – Відривок коду розробленого класу контролеру категорій товарів 
 
Декоратор @Controller використовується для визначення класу контролера. 
Ви можете вказати шлях до контролера, який буде обробляти вхідні запити. 
У класі контролера можна визначити методи, які відповідають на конкретні 
HTTP-запити. Ці методи-дії приймають параметри, що представляють різні аспекти 
запиту, такі як параметри шляху, запиту або тіло запиту.  
     Лист 
     ЧДТУ 232231.004 ПЗ 
49 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Можна використовувати декоратори, такі як @Get, @Post, @Put тощо, для 
вказівки типу HTTP-запиту, який обробляється методом-дією. Крім того, є 
декоратори для обробки різних аспектів запиту, такі як @Param, @Query, @Body 
та інші. 
Контролери в Nest.js можуть впроваджувати сервіси, які забезпечують 
бізнес-логіку додатка. Це допомагає розділити логіку контролера від логіки, 
пов'язаної з операціями над даними або бізнес-правилами. 
Фільтри, перехоплювачі та інтерсептори: контролери також підтримують 
функціональність для обробки помилок, перехоплення запитів та впровадження 
логіки до та після обробки запиту. Це досягається за допомогою фільтрів, 
перехоплювачів (middleware) та інтерсепторів. 
Документування та валідація: Nest.js надає інструменти для автоматичної 
генерації документації API на основі ваших контролерів, методів та параметрів. 
Також можена використовувати вбудовані механізми валідації для перевірки та 
обробки вхідних даних. 
У Nest.js сервіси використовуються для організації бізнес-логіки додатка 
(рис. 3.6). Вони представляють собою класи, які містять функціональність, що 
відповідає за виконання певних операцій і маніпуляцій з даними. 
Для створення сервісу можна використати декоратор @Injectable(). Цей 
декоратор позначає клас як сервіс, що дозволяє Nest.js правильно управляти 
залежностями та ін'єкцією залежностей. 
Ін'єкція залежностей: сервіси можуть мати залежності, які можна впровадити 
за допомогою ін'єкції залежностей. Це допомагає створити модульну структуру 
вашого додатка, де різні сервіси можуть використовувати один одного. Можна 
використовувати декоратор @Inject() для впровадження залежностей. 
Сервіси виконують бізнес-логіку додатка. Вони містять методи, які 
виконують різні операції, такі як отримання даних з бази даних, маніпуляція 
даними, виконання обчислень та інші операції, пов'язані з логікою додатка. Сервіси 
можуть бути використані в контролерах для виконання бізнес-логіки. Можна 
     Лист 
     ЧДТУ 232231.004 ПЗ 
50 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
ін'єктувати сервіс в контролер за допомогою ін'єкції залежностей, а потім 
використовувати його методи для обробки запитів та взаємодії з даними. 
Використання сервісів допомагає забезпечити повторне використання логіки 
вашого додатка. Можна використовувати один сервіс у різних частинах додатка або 
в інших проектах. Крім того, це допомагає зробити код модульним та легким для 
тестування. 
 
 
Рисунок 3.6 – Відривок коду розробленого сервісу замовлень 
 
1.3 Реалізація бекенду адмінської частини 
 
Адміністративна частина передбачає контроль категорій, товарів, та 
замовлень. Для цього реалізовано відповідні методи контролера категорій (рис. 3.7, 
3.8, 3.9 відповідно). 
 Продумані методи добре відповідають поставленій задачі. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
51 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
 
Рисунок 3.7 – Методи оновлення та видалення категорій у відповідному сервісі 
 
 
Рисунок 3.8 – Методи оновлення та видалення товарів у відповідному сервісі 
 
 
Рисунок 3.9 – Методи оновлення та видалення замовлень у відповідному сервісі 
 
     Лист 
     ЧДТУ 232231.004 ПЗ 
52 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
Висновки до розділу 3 
 
В даному розділі успішно проведено розробку серверної частини веб-ресурсу 
з продажу комп'ютерної техніки. Розглянуто реалізацію бази даних з 
використанням SQLite, що забезпечує ефективне зберігання та операції з даними. 
Для реалізації бекенду користувацької частини було використано фреймворк 
Nest.js, який надає зручність у створенні та управлінні веб-додатками. Також було 
розглянуто реалізацію бекенду адмінської частини, яка включає контроль 
категорій, товарів та замовлень. 
В результаті дослідження було показано, що використання SQLite дозволяє 
забезпечити ефективне зберігання даних та виконання операцій з ними. Фреймворк 
Nest.js забезпечує зручну реалізацію бекенду користувацької частини, що сприяє 
швидкому та ефективному розвитку веб-додатків. Реалізація бекенду адмінської 
частини дозволяє ефективно керувати категоріями, товарами та замовленнями, 
забезпечуючи потрібний функціонал для адміністрування ресурсу. 
Загалом, зроблений проект демонструє успішну реалізацію серверної 
частини веб-ресурсу з продажу комп'ютерної техніки, що забезпечує зручний та 
ефективний функціонал для користувачів та адміністраторів. 
Код є в ДОДАТКУ Б. 
 
 
  
     Лист 
     ЧДТУ 232231.004 ПЗ 
53 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
ВИСНОВКИ 
 
 
У даній роботі проведено аналіз предметної області продажу комп'ютерної 
техніки та порівняння існуючих веб-ресурсів, таких як Rozetka, Foxtrot, Eldorado та 
f.ua. В результаті аналізу було виявлено, що ці ресурси мають свої переваги та 
недоліки, але успішно функціонують на ринку, що свідчить про популярність та 
підтримку споживачів. Недолік у всіх них – нерозгорнуте оцінювання товарів. 
Для розробки серверної частини веб-ресурсу «CompShop» було обрано мову 
TypeScript, IDE WebStorm та фреймворк Nest.js. TypeScript забезпечує статичну 
типізацію та розширену підтримку ООП, що полегшує розробку та забезпечує 
стабільність рішення. IDE WebStorm є потужним інструментом з багатьма 
функціями, які полегшують процес розробки. Фреймворк Nest.js, заснований на 
TypeScript, надає модульну архітектуру та спрощує розробку серверної частини 
веб-додатків. 
В розділі розробки серверної частини «CompShop» було використано базу 
даних SQLite та фреймворк Nest.js. SQLite забезпечує ефективне зберігання та 
операції з даними, а фреймворк Nest.js дозволяє зручно реалізувати функціонал 
користувацької та адмінської частини. Розроблено функціонал для керування 
категоріями, товарами та замовленнями, що забезпечує потрібний функціонал для 
адміністрування ресурсу. 
Розробка серверної частини веб-ресурсу "CompShop" виявилась успішною. 
Використання мови TypeScript, IDE WebStorm та фреймворку Nest.js разом з 
ефективною базою даних SQLite забезпечили швидку та надійну роботу системи. 
Розроблений функціонал дозволяє зручно керувати категоріями, товарами та 
замовленнями, задовольняючи потреби як адміністраторів, так і користувачів. 
В ході виконання кваліфікаційної роботи бакалавра виконані наступні 
завдання: 
- проаналізовано предметні області; 
- проаналізовано і порівняно існуючі аналоги; 
     Лист 
     ЧДТУ 232231.004 ПЗ 
54 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
- поставлено задачу; 
- проаналізовано та обрано мову програмування; 
- проаналізовано та обрано програмні засоби; 
- описано фреймворки, які можуть використовуватись; 
- спроектовано архітектуру backend частини сайту; 
- спроектовано базу даних; 
- реалізовано базу даних; 
- реалізовано бекенд користувацької частини; 
- реалізовано бекенд адмінської частини. 
Таким чином мета кваліфікаційної роботи бакалавра була досягнута. 
  
     Лист 
     ЧДТУ 232231.004 ПЗ 
55 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
 
 
1. Clow, Kenneth E., and Donald Baack. Integrated Advertising, Promotion, and 
Marketing Communications. Pearson, 2014. 
2. Rozetka. URL: https://rozetka.com.ua 
3. Foxtrot. URL: https://foxtrot.com.ua 
4. Eldorado. URL: https://eldorado.ua 
5. Fotos. URL: https://f.ua 
6. PHP. Hypertext Preprocessor. URL: https://www.php.net/ 
7. Java | Oracle. URL: https://www.java.com/en/ 
8. TypeScript: JavaScript With Syntax For Types. URL: 
https://www.typescriptlang.org/ 
9. Visual Studio Code – Code Editor. URL: https://code.visualstudio.com/ 
10. Git. URL: https://git-scm.com/ 
11. WebStorm: The smartest JavaScript IDE. URL: 
https://www.jetbrains.com/webstorm/ 
12. Express – Node.js web application framework. URL: https://expressjs.com/ 
13. The web framework for perfectionists with deadlines. URL: 
https://www.djangoproject.com/ 
14. NestJS – A progressive Node.js framework. URL: https://nestjs.com/ 
15. Розробка веб-додатків на NEST.JS. URL: https://brander.ua/technologies/nestjs 
16. Романова Ю.Д. Інформаційні технології в менеджменті (управлінні), 2015. 
URL: https://stud.com.ua/62415/menedzhment/proektuvannya_bazi_danih 
17. SQLite. URL: https://www.sqlite.org/index.html 
18. DB Browser for SQLite. URL: https://sqlitebrowser.org/ 
19. Flavio Copes. Node.js Handbook. URL: https://flaviocopes.com/books-dist/node-
handbook.pdf 
20. Clow, Mark. “RxJS with Angular.” Angular 5 Projects, 2018, pp. 309–313, 
https://doi.org/10.1007/978-1-4842-3279-8_17. 
     Лист 
     ЧДТУ 232231.004 ПЗ 
56 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
21. TypeORM – Amazing ORM for TypeScript. URL: https://typeorm.io/ 
22. Ayesh, A. (2002). Essential UML fast: Using select use case tool for rapid 
applications development. Springer. 
23. Frontend vs. backend. URL: https://frontend.lviv.ua/frontend-vs-backend-shho-
obraty 
24. Що таке Back-end? https://18000.com.ua/strichka-novin/shho-take-back-end-
rozbirayemos-iz-cherkaskimi-rozrobnikami/ 
25. Springer, S. (2022). Node.js: The Comprehensive Guide. Rheinwerk Publishing. 
 
     Лист 
     ЧДТУ 232231.004 ПЗ 
57 
Зм Арк. № докум. Пiдпис. Дата 
нт
 
ДОДАТОК А 
 
  
 
  
 
 
 
ДОДАТОК Б