Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал: https://er.chdtu.edu.ua/handle/ChSTU/9874
Назва: Розробка серверної частини веб-застосунка для обліку товарів
Автори: Лавданська , Ольга В’ячеславівна
Мозолюк, Богдан Віталійович
Ключові слова: інформаційна система;веб-технології;серверна частина;веб-застосунок;облік товарів;Java;PostgreSQL;база даних;CRUD-операції;автоматизація
Дата публікації: 10-чер-2026
Короткий огляд (реферат): Кваліфікаційна робота присвячена дослідженню сучасних підходів до автоматизації процесів обліку товарів та розробці серверної частини вебзастосунка для управління товарними ресурсами підприємства. У роботі проведено аналіз предметної області, розглянуто особливості функціонування систем обліку товарів, виконано огляд існуючих програмних рішень та визначено їхні переваги й недоліки. Особливу увагу приділено проєктуванню архітектури серверної частини веб-застосунка, визначенню функціональних і нефункціональних вимог до системи, а також вибору сучасних технологій розробки. Для реалізації проєкту використано мову програмування Java, систему управління базами даних PostgreSQL, засіб автоматизації збірки Maven та фреймворк Tailwind CSS для побудови користувацького інтерфейсу. Розглянуто принципи організації взаємодії серверної частини із базою даних, реалізацію CRUD-операцій, механізми обробки запитів користувачів, а також забезпечення безпеки та надійності функціонування системи. У результаті виконання роботи розроблено серверну частину вебзастосунка для обліку товарів, яка забезпечує централізоване зберігання даних, керування товарними позиціями, пошук інформації, підтримку багатокористувацького режиму роботи та можливість подальшого масштабування функціоналу. Створене програмне рішення може бути використане як основа для впровадження інформаційних систем обліку товарів у торговельних, складських та виробничих підприємствах.
URI (Уніфікований ідентифікатор ресурсу): https://er.chdtu.edu.ua/handle/ChSTU/9874
Розташовується у зібраннях:126 Інформаційні системи та технології (Web-технології, web-дизайн)

Файли цього матеріалу:
Файл Опис РозмірФормат 
РЕП_БАК_Мозолюк _WEB-2211.pdf
  Restricted Access
1.24 MBAdobe PDFПереглянути/Відкрити    Запит копії


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

Extracted text
 
 
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ 
КАФЕДРА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ ПРОЕКТУВАННЯ 
         
 
 
 
 
ПОЯСНЮВАЛЬНА ЗАПИСКА 
до кваліфікаційної роботи бакалавра 
 
на тему: «Розробка серверної частини веб-застосунка для обліку товарів» 
  
 
 
 
 
 Виконав: здобувач першого 
(бакалаврського) рівня вищої освіти 
4 курсу, групи  WEB-2211 
 Спеціальності 126 Інформаційні системи та 
технології 
 ОП «Web-технології, Web-дизайн» 
 Мозолюк Богдан Віталійович 
  
 Керівник: доцент кафедри інформаційних  
 технологій проектування, к.т.н. доцент 
 Ольга ЛАВДАНСЬКА 
  
 Рецензент: доцент кафедри 
 інформаційної безпеки та комп’ютерної 
 інженерії Черкаського державного 
технологічного університету, к.т.н., доцент 
 Тетяна МИРОНЮК 
  
  
  
 
 
 
 
 
 
 
 
 
Черкаси – 2026 року 
 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
 
Факультет інформаційних технологій і систем 
(повна назва) 
Кафедра інформаційних технологій проектування 
(повна назва) 
Освітньо-кваліфікаційний рівень бакалаврський 
(назва) 
Спеціальність  126 «Інформаційні системи та технології» 
 (шифр і назва) 
                                                                                    
          
 ЗАТВЕРДЖУЮ 
 Завідувач кафедри  ІТП  
  Тетяна ПРОКОПЕНКО 
 «____» ________________ 2026 року 
 
З А В Д А Н Н Я 
НА КВАЛІФІКАЦІЙНУ РОБОТУ БАКАЛАВРА 
Мозолюку Богдану Віталійовичу 
(прізвище, ім’я, по батькові) 
 
1. Тема роботи Розробка серверної частини веб-застосунка для обліку товарів 
 
Керівник роботи Лавданська Ольга В’ячеславівна, к.т.н., доцент 
                                   ( прізвище, ім’я, по батькові, науковий ступінь, вчене звання) 
Затверджено наказом Черкаського державного технологічного університету від  
«    12   »        березня  2026 року № 56/03-03  
 
2. Строк подання здобувачем роботи 9 червня 2026 р. 
3. Вихідні дані до роботи Технології веброзробки та проєктування інформаційних  
систем; технології розробки серверного програмного забезпечення; теорія розробки бази  
даних; системи управління базами даних PostgreSQL. 
 
 
4. Зміст розрахунково-пояснювальної записки (перелік питань, які потрібно розробити) 
Вступ; Розділ 1 Постановка задачі. Огляд існуючих рішень, аналогів; 
Розділ 2 Обґрунтування технічного завдання; Розділ 3 Розробка серверної частини  
веб-застосунка для обліку товарів; Висновки; Список використаних джерел. 
 
 
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів) 
1) Порівняння існуючих систем обліку товарів 
2) Функціональні та нефункціональні вимоги до веб-застосунка 
3) Архітектура серверної частини веб-застосунка та структура бази даних PostgreSQL 
4) Діаграма взаємодії клієнтської та серверної частини  
5) Відбитки роботи веб-застосунка: створення, видалення, та пошук деталей 
н 
 
 
6. Консультанти розділів роботи 
Розділ Прізвище, ініціали та посада Підпис, дата 
консультанта 
  завдання видав завдання прийняв 
    
    
    
    
 
7. Дата видачі завдання                     27 лютого 2026 року      
 
КАЛЕНДАРНИЙ ПЛАН 
 
№ Назва етапів Строк виконання 
Примітка 
з/п кваліфікаційної роботи етапів роботи 
1.1 Постановка задачі 12.03.2026 виконано 
1.2 Підготовка завдання 15.03.2026 виконано 
1.3 Погодження завдання 16.03.2026 виконано 
1.4 Затвердження завдання 20.03.2026 виконано 
2 Основна стадія   
2.1 Підбір матеріалів 21.03.2026 виконано 
2.2 Аналіз шляхів рішення поставленої задачі 23.03.2026 виконано 
2.3 Формування проектних рішень 06.04.2026 виконано 
2.4 Вибір кінцевого варіанту проєктного рішення 20.04.2026 виконано 
2.5 Оформлення первісної редакції роботи 27.04.2026 виконано 
3 Заключна стадія   
3.1 Узгодження прийнятих проектних рішень 04.05.2026 виконано 
Оформлення пояснювальної записки роботи в 
3.2 11.05.2026 виконано 
кінцевій редакції 
3.3 Попередній захист роботи 18.05.2026 виконано 
3.4 Затвердження роботи 05.06.2026 виконано 
3.5 Рецензування роботи 08.06.2026 виконано 
3.6 Захист роботи 10.06.2026 виконано 
 
 
Здобувач вищої освіти   ______________________                      Мозолюк Б. В.     
             (підпис)                                                  (прізвище та ініціали) 
 
Керівник роботи             ______________________                       Лавданська О. В.     
              (підпис)                                                  (прізвище та ініціали) 
 
  
н 
 
АНОТАЦІЯ 
Кваліфікаційна робота присвячена дослідженню сучасних підходів до 
автоматизації процесів обліку товарів та розробці серверної частини веб-
застосунка для управління товарними ресурсами підприємства. У роботі 
проведено аналіз предметної області, розглянуто особливості функціонування 
систем обліку товарів, виконано огляд існуючих програмних рішень та 
визначено їхні переваги й недоліки. 
Особливу увагу приділено проєктуванню архітектури серверної частини 
веб-застосунка, визначенню функціональних і нефункціональних вимог до 
системи, а також вибору сучасних технологій розробки. Для реалізації проєкту 
використано мову програмування Java, систему управління базами даних 
PostgreSQL, засіб автоматизації збірки Maven та фреймворк Tailwind CSS для 
побудови користувацького інтерфейсу. Розглянуто принципи організації 
взаємодії серверної частини із базою даних, реалізацію CRUD-операцій, 
механізми обробки запитів користувачів, а також забезпечення безпеки та 
надійності функціонування системи. 
У результаті виконання роботи розроблено серверну частину веб-
застосунка для обліку товарів, яка забезпечує централізоване зберігання даних, 
керування товарними позиціями, пошук інформації, підтримку 
багатокористувацького режиму роботи та можливість подальшого 
масштабування функціоналу. Створене програмне рішення може бути 
використане як основа для впровадження інформаційних систем обліку товарів 
у торговельних, складських та виробничих підприємствах. 
Ключові слова: веб-застосунок, серверна частина, облік товарів, Java, 
PostgreSQL, база даних, інформаційна система, автоматизація, CRUD-операції, 
веб-технології. 
 
 
  
н 
 
ABSTRACT 
The bachelor's thesis is devoted to the study of modern approaches to inventory 
management automation and the development of the server-side part of a web 
application for managing inventory resources. The work includes an analysis of the 
subject area, an examination of the main features of inventory management systems, 
and a review of existing software solutions along with their advantages and 
disadvantages. 
Particular attention is paid to the design of the server-side architecture, the 
definition of functional and non-functional system requirements, and the selection of 
modern development technologies. The project implementation is based on the Java 
programming language, the PostgreSQL database management system, the Maven 
build automation tool, and the Tailwind CSS framework for user interface 
development. The thesis also considers the principles of interaction between the 
server-side application and the database, the implementation of CRUD operations, 
request processing mechanisms, and methods for ensuring system security and 
reliability. 
As a result of the research and development process, a server-side web 
application for inventory management has been created. The developed solution 
provides centralized data storage, inventory item management, information search 
functionality, support for multiple users, and opportunities for future scalability. The 
application can serve as a foundation for implementing inventory management 
systems in commercial, warehouse, and manufacturing enterprises. 
Keywords: web application, server-side development, inventory management, Java, 
PostgreSQL, database, information system, automation, CRUD operations, web 
technologies. 
  
н 
 
 
ЗМІСТ 
ВСТУП ..................................................................................................................... 3 
РОЗДІЛ 1. ПОСТАНОВКА ЗАДАЧІ. ОГЛЯД ІСНУЮЧИХ РІШЕНЬ, АНАЛОГІВ
 ................................................................................................................................... 5 
1.1 Опис предметної області .......................................................................... 5 
1.2 Недоліки та слабкі місця існуючих систем обліку товарів..................... 8 
1.3 Аналітичний огляд існуючих систем обліку товарів ............................ 10 
1.3.1 Система обліку товарів Microsoft Excel / Google Sheets .................... 12 
1.3.2 Веб-системи обліку товарів (ERP/CRM системи) .............................. 12 
1.3.3 Веб-застосунок інвентаризації (локальні корпоративні системи) .... 14 
1.3.4 Хмарні системи обліку товарів ............................................................. 14 
1.4 Висновки до розділу 1 .............................................................................. 15 
РОЗДІЛ 2. ОБҐРУНТУВАННЯ ТЕХНІЧНОГО ЗАВДАННЯ .......................... 16 
2.1 Призначення серверної частини веб-застосунка для обліку товарів ... 16 
2.2 Вимоги до архітектури серверної частини веб-застосунка для обліку 
товарів ........................................................................................................ 18 
2.3 Використання фреймворку Tailwind CSS для створення інтерфейсу 
веб-застосунка ......................................................................................... 21 
2.4 Використання SQL та СУБД PostgreSQL у веб-застосунку ................. 23 
2.5 Навігація веб-застосунка для обліку товарів ......................................... 25 
2.6 Використання Maven та PostgreSQL у процесі розробки веб-
застосунка ................................................................................................ 27 
3. Висновок до розділу 2 ................................................................................ 28 
РОЗДІЛ 3.ПРОЄКТУВАННЯ ТА РЕАЛІЗАЦІЯ ВЕБ-ЗАСТОСУНКА. .........  29 
3.1 Обґрунтування вибору засобів розробки ................................................ 29 
3.2 Опис реалізації веб-застосунка для обліку товарів ............................... 31 
3.3 Висновки до розділу 3 .............................................................................. 35 
ВИСНОВКИ ........................................................................................................... 36 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ............................................................. 37 
ДОДАТОК А Специфікація 482 ЧДТУ 262217 -01 . Розробка серверної частини 
веб-застосунка для обліку товарів ………………………………………………..40 
 
  
 
ЧДТУ 262217.17 ПЗ 
Змн. Арк. № докум. Підпис Дата 
 Розроб. Мозолюк Б.В..  Літ. Арк. Аркушів 
 Перевір. Лавданська О.В. Розробка серверної частини веб- н 3 51 
  застосунка для обліку товарів.  
 Рецензент Миронюк Т. В.
 Пояснювальна записка ФІТІС, 
 Н. контр. Лавданська О.В. кафедра ІТП, WEB-2211 
 Затверд. Прокопенко Т.О. 
 
 
ВСТУП 
У сучасних умовах стрімкого розвитку інформаційних технологій та 
цифровізації бізнесу веб-застосунки стали невід’ємною складовою діяльності 
підприємств, організацій та торговельних платформ. Автоматизація процесів 
обліку товарів є одним із ключових напрямів розвитку інформаційних систем, 
оскільки ефективне управління товарними ресурсами безпосередньо впливає на 
продуктивність роботи підприємства, швидкість обробки інформації та якість 
обслуговування користувачів. 
З кожним роком обсяги електронної комерції та онлайн-торгівлі невпинно 
зростають, що зумовлює потребу у створенні сучасних, надійних і масштабованих 
програмних рішень для ведення обліку товарів. Традиційні методи обліку, які 
базуються на використанні електронних таблиць або паперової документації, 
поступово втрачають актуальність через низький рівень автоматизації, складність 
обробки великих обсягів даних та підвищену ймовірність виникнення помилок. 
Саме тому особливої актуальності набуває розробка веб-застосунків, здатних 
забезпечити централізоване зберігання інформації, швидкий доступ до даних та 
автоматизацію основних бізнес-процесів. 
Серверна частина веб-застосунка відіграє ключову роль у забезпеченні 
стабільної роботи системи, обробці запитів користувачів, взаємодії з базою даних, 
реалізації бізнес-логіки та гарантуванні безпеки інформації. Від якості реалізації 
серверної архітектури залежить продуктивність, масштабованість, надійність та 
захищеність усього програмного продукту. Саме тому під час розробки сучасних 
інформаційних систем особлива увага приділяється використанню перевірених 
технологій і фреймворків, які дозволяють створювати ефективні серверні рішення. 
Актуальність теми кваліфікаційної роботи полягає у необхідності створення 
ефективних інформаційних систем для автоматизації процесів обліку товарів, які 
б забезпечували високу швидкодію, зручність використання, надійність та захист 
даних. Розробка подібних систем дозволяє оптимізувати процеси управління 
Арк. 
 ЧДТУ 262217.17 ПЗ 
3 
Змн. Арк. № Документа Підпис Дата  
 
товарами, скоротити час обробки інформації, мінімізувати кількість помилок та 
підвищити ефективність роботи користувачів. 
Об’єкт дослідження – процес автоматизації обліку товарів у веб-
середовищі. 
Предметом дослідження є методи, технології, архітектурні підходи та 
програмні засоби розробки серверної частини веб-застосунка для обліку товарів. У 
межах роботи досліджуються принципи побудови клієнт-серверних систем, 
механізми взаємодії серверної частини з базами даних, способи реалізації бізнес-
логіки, а також методи забезпечення безпеки, автентифікації та авторизації 
користувачів. 
Метою кваліфікаційної роботи є розробка серверної частини веб-застосунка 
для обліку товарів із використанням сучасних технологій веб-розробки, 
забезпеченням надійного зберігання даних, реалізацією функціоналу керування 
товарами. 
Для досягнення поставленої мети необхідно виконати такі завдання: 
• провести аналіз предметної області та існуючих аналогів систем обліку 
товарів; 
• визначити функціональні та нефункціональні вимоги до веб-застосунка; 
• спроєктувати архітектуру серверної частини системи; 
• реалізувати механізми взаємодії з базою даних; 
• забезпечити систему пошуку товарів; 
• реалізувати функціонал керування товарами; 
• провести тестування та перевірку працездатності розробленого застосунка. 
Практична цінність роботи полягає у створенні серверної частини веб-
застосунка, який може бути використаний як основа для побудови повноцінної 
системи обліку товарів у різних сферах діяльності — від невеликих інтернет-
магазинів до корпоративних інформаційних систем. 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
4 
Змн. Арк. № Документа Підпис Дата  
 
РОЗДІЛ 1. ПОСТАНОВКА ЗАДАЧІ. ОГЛЯД ІСНУЮЧИХ РІШЕНЬ, 
АНАЛОГІВ 
 
 
1.1 Опис предметної області 
 
Облік товарів є одним із найважливіших процесів діяльності підприємств, які 
здійснюють торгівельну, виробничу або складську діяльність. Основною метою 
систем обліку товарів є забезпечення ефективного контролю за рухом товарно-
матеріальних цінностей, ведення актуальної інформації про наявність продукції, а 
також автоматизація процесів додавання, оновлення, пошуку та аналізу даних про 
товари. 
Облік товарів являє собою сукупність процесів, пов'язаних зі зберіганням, 
обробкою та аналізом інформації про товарні позиції. До таких процесів належать 
додавання нових товарів до системи, оновлення інформації про них, контроль 
залишків, пошук необхідних даних, формування звітів та аналіз руху товарів. Від 
правильності організації цих процесів залежить якість управління запасами, 
швидкість обслуговування клієнтів та загальна ефективність діяльності 
підприємства. 
Протягом тривалого часу облік товарів здійснювався за допомогою паперової 
документації або електронних таблиць. Такий підхід є досить простим у реалізації, 
однак має низку суттєвих недоліків. Зі збільшенням кількості товарів та 
користувачів значно зростає ймовірність виникнення помилок під час введення 
даних, ускладнюється пошук необхідної інформації та контроль актуальності 
записів. Крім того, ручне ведення обліку потребує значних часових витрат і не 
дозволяє оперативно отримувати актуальну інформацію про стан товарних запасів. 
Саме тому сьогодні більшість підприємств переходить до використання 
автоматизованих інформаційних систем. Такі системи дозволяють централізовано 
зберігати інформацію про товари, забезпечують швидкий доступ до даних та 
Арк. 
 ЧДТУ 262217.17 ПЗ 
5 
Змн. Арк. № Документа Підпис Дата  
 
автоматизують значну частину рутинних операцій. Особливо популярними стають 
веб-застосунки, оскільки вони не потребують встановлення спеціального 
програмного забезпечення на комп'ютери користувачів і можуть використовуватися 
через звичайний веб-браузер. 
Основні характеристики сучасних веб-застосунків для обліку товарів 
включають: 
1. Управління товарами – можливість додавання, редагування, видалення та 
перегляду інформації про товарні позиції. 
2. Категоризація товарів – розподіл продукції за категоріями для спрощення 
навігації, пошуку та управління даними. 
3. Облік товарних залишків – контроль кількості товарів на складі та 
автоматичне оновлення інформації після виконання операцій. 
4. Пошук і фільтрація даних – швидкий пошук товарів за назвою, категорією, 
ціною або іншими характеристиками. 
5. Управління користувачами – створення облікових записів, призначення 
ролей та контроль прав доступу до функцій системи. 
Предметна область даної роботи охоплює процеси управління товарними 
ресурсами за допомогою веб-застосунка. Основним завданням такої системи є 
забезпечення зручного та безпечного способу роботи з інформацією про товари. 
Користувач повинен мати можливість швидко додавати нові товарні позиції, 
редагувати існуючі записи, переглядати характеристики товарів, здійснювати 
пошук та отримувати актуальну інформацію про залишки на складі. 
Одним із головних об'єктів предметної області є товар. Товар представляє 
собою певну одиницю продукції, яка має набір характеристик, необхідних для її 
ідентифікації та обліку. До таких характеристик можуть належати назва товару, 
опис, категорія, ціна, кількість на складі, дата створення запису та інші параметри 
залежно від потреб конкретної системи. Усі ці дані повинні зберігатися в 
структурованому вигляді та бути доступними для швидкої обробки. 
Важливим елементом системи є категоризація товарів. Поділ товарів на 
категорії дозволяє впорядкувати інформацію та спрощує її подальший пошук. 
Арк. 
 ЧДТУ 262217.17 ПЗ 
6 
Змн. Арк. № Документа Підпис Дата  
 
Наприклад, товари можуть бути розподілені за типом продукції, виробником або 
сферою використання. Наявність категорій значно покращує зручність роботи 
користувачів із системою та сприяє ефективнішому управлінню великими 
обсягами даних. 
Сучасні системи обліку товарів також повинні забезпечувати високий рівень 
надійності та захисту інформації. Оскільки в базі даних можуть зберігатися 
важливі відомості про діяльність підприємства, необхідно передбачити механізми 
автентифікації та авторизації користувачів. Це дозволяє гарантувати, що доступ до 
функціоналу системи отримають лише уповноважені особи. Крім того, важливими 
є заходи щодо захисту даних від втрати, пошкодження або несанкціонованого 
доступу. 
Сьогодні автоматизовані системи обліку товарів застосовуються в магазинах, 
складських комплексах, логістичних компаніях, виробничих підприємствах та 
багатьох інших організаціях. Їх використання дозволяє значно скоротити час на 
виконання рутинних операцій, підвищити точність ведення обліку та покращити 
контроль за товарними запасами. Крім того, автоматизація облікових процесів 
сприяє підвищенню конкурентоспроможності підприємства та дозволяє більш 
ефективно використовувати наявні ресурси. 
Таким чином, предметна область обліку товарів є актуальною та важливою 
для сучасних підприємств. Використання веб-застосунків для автоматизації 
відповідних процесів дозволяє підвищити ефективність роботи організації, 
забезпечити достовірність інформації та створити зручне середовище для 
управління товарними ресурсами. Саме тому розробка серверної частини веб-
застосунка для обліку товарів є актуальним завданням, яке має практичне значення 
та відповідає сучасним тенденціям розвитку інформаційних систем і технологій. 
 
 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
7 
Змн. Арк. № Документа Підпис Дата  
 
1.2 Недоліки та слабкі місця існуючих систем обліку товарів 
 
Незважаючи на значний розвиток інформаційних технологій та появу великої 
кількості програмних продуктів для автоматизації бізнес-процесів, багато 
існуючих систем обліку товарів мають ряд недоліків, які можуть негативно 
впливати на ефективність роботи підприємств. Особливо це стосується невеликих 
компаній та організацій, які потребують простого, надійного та доступного 
інструменту для управління товарними ресурсами. 
Основні недоліки існуючих систем обліку товарів: 
• Однією з найбільш поширених проблем є складність використання 
програмного забезпечення. Багато сучасних систем містять надмірну 
кількість функцій, значна частина яких не використовується в повсякденній 
роботі підприємства. Через це інтерфейс стає перевантаженим, а 
користувачам доводиться витрачати додатковий час на навчання та 
адаптацію до системи. Для нових співробітників це може стати причиною 
помилок під час роботи з даними та зниження продуктивності праці. 
• Ще одним суттєвим недоліком є недостатня швидкодія окремих програмних 
рішень. У разі збільшення кількості товарів та користувачів система може 
працювати повільніше, що призводить до затримок під час пошуку 
інформації, обробки запитів та оновлення даних. Подібні проблеми особливо 
помітні у випадках, коли серверна частина застосунка реалізована без 
урахування можливого масштабування або оптимізації роботи з базою даних. 
• Обмежені можливості щодо керування правами доступу користувачів. У 
деяких випадках відсутня гнучка система ролей, через що користувачі 
отримують або надто широкий, або занадто обмежений доступ до функцій 
системи.  
• Недостатній рівень захисту інформації. Застарілі механізми автентифікації 
або не належний захист персональних даних користувачів, відсутність 
сучасних механізмів шифрування, захисту сесій та контролю доступу. 
Арк. 
 ЧДТУ 262217.17 ПЗ 
8 
Змн. Арк. № Документа Підпис Дата  
 
По-перше, окрему увагу слід приділити питанням роботи з базою даних. У 
багатьох системах відсутні механізми оптимізації запитів або використовується 
неефективна структура бази даних. Це призводить до збільшення часу обробки 
інформації та зниження загальної продуктивності системи. Крім того, за 
відсутності належного резервного копіювання існує ризик втрати даних у разі 
технічних несправностей. 
По-друге, ще одним недоліком деяких існуючих рішень є складність 
інтеграції з іншими інформаційними системами підприємства. Сучасний бізнес 
часто використовує декілька програмних продуктів одночасно, тому важливо 
забезпечити можливість обміну даними між ними. Проте не всі системи 
підтримують інтеграцію через API або інші механізми взаємодії, що створює 
додаткові труднощі під час автоматизації бізнес-процесів. 
По-третє, багато програм для обліку товарів розроблялися як настільні 
застосунки та не враховують сучасних вимог до мобільності. Через це користувачі 
не можуть отримати доступ до інформації з різних пристроїв або працювати з 
системою віддалено. В умовах розвитку веб-технологій та хмарних сервісів подібні 
обмеження є суттєвим недоліком. 
Отже, аналіз існуючих систем обліку товарів показує наявність низки 
проблем, серед яких складність використання, недостатня продуктивність, 
обмежені можливості масштабування, проблеми із захистом даних та інтеграцією 
з іншими системами. Усунення зазначених недоліків є важливим завданням під час 
розробки сучасного веб-застосунка для обліку товарів. Саме тому в даній роботі 
особлива увага приділяється проєктуванню надійної серверної частини, яка 
забезпечуватиме високу продуктивність, безпеку та зручність використання 
системи. 
 
 
 
 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
9 
Змн. Арк. № Документа Підпис Дата  
 
1.3 Аналітичний огляд існуючих систем обліку товарів 
 
У сучасних умовах розвитку інформаційних технологій існує велика 
кількість програмних рішень для автоматизації обліку товарів. Це можуть бути як 
прості локальні програми, так і складні веб-системи та корпоративні ERP-рішення. 
Аналітичний огляд таких систем дозволяє визначити їхні основні переваги та 
недоліки, а також сформувати вимоги до розробки більш ефективного програмного 
забезпечення. 
Основною метою аналізу існуючих рішень є виявлення функціональних 
можливостей, які найбільш часто використовуються користувачами, а також 
визначення типових проблем, що виникають під час експлуатації подібних систем. 
Це дозволяє врахувати реальний досвід використання програмного забезпечення та 
уникнути помилок при проєктуванні власного веб-застосунка. 
У сучасних умовах розвитку інформаційних технологій існує велика 
кількість програмних рішень для автоматизації обліку товарів. Це можуть бути як 
прості локальні програми, так і складні веб-системи та корпоративні ERP-рішення. 
Аналітичний огляд таких систем дозволяє визначити їхні основні переваги та 
недоліки, а також сформувати вимоги до розробки більш ефективного програмного 
забезпечення. 
Основною метою аналізу таких рішень є виявлення функціональних 
можливостей, які найбільш часто використовуються користувачами, а також 
визначення типових проблем, що виникають під час експлуатації подібних систем. 
Це дозволяє врахувати реальний досвід використання програмного забезпечення та 
уникнути помилок при проєктуванні власного веб-застосунка. 
Одним із найпоширеніших програмних продуктів для ведення обліку товарів 
на підприємствах є BAS Малий бізнес. Дана система використовується для 
автоматизації торговельної діяльності, ведення складського обліку, контролю 
залишків продукції та формування різноманітної звітності. Програма підтримує 
роботу з декількома складами, контрагентами та категоріями товарів, що дозволяє 
використовувати її навіть на підприємствах із великою кількістю товарних позицій. 
Арк. 
 ЧДТУ 262217.17 ПЗ 
10 
Змн. Арк. № Документа Підпис Дата  
 
Важливою перевагою системи є високий рівень автоматизації бізнес-процесів, 
можливість формування документів у декілька кліків та інтеграція з іншими 
програмними продуктами. Водночас система характеризується складним 
інтерфейсом, значною кількістю налаштувань та потребує певного часу для 
освоєння новими користувачами. Крім того, використання повного функціоналу 
часто пов'язане з додатковими витратами на ліцензування та технічну підтримку. 
Ще одним популярним рішенням є система Odoo Inventory, яка входить до 
складу комплексної ERP-платформи Odoo. Основною особливістю цієї системи є 
модульна архітектура, що дозволяє поступово розширювати функціональність 
відповідно до потреб підприємства. Odoo забезпечує автоматизований облік 
товарів, контроль складських операцій, управління постачанням та формування 
аналітичної звітності. Система підтримує інтеграцію з бухгалтерськими сервісами, 
CRM-системами та інтернет-магазинами, що робить її універсальним 
інструментом для управління бізнесом. Водночас через широкий набір функцій 
система може бути надто складною для невеликих підприємств, а її налаштування 
часто потребує залучення кваліфікованих спеціалістів. 
Проведений аналіз показує, що більшість сучасних систем обліку товарів 
забезпечують широкий набір функціональних можливостей, включаючи 
управління складськими залишками, автоматизацію документообігу, формування 
звітності та інтеграцію з іншими інформаційними системами. Проте багато з них 
характеризуються складністю впровадження, надлишковим функціоналом для 
невеликих підприємств або необхідністю придбання дорогих ліцензій. Крім того, 
частина систем має перевантажений інтерфейс, що ускладнює роботу нових 
користувачів та збільшує час навчання персоналу. 
 
 
 
 
 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
11 
Змн. Арк. № Документа Підпис Дата  
 
1.3.1 Система обліку товарів Microsoft Excel / Google Sheets 
 
Одним із найпростіших інструментів, який часто використовується для 
ведення обліку товарів, є електронні таблиці, такі як Microsoft Excel або Google 
Sheets. Вони не є повноцінними інформаційними системами, однак широко 
застосовуються завдяки своїй доступності та простоті використання. 
Такі рішення мають інтуїтивно зрозумілий інтерфейс та не потребують додаткового 
програмного забезпечення для складних налаштувань. Користувач може швидко 
створювати таблиці, додавати формули, фільтри та здійснювати базові операції з 
даними. 
Водночас суттєвим недоліком є відсутність централізованого зберігання 
даних у контексті багатокористувацької роботи. При одночасному редагуванні 
файлів різними користувачами можуть виникати конфлікти версій або втрата 
актуальності даних. Крім того, відсутні розвинені механізми контролю доступу та 
захисту інформації. Також електронні таблиці мають обмежені можливості 
масштабування. При збільшенні обсягів даних знижується продуктивність, а 
пошук та аналіз інформації стають менш ефективними.  
 
1.3.2 Веб-системи обліку товарів (ERP/CRM системи) 
 
Більш розвиненим класом рішень є веб-системи обліку товарів або модулі 
ERP/CRM систем, які використовуються у великих підприємствах. До таких 
систем можна віднести, наприклад, Odoo, SAP Business One або інші корпоративні 
рішення. 
Арк. 
 ЧДТУ 262217.17 ПЗ 
12 
Змн. Арк. № Документа Підпис Дата  
 
 
Рисунок 1 – ERP Системи 
 
Такі системи забезпечують централізоване зберігання даних, 
багатокористувацький доступ та високий рівень безпеки. Вони дозволяють 
автоматизувати більшість процесів, пов’язаних з обліком товарів, включаючи 
контроль залишків, формування звітів, аналітику та інтеграцію з іншими бізнес-
процесами. Важливою перевагою є наявність розвиненої системи ролей 
користувачів, що дозволяє чітко розмежовувати права доступу залежно від 
функціональних обов’язків. Однак такі системи мають і певні недоліки. Зокрема, 
вони є досить складними у впровадженні та налаштуванні, потребують значних 
ресурсів для підтримки, а також можуть бути надлишковими для невеликих 
підприємств. 
Отже, основними перевагами є функціональність, масштабованість та 
безпека, а недоліками — складність впровадження та висока вартість. 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
13 
Змн. Арк. № Документа Підпис Дата  
 
1.3.3 Веб-застосунок інвентаризації (локальні корпоративні системи) 
 
Ще одним типом рішень для обліку товарів є локальні корпоративні веб-
застосунки, які розробляються під конкретні потреби підприємства. Такі системи 
зазвичай створюються індивідуально та використовуються всередині організації 
для контролю складських залишків, руху товарів та ведення внутрішньої звітності. 
Подібні рішення мають високу гнучкість, оскільки функціонал розробляється 
відповідно до специфіки бізнесу. Це дозволяє реалізувати лише ті модулі, які 
дійсно необхідні користувачам, без зайвих компонентів, характерних для великих 
ERP-систем. 
Водночас такі системи часто мають обмежену масштабованість та залежать від 
якості початкової архітектури. У разі неправильного проєктування серверної 
частини можуть виникати проблеми з продуктивністю, безпекою та підтримкою 
системи в майбутньому. 
 
 1.3.4 Хмарні системи обліку товарів 
 
Окрему категорію сучасних систем обліку товарів становлять хмарні сервіси, 
які надають користувачам доступ до функціоналу через веб-браузер без 
необхідності встановлення програмного забезпечення на локальний комп’ютер. 
Одним із найбільш відомих представників цього класу є Zoho Inventory. 
Дана система дозволяє здійснювати облік товарів, контролювати складські 
залишки, відстежувати переміщення продукції, формувати замовлення та 
виконувати аналіз товарообігу. Завдяки використанню хмарних технологій усі дані 
зберігаються на віддалених серверах, що забезпечує доступ до інформації з будь-
якого пристрою, підключеного до мережі Інтернет. 
Перевагою таких систем є відсутність необхідності самостійно підтримувати 
серверну інфраструктуру та виконувати резервне копіювання даних. Крім того, 
більшість хмарних платформ забезпечують автоматичне оновлення програмного 
Арк. 
 ЧДТУ 262217.17 ПЗ 
14 
Змн. Арк. № Документа Підпис Дата  
 
забезпечення, що дозволяє користувачам працювати з актуальними версіями 
системи без додаткових налаштувань. 
Важливою особливістю є також можливість інтеграції з іншими сервісами 
електронної комерції, платіжними системами та CRM-платформами. Це дозволяє 
автоматизувати значну частину бізнес-процесів та зменшити кількість ручних 
операцій під час роботи з товарами. 
Разом із перевагами існують і певні недоліки. Робота системи повністю 
залежить від стабільності інтернет-з’єднання, а зберігання інформації на сторонніх 
серверах може викликати занепокоєння щодо конфіденційності даних. Крім того, 
для використання повного набору функцій часто необхідно оформлювати платну 
підписку. 
Отже, хмарні системи обліку товарів поєднують зручність використання, 
високу доступність та сучасний функціонал, проте їх використання пов'язане із 
залежністю від зовнішньої інфраструктури та додатковими фінансовими 
витратами. 
 
1.4 Висновки до розділу 1 
 
У розділі описано предметну область обліку товарів, обґрунтовано 
доцільність розробки серверної частини веб-застосунка для обліку товарів, 
визначено чинники, що впливають на побудову та функціонування систем обліку 
товарів, виконано аналітичний огляд існуючих систем обліку товарів, включаючи 
електронні таблиці, корпоративні ERP-рішення, локальні та хмарні сервіси. 
 
 
 
 
 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
15 
Змн. Арк. № Документа Підпис Дата  
 
РОЗДІЛ 2. ОБҐРУНТУВАННЯ ТЕХНІЧНОГО ЗАВДАННЯ 
 
 
2.1 Призначення серверної частини веб-застосунка для обліку товарів 
 
В умовах сучасної цифровізації бізнес-процесів автоматизація обліку товарів 
є одним із найважливіших напрямів розвитку інформаційних систем. Ефективне 
управління товарними запасами дозволяє підприємствам підвищувати 
продуктивність роботи, мінімізувати помилки під час обробки даних та 
забезпечувати своєчасний доступ до актуальної інформації. Саме тому розробка 
веб-застосунків для обліку товарів набуває все більшої актуальності як для 
невеликих компаній, так і для великих підприємств. 
 
Рисунок 2.1 – Приклад роботи серверної частини 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
16 
Змн. Арк. № Документа Підпис Дата  
 
Серверна частина веб-застосунка є основним компонентом системи, який 
відповідає за обробку запитів користувачів, виконання бізнес-логіки, взаємодію з 
базою даних та забезпечення безпеки інформації. Саме серверна частина виступає 
посередником між користувацьким інтерфейсом та сховищем даних, забезпечуючи 
коректне виконання всіх операцій із товарами. Основним призначенням 
розроблюваного веб-застосунка є автоматизація процесів обліку товарів, 
централізоване зберігання інформації та забезпечення зручного доступу до неї 
через веб-інтерфейс. Система повинна надавати користувачам можливість 
керувати товарними позиціями, контролювати залишки продукції, здійснювати 
пошук інформації та виконувати інші операції, необхідні для ефективного 
управління товарними ресурсами. 
Важливою особливістю сучасних веб-застосунків є можливість одночасної 
роботи декількох користувачів із єдиною базою даних. Це дозволяє забезпечити 
актуальність інформації в режимі реального часу та уникнути проблем, пов'язаних 
із дублюванням або втратою даних. 
На важливість розробки серверної частини веб-застосунка для обліку товарів 
вказують такі аспекти: 
1. Централізоване зберігання даних – усі відомості про товари зберігаються в 
єдиній базі даних, що забезпечує їх актуальність та цілісність. 
2. Автоматизація облікових процесів – зменшення кількості ручних операцій та 
мінімізація людських помилок під час роботи з інформацією. 
3. Швидкий доступ до даних – можливість оперативного отримання інформації 
про товари, їх характеристики та залишки на складі. 
4. Контроль доступу до системи – використання механізмів автентифікації та 
авторизації для захисту інформації від несанкціонованого доступу. 
5. Підвищення продуктивності роботи підприємства – скорочення часу на 
пошук, оновлення та аналіз інформації про товарні ресурси. 
6. Масштабованість системи – можливість подальшого розширення 
функціоналу без суттєвих змін архітектури застосунка. 
Арк. 
 ЧДТУ 262217.17 ПЗ 
17 
Змн. Арк. № Документа Підпис Дата  
 
7. Підтримка багатокористувацького режиму – забезпечення одночасної роботи 
декількох користувачів із системою. 
8. Формування основи для аналітики та звітності – накопичення та обробка 
даних, необхідних для прийняття управлінських рішень. 
Розроблювана серверна частина веб-застосунка повинна забезпечувати надійну 
взаємодію між клієнтською частиною та базою даних, підтримувати виконання 
CRUD-операцій, а також гарантувати безпечну роботу користувачів у системі. 
Таким чином, призначення серверної частини веб-застосунка для обліку товарів 
полягає у створенні надійної програмної основи для автоматизації процесів 
управління товарними ресурсами. Реалізація такого рішення дозволить підвищити 
ефективність роботи користувачів, забезпечити цілісність даних та створити умови 
для подальшого розвитку інформаційної системи. 
 
2.2 Вимоги до архітектури серверної частини веб-застосунка для обліку 
товарів 
 
У процесі проєктування сучасних інформаційних систем особлива увага 
приділяється визначенню вимог до їх архітектури та принципів роботи. Це 
дозволяє забезпечити стабільність, масштабованість та ефективність майбутнього 
програмного продукту. Серверна частина веб-застосунка для обліку товарів є 
ключовим компонентом системи, оскільки саме вона відповідає за обробку даних, 
реалізацію бізнес-логіки та взаємодію з базою даних. 
На етапі проєктування необхідно сформувати основні вимоги, які забезпечать 
якісну роботу системи в умовах реального використання, зокрема при великій 
кількості товарів і користувачів. 
До основних вимог до серверної частини веб-застосунка для обліку товарів 
належать: 
1. Висока продуктивність та швидкодія системи. 
Серверна частина повинна забезпечувати оперативну обробку запитів 
користувачів незалежно від навантаження. Це означає мінімальний час 
Арк. 
 ЧДТУ 262217.17 ПЗ 
18 
Змн. Арк. № Документа Підпис Дата  
 
відповіді при виконанні операцій додавання, редагування, видалення та 
отримання інформації про товари. Особливо важливо забезпечити стабільну 
роботу системи при одночасному доступі великої кількості користувачів та 
великих обсягах даних. 
2. Масштабованість архітектури системи. 
Система повинна бути спроєктована таким чином, щоб у майбутньому можна 
було легко розширювати її функціонал та збільшувати навантаження без 
необхідності повної перебудови архітектури. Це включає можливість 
додавання нових модулів, сервісів та інтеграцій із зовнішніми системами. 
3. Надійність та стабільність роботи. 
Серверна частина повинна забезпечувати безперебійну роботу навіть у 
випадках виникнення помилок, некоректних запитів або перевантаження 
системи. Важливо передбачити механізми обробки винятків та захисту від 
збоїв, щоб мінімізувати ризик втрати даних або зупинки роботи системи. 
4. Безпека інформації та захист даних користувачів. 
Однією з ключових вимог є забезпечення належного рівня безпеки. Це 
включає використання механізмів автентифікації та авторизації 
користувачів, захист від несанкціонованого доступу, шифрування 
конфіденційних даних, а також контроль прав доступу до різних функцій 
системи. 
5. Централізована обробка та зберігання даних. 
Усі операції з товарами повинні виконуватися через серверну логіку з 
використанням єдиної бази даних. Це дозволяє забезпечити узгодженість 
інформації, уникнути дублювання даних та підвищити точність обліку 
товарних залишків. 
6. Підтримка багатокористувацького режиму роботи. 
Система повинна забезпечувати одночасну роботу декількох користувачів 
без конфліктів даних. Це особливо важливо для підприємств, де облік товарів 
ведеться кількома співробітниками паралельно. 
7. Гнучка система ролей та прав доступу. 
Необхідно передбачити розмежування доступу до функціоналу системи 
залежно від ролі користувача. Наприклад, адміністратор має повний доступ 
Арк. 
 ЧДТУ 262217.17 ПЗ 
19 
Змн. Арк. № Документа Підпис Дата  
 
до системи, тоді як звичайний користувач може мати лише обмежені права 
на перегляд або редагування даних. 
8. Модульність та структурованість коду. 
Серверна частина повинна бути побудована за модульним принципом із 
чітким розділенням на шари (контролери, сервіси, репозиторії). Це значно 
спрощує супровід системи, тестування та подальший розвиток програмного 
продукту. 
9. Оптимізація взаємодії з базою даних. 
Необхідно забезпечити ефективну роботу з базою даних шляхом 
використання оптимізованих запитів, індексації таблиць та правильного 
проєктування структури даних. Це дозволяє зменшити навантаження на 
сервер та підвищити швидкість виконання операцій. 
10. Можливість інтеграції з іншими системами. 
Серверна частина повинна підтримувати API для взаємодії з іншими 
сервісами, такими як аналітичні системи, мобільні додатки або зовнішні 
платформи. Це забезпечує гнучкість та розширюваність системи. 
11. Логування та моніторинг подій. 
Система повинна фіксувати основні дії користувачів та системні події, що 
дозволяє відстежувати помилки, аналізувати роботу системи та підвищувати 
її надійність. 
12. Можливість подальшого розширення функціоналу. 
Архітектура повинна передбачати легке додавання нових можливостей без 
необхідності суттєвих змін у вже реалізованих модулях системи. 
Таким чином, дотримання наведених вимог дозволяє створити сучасну, надійну 
та ефективну серверну частину веб-застосунка для обліку товарів, яка буде 
відповідати актуальним вимогам до інформаційних систем та забезпечить 
стабільну роботу в умовах реальної експлуатації. 
 
 
 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
20 
Змн. Арк. № Документа Підпис Дата  
 
2.3 Використання фреймворку Tailwind CSS для створення інтерфейсу 
веб-застосунка 
 
Однією з важливих вимог до сучасних веб-застосунків є створення зручного, 
адаптивного та візуально привабливого інтерфейсу користувача. Незалежно від 
складності серверної частини, саме інтерфейс визначає зручність взаємодії 
користувача із системою та впливає на ефективність роботи з даними. Для 
реалізації інтерфейсної частини у даному проєкті було використано фреймворк 
Tailwind CSS. 
Tailwind CSS – це сучасний utility-first CSS-фреймворк, який дозволяє 
створювати інтерфейси шляхом використання готових класів без необхідності 
написання великої кількості кастомного CSS-коду. На відміну від традиційних 
CSS-фреймворків, Tailwind не нав’язує готові компоненти, а надає набір 
низькорівневих утиліт, за допомогою яких розробник самостійно формує дизайн 
інтерфейсу. Однією з ключових особливостей Tailwind CSS є гнучка система 
класів, яка дозволяє безпосередньо керувати стилями елементів (відступами, 
кольорами, розмірами, позиціонуванням, типографікою) прямо в HTML-структурі. 
Це значно спрощує процес розробки та дозволяє швидко змінювати вигляд 
інтерфейсу без переходу між різними файлами стилів. 
 
Рисунок 2.2 – Офіційний ресурс Tailwind CSS 
Арк. 
 ЧДТУ 262217.17 ПЗ 
21 
Змн. Арк. № Документа Підпис Дата  
 
У межах даного веб-застосунка для обліку товарів використання Tailwind CSS є 
доцільним, оскільки дозволяє створити сучасний та адаптивний інтерфейс для 
роботи з товарними даними. 
 
Рисунок 2.3 – Підключення Tailwind CSS 
 
До основних переваг використання Tailwind CSS у даному проєкті належать: 
1. Швидкість розробки інтерфейсу. 
Використання готових utility-класів дозволяє значно скоротити час 
створення сторінок, форм, таблиць та інших елементів інтерфейсу без 
необхідності написання великої кількості CSS-коду.  
2. Гнучкість у налаштуванні дизайну. 
Tailwind CSS не обмежує розробника готовими шаблонами, що дозволяє 
створювати унікальний дизайн інтерфейсу, адаптований під конкретні 
вимоги системи обліку товарів.  
3. Адаптивність інтерфейсу. 
Фреймворк має вбудовані механізми для створення адаптивного дизайну, 
що дозволяє коректно відображати систему на різних пристроях, 
включаючи персональні комп’ютери, планшети та смартфони.  
4. Підтримка сучасних UI-підходів. 
Tailwind CSS легко інтегрується з сучасними JavaScript-фреймворками та 
серверними технологіями, що робить його зручним для побудови 
динамічних веб-застосунків.  
5. Масштабованість стилів. 
Завдяки утилітарному підходу стилі залишаються структурованими навіть 
у великих проєктах, що спрощує їх подальшу підтримку та розвиток.  
6. Зменшення кількості кастомного CSS. 
Більшість стилів реалізується через готові класи, що зменшує ризик 
дублювання коду та покращує читабельність проєкту.  
Арк. 
 ЧДТУ 262217.17 ПЗ 
22 
Змн. Арк. № Документа Підпис Дата  
 
У контексті даного дипломного проєкту Tailwind CSS дозволив реалізувати 
сучасний, мінімалістичний та зручний інтерфейс для роботи з обліком товарів, 
забезпечивши високу швидкість розробки та гнучкість у налаштуванні візуальної 
частини системи. 
 
2.4 Використання SQL та СУБД PostgreSQL у веб-застосунку 
 
У сучасних інформаційних системах одним із ключових компонентів є база 
даних, яка забезпечує зберігання, обробку та цілісність інформації. Для веб-
застосунка обліку товарів правильний вибір системи управління базами даних є 
критично важливим, оскільки саме від неї залежить швидкість роботи системи, 
надійність збереження даних та можливість масштабування. 
У даному дипломному проєкті для зберігання та обробки даних використовується 
реляційна база даних PostgreSQL. Це сучасна об’єктно-реляційна система 
управління базами даних з відкритим вихідним кодом, яка підтримує стандарт SQL 
та забезпечує високу продуктивність, надійність і гнучкість у роботі з великими 
обсягами інформації. 
SQL (Structured Query Language) є стандартною мовою для роботи з реляційними 
базами даних. Вона використовується для виконання основних операцій над 
даними, таких як створення таблиць, додавання нових записів, оновлення 
інформації, видалення даних та виконання складних запитів для отримання 
необхідної інформації. 
У межах розроблюваного веб-застосунка SQL-запити використовуються для 
реалізації основної бізнес-логіки, зокрема: 
• отримання списку товарів із бази даних;  
• додавання нових товарних позицій;  
• оновлення інформації про існуючі товари;  
• видалення застарілих або непотрібних записів;  
• виконання пошуку та фільтрації даних за різними параметрами;  
• формування вибірок для подальшої аналітики.  
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
23 
Змн. Арк. № Документа Підпис Дата  
 
 
 
Рисунок 2.4 – Інтерфейс PostgreSQL 
 
PostgreSQL було обрано завдяки ряду переваг, які роблять його оптимальним 
рішенням для даного проєкту: 
1. PostgreSQL забезпечує коректну роботу навіть при високих навантаженнях 
та великій кількості одночасних запитів до бази даних.  
2. Система повністю підтримує стандарт SQL, що дозволяє використовувати 
універсальні та зрозумілі запити для роботи з даними.  
3. PostgreSQL дозволяє працювати не лише з реляційними даними, але й з 
розширеними типами даних, такими як JSON, що є корисним для сучасних 
веб-застосунків.  
4. Система здатна ефективно працювати як у невеликих проєктах, так і в 
масштабних корпоративних системах з великим обсягом інформації.  
5. Завдяки механізму транзакцій забезпечується цілісність даних навіть у 
випадку помилок або збоїв у роботі системи.  
6. PostgreSQL підтримує механізми контролю доступу, що дозволяє 
обмежувати права користувачів на рівні бази даних.  
У поєднанні з серверною частиною веб-застосунка, реалізованою на основі 
сучасних технологій, PostgreSQL забезпечує ефективну та стабільну роботу 
системи обліку товарів. Використання SQL дозволяє гнучко керувати даними та 
реалізовувати складну бізнес-логіку без втрати продуктивності. 
Таким чином, вибір PostgreSQL як основної системи управління базою даних є 
обґрунтованим і відповідає вимогам до сучасних інформаційних систем, які 
повинні бути надійними, масштабованими та ефективними. 
Арк. 
 ЧДТУ 262217.17 ПЗ 
24 
Змн. Арк. № Документа Підпис Дата  
 
2.5 Навігація веб-застосунка для обліку товарів 
 
Зручна та зрозуміла навігація є важливою складовою будь-якого веб-застосунка, 
оскільки вона безпосередньо впливає на швидкість виконання користувачами 
необхідних операцій та загальний комфорт роботи із системою. Особливо це 
актуально для веб-застосунків обліку товарів, де користувачі регулярно працюють 
із великими обсягами даних, здійснюють пошук інформації, додають нові записи 
та редагують існуючі. 
Під час проєктування веб-застосунка для обліку товарів було передбачено 
використання декількох видів навігації, які забезпечують швидкий доступ до 
основного функціоналу системи та спрощують взаємодію користувача з 
інформацією. 
1. Верхнє навігаційне меню:  
o Розташовується у верхній частині сторінки.  
o Містить посилання на основні розділи системи, такі як «Головна 
сторінка», «Товари», «Категорії», «Користувачі», «Звіти» та інші 
функціональні модулі.  
o Дозволяє швидко переходити між основними частинами веб-
застосунка без необхідності повертатися на головну сторінку.  
2. Адаптивне меню для мобільних пристроїв:  
o Використовується при роботі зі смартфонів та планшетів.  
o Представлене у вигляді меню-бургера, яке відкривається після 
натискання відповідної кнопки.  
o Забезпечує зручний доступ до всіх розділів системи навіть на 
пристроях з невеликими розмірами екрана.  
3. Навігація між сторінками товарів:  
o Дозволяє користувачу швидко переходити між переглядом списку 
товарів, створенням нового запису та редагуванням існуючих даних.  
o Забезпечує логічну послідовність роботи із товарною інформацією.  
4. Пошук та фільтрація даних:  
o Дає можливість швидко знаходити необхідні товари за назвою, 
категорією або іншими характеристиками.  
Арк. 
 ЧДТУ 262217.17 ПЗ 
25 
Змн. Арк. № Документа Підпис Дата  
 
o Значно скорочує час пошуку інформації при великій кількості записів 
у базі даних.  
o Дозволяє користувачам працювати лише з необхідною вибіркою даних.  
5. Кнопки виконання основних операцій:  
o Для кожного товару передбачені кнопки перегляду, редагування та 
видалення.  
o Розташування цих елементів безпосередньо біля записів спрощує 
роботу користувача та зменшує кількість зайвих переходів між 
сторінками.  
6. Форми введення та редагування інформації:  
o Забезпечують зручне створення нових товарних позицій та оновлення 
існуючих записів.  
o Містять зрозумілі підписи полів та повідомлення про помилки 
введення даних.  
o Дозволяють швидко повернутися до списку товарів після завершення 
операції.  
7. Система повідомлень та сповіщень:  
o Інформує користувача про успішне виконання операцій або 
виникнення помилок.  
o Допомагає контролювати результати взаємодії із системою та 
підвищує зручність використання веб-застосунка.  
Під час розробки особлива увага приділялася простоті та логічності навігації. 
Інтерфейс побудований таким чином, щоб користувач міг швидко знаходити 
необхідні функції та виконувати основні операції без тривалого навчання роботі із 
системою. Використання адаптивного дизайну на базі Tailwind CSS забезпечує 
коректне відображення навігаційних елементів на різних типах пристроїв та 
дозволяє комфортно працювати із застосунком як на персональних комп’ютерах, 
так і на мобільних пристроях. 
 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
26 
Змн. Арк. № Документа Підпис Дата  
 
2.6 Використання Maven та PostgreSQL у процесі розробки веб-
застосунка 
 
Під час розробки веб-застосунка для обліку товарів важливу роль відіграє 
правильний вибір інструментів для керування проєктом та зберігання даних. Для 
реалізації серверної частини системи було використано систему автоматизації 
збірки Maven та систему управління базами даних PostgreSQL. Застосування цих 
технологій дозволило спростити процес розробки, забезпечити стабільність роботи 
застосунка та підвищити ефективність роботи з даними. Apache Maven є одним із 
найпоширеніших інструментів для керування Java-проєктами. Основним його 
призначенням є автоматизація процесів компіляції, тестування, збирання та 
керування залежностями. У межах даного проєкту Maven використовувався для 
підключення необхідних бібліотек і фреймворків. 
 
Рисунок 2.5 – Підключення Maven 
Арк. 
 ЧДТУ 262217.17 ПЗ 
27 
Змн. Арк. № Документа Підпис Дата  
 
Використання Maven надає ряд переваг під час розробки програмного 
забезпечення: 
1. Автоматичне керування залежностями, що дозволяє швидко підключати 
необхідні бібліотеки без ручного завантаження файлів.  
2. Спрощення процесу збірки проєкту та створення готового програмного 
продукту.  
3. Підтримка стандартизованої структури проєкту, що покращує його 
читабельність та підтримку.  
4. Можливість швидкого оновлення версій бібліотек і компонентів.  
5. Інтеграція з сучасними середовищами розробки та системами контролю 
версій.  
Для зберігання інформації про товари, користувачів та інші дані системи було 
використано PostgreSQL. Дана система управління базами даних є однією з 
найпопулярніших реляційних СУБД та широко використовується при створенні 
веб-застосунків завдяки своїй надійності, продуктивності та підтримці сучасних 
стандартів роботи з даними. 
У базі даних PostgreSQL зберігається вся інформація, необхідна для 
функціонування системи обліку товарів. До неї належать відомості про товари, їх 
характеристики, категорії, користувачів системи та результати виконаних операцій. 
Взаємодія між серверною частиною застосунка та базою даних здійснюється за 
допомогою технології Spring Data JPA, яка значно спрощує виконання операцій 
створення, читання, оновлення та видалення записів. 
 
3. Висновок до розділу 2 
 
У розділі визначено основне призначення веб-застосунка для обліку товарів та 
сформовано вимоги до його функціонування. Розглянуто особливості побудови 
інтерфейсу користувача з використанням фреймворку Tailwind CSS, обґрунтовано 
вибір системи управління базами даних PostgreSQL та засобу керування 
залежностями Maven.  
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
28 
Змн. Арк. № Документа Підпис Дата  
 
РОЗДІЛ 3. ПРОЄКТУВАННЯ ТА РЕАЛІЗАЦІЯ ВЕБ-ЗАСТОСУНКА 
 
3.1 Обґрунтування вибору засобів розробки 
 
У процесі розробки серверної частини веб-застосунка для обліку товарів 
важливим етапом є вибір програмних засобів та технологій, які забезпечать 
стабільність роботи системи, зручність розробки та можливість подальшого 
розширення функціоналу. Правильно обрані інструменти дозволяють спростити 
процес створення програмного забезпечення, підвищити його якість та скоротити 
час реалізації проєкту. 
Для розробки програмного продукту було розглянуто декілька популярних 
середовищ розробки, серед яких Visual Studio Code, IntelliJ IDEA та Eclipse. 
Visual Studio Code є одним із найпоширеніших редакторів коду серед сучасних 
розробників. Він розроблений компанією Microsoft та поширюється безкоштовно. 
Редактор підтримує велику кількість мов програмування, має інтегровану роботу з 
Git, вбудований термінал, систему розширень та високу швидкодію навіть на 
великих проєктах. Завдяки широкому набору плагінів Visual Studio Code легко 
адаптується під різні технології та потреби розробника. 
IntelliJ IDEA є потужним середовищем розробки для мови Java. Воно забезпечує 
автоматичне доповнення коду, інструменти рефакторингу та глибоку інтеграцію з 
фреймворками Java. Водночас повна версія середовища є комерційним продуктом, 
а велика кількість функцій може бути надлишковою для невеликих проєктів. 
Eclipse є одним із найстаріших середовищ розробки для Java, яке підтримує 
широкий спектр технологій та має значну кількість додаткових модулів. Проте його 
інтерфейс поступається сучасним рішенням за зручністю використання, а 
продуктивність у деяких випадках є нижчою порівняно з новими інструментами. 
Після аналізу зазначених засобів було обрано Visual Studio Code. Основними 
причинами такого вибору стали безкоштовність, висока швидкодія, підтримка 
Арк. 
 ЧДТУ 262217.17 ПЗ 
29 
Змн. Арк. № Документа Підпис Дата  
 
великої кількості розширень та зручна інтеграція з технологіями, що 
використовувалися під час розробки веб-застосунка. 
Основною мовою програмування серверної частини було обрано Java. Дана 
мова широко використовується для створення корпоративних інформаційних 
систем завдяки своїй надійності, безпеці та платформонезалежності. Крім того, 
Java має велику спільноту розробників та значну кількість готових бібліотек, що 
прискорюють процес створення програмного забезпечення. 
Для реалізації клієнтської частини застосунка використовувалися HTML та 
JavaScript. HTML забезпечує створення структури веб-сторінок та відображення 
інформації користувачу, тоді як JavaScript дозволяє реалізувати динамічну 
поведінку елементів інтерфейсу, обробку подій та взаємодію користувача із 
системою без необхідності перезавантаження сторінки. 
Для оформлення інтерфейсу було використано CSS-фреймворк Tailwind CSS. 
Даний інструмент надає набір готових утилітарних класів, які дозволяють швидко 
створювати сучасний та адаптивний дизайн без написання великої кількості 
власних стилів. Використання Tailwind CSS дозволило забезпечити єдиний стиль 
оформлення сторінок та адаптивність інтерфейсу для різних типів пристроїв. 
Для керування залежностями та автоматизації процесу збірки проєкту 
використовувався Apache Maven. Завдяки Maven стало можливим централізовано 
керувати бібліотеками, автоматично завантажувати необхідні залежності та 
підтримувати стандартизовану структуру проєкту. Це значно спростило процес 
розробки та подальшого супроводу програмного забезпечення. 
Для зберігання даних було використано систему управління базами даних 
PostgreSQL. Вона забезпечує надійне зберігання інформації про товари, підтримує 
транзакційність, має високу продуктивність та добре підходить для веб-
застосунків, що працюють із великими обсягами даних. 
Під час розробки також використовувався інструмент для автоматичного 
відстеження змін у веб-застосунку в режимі реального часу. Це дозволяло миттєво 
переглядати результати внесених змін без необхідності ручного перезапуску 
Арк. 
 ЧДТУ 262217.17 ПЗ 
30 
Змн. Арк. № Документа Підпис Дата  
 
застосунка після кожного редагування коду, що значно прискорило процес 
розробки та тестування інтерфейсу. 
Таким чином, використання Visual Studio Code, Java, HTML, JavaScript, Tailwind 
CSS, Maven та PostgreSQL дозволило створити сучасний веб-застосунок для обліку 
товарів, який відповідає вимогам продуктивності, надійності та зручності 
використання. Обраний набір технологій забезпечує можливість подальшого 
розвитку системи та її адаптації до нових функціональних вимог.  
 
3.2 Опис реалізації веб-застосунка для обліку товарів 
 
Розробка веб-застосунка для обліку товарів здійснювалася поетапно 
відповідно до визначених вимог та поставлених завдань. На початковому етапі 
було проведено аналіз предметної області, сформовано перелік основних функцій 
системи та розроблено загальний план реалізації проєкту. Особливу увагу було 
приділено проєктуванню структури даних, організації взаємодії між серверною 
частиною та базою даних, а також забезпеченню зручності використання 
майбутнього програмного продукту. 
Під час створення веб-застосунка використовувався стек технологій, до 
складу якого входять Java, PostgreSQL, HTML, JavaScript, Tailwind CSS та Maven. 
Такий набір технологій дозволив реалізувати надійну серверну частину, 
забезпечити зручний користувацький інтерфейс та організувати ефективну роботу 
з даними. 
Розробка інтерфейсу застосунка розпочиналася зі створення сторінок за 
допомогою HTML та використання стандартних можливостей CSS. На початкових 
етапах більшість стилів створювалася вручну, що дозволило сформувати базову 
структуру сторінок та визначити основні принципи оформлення інтерфейсу. Проте 
зі збільшенням кількості сторінок та елементів виникла необхідність у більш 
зручному способі керування стилями. Саме тому на наступних етапах було 
Арк. 
 ЧДТУ 262217.17 ПЗ 
31 
Змн. Арк. № Документа Підпис Дата  
 
впроваджено фреймворк Tailwind CSS, який значно спростив процес оформлення 
інтерфейсу та забезпечив адаптивність веб-застосунка для різних пристроїв. 
Під час розробки дизайну та функціональних можливостей застосунка 
використовувалися сучасні підходи до веб-розробки. Для формування структури 
сторінок, розташування елементів інтерфейсу та реалізації навігації проводився 
аналіз існуючих веб-застосунків і систем обліку товарів.  
Для зберігання інформації про товари використовується база даних 
PostgreSQL. У базі даних реалізовано структуру таблиць, необхідних для 
зберігання інформації про товари, їх характеристики та інші дані, що 
використовуються у системі. 
 
 
Рисунок 3.1 – База даних обліку товарів 
Арк. 
 ЧДТУ 262217.17 ПЗ 
32 
Змн. Арк. № Документа Підпис Дата  
 
Керування залежностями та процесом складання проєкту здійснювалося за 
допомогою Apache Maven. Використання Maven дозволило автоматизувати 
підключення необхідних бібліотек, підтримувати єдину структуру проєкту та 
спростити процес його подальшого розвитку. 
Для прискорення процесу розробки використовувалися інструменти 
автоматичного відстеження змін у проєкті. Завдяки цьому після внесення змін до 
коду сторінки веб-застосунка автоматично оновлювалися у браузері без 
необхідності ручного перезапуску сервера або повторного відкриття сторінки. 
Такий підхід значно підвищив ефективність розробки та скоротив час тестування 
внесених змін. 
У процесі реалізації значна увага приділялася забезпеченню зрозумілої 
структури коду, оптимізації роботи з даними та створенню інтуїтивно зрозумілого 
інтерфейсу користувача. У результаті було розроблено веб-застосунок для обліку 
товарів, який дозволяє виконувати основні операції з даними, забезпечує 
централізоване зберігання інформації та може слугувати основою для подальшого 
розвитку і розширення функціональності системи. 
 
 
Рисунок 3.2 – Головна сторінка 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
33 
Змн. Арк. № Документа Підпис Дата  
 
 
Рисунок 3.3 – Реалізація пошуку 
 
 
Рисунок 3.4 – Додавання нової деталі 
 
 
Рисунок 3.5 – Нова деталь у кінці списку 
 
 
 
 
 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
34 
Змн. Арк. № Документа Підпис Дата  
 
3.3 Висновки до розділу 3 
 
 
У третьому розділі дипломної роботи проведено обґрунтування вибору 
програмних засобів та технологій, що були використані під час розробки 
вебдодатку для обліку товарів. Здійснено аналіз сучасних інструментів 
веброзробки та визначено найбільш доцільні засоби для створення клієнтської та 
серверної частини застосунку, а також для організації бази даних і забезпечення 
взаємодії між компонентами системи. 
У розділі детально описано процес реалізації вебдодатку для обліку товарів, 
зокрема структуру програмного забезпечення, основні функціональні модулі 
системи, реалізацію інтерфейсу користувача та механізми обробки й збереження 
даних. Описано особливості роботи системи авторизації, керування товарами, 
пошуку, редагування та видалення записів, а також взаємодію користувача з 
інформаційною системою через вебінтерфейс. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
35 
Змн. Арк. № Документа Підпис Дата  
 
ВИСНОВКИ 
 
У кваліфікаційній роботі було розроблено веб-застосунок для обліку товарів 
із використанням сучасних інформаційних технологій та підходів до побудови 
серверної частини системи. Реалізоване програмне рішення дозволяє здійснювати 
базові операції з товарами, зокрема додавання нових позицій, редагування наявних 
записів, видалення та пошук товарів у базі даних, що забезпечує зручний та 
ефективний процес ведення обліку. 
Для досягнення поставленої мети були виконані наступні завдання: 
розглянуто предметну область та основні принципи функціонування систем обліку 
товарів; проведено аналітичний огляд існуючих програмних рішень, включаючи 
електронні таблиці, ERP/CRM системи, хмарні сервіси та локальні корпоративні 
застосунки; визначено їхні основні переваги та недоліки; сформовано вимоги до 
майбутньої системи; обґрунтовано вибір технологій та інструментів розробки; а 
також реалізовано веб-застосунок відповідно до поставлених вимог. 
У процесі аналізу існуючих рішень було встановлено, що більшість сучасних 
систем обліку товарів характеризуються високим рівнем функціональності, проте 
часто є надмірно складними для користувачів або потребують значних фінансових 
витрат на впровадження та підтримку. У той же час прості рішення мають 
обмежені можливості масштабування та автоматизації процесів. Це підтверджує 
доцільність розробки власного веб-застосунка, орієнтованого на базові та 
найбільш затребувані функції. 
Розроблена система створена з урахуванням вимог до зручності 
використання, продуктивності та надійності зберігання даних. Використання 
сучасних технологій, таких як Java, PostgreSQL, HTML, JavaScript та Tailwind CSS, 
дозволило реалізувати стабільну архітектуру та зручний користувацький 
інтерфейс. 
 
 
Арк. 
 ЧДТУ 262217.17 ПЗ 
36 
Змн. Арк. № Документа Підпис Дата  
 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
 
1. Биков В. Ю., Спірін О. М., Пінчук О. П. Сучасні вебтехнології та 
перспективи їх використання у програмних системах. Інформаційні 
технології і засоби навчання, 2021. Т. 84. № 4. С. 15–28. 
2. Морзе Н. В., Вембер В. П. Основи розробки вебзастосунків. Київ : 
Академвидав, 2020. 256 с. 
3. Соммервілл І. Інженерія програмного забезпечення. Київ : Вільямс, 2019. 912 
с. 
4. Фаулер М. Архітектура корпоративних програмних застосунків. Київ : 
DiaSoft, 2021. 544 с. 
5. Oracle Java Documentation. URL: https://docs.oracle.com/en/java/ (дата 
звернення: 03.06.2026). 
6. Java Programming and Software Engineering Fundamentals. URL: 
https://www.coursera.org/specializations/java-programming (дата звернення: 
03.06.2026). 
7. PostgreSQL Documentation. URL: https://www.postgresql.org/docs/ (дата 
звернення: 03.06.2026). 
8. What is PostgreSQL? URL: https://www.ibm.com/topics/postgresql (дата 
звернення: 14.04.2026). 
9. JavaScript Guide. URL: https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Guide (дата звернення: 16.05.2026). 
10. Eloquent JavaScript / Marijn Haverbeke. 4th edition. No Starch Press, 2024. 472 
p. 
11. Maven – Welcome to Apache Maven. URL: https://maven.apache.org/ (дата 
звернення: 21.02.2026). 
12. Spring Framework Documentation. URL: https://spring.io/projects/spring-
framework (дата звернення: 05.03.2026). 
Арк. 
 ЧДТУ 262217.17 ПЗ 
37 
Змн. Арк. № Документа Підпис Дата  
 
13. Spring Boot Reference Documentation. URL: https://docs.spring.io/spring-
boot/docs/current/reference/html/ (дата звернення: 03.06.2026). 
14. Freeman E., Robson E. Head First Design Patterns. O’Reilly Media, 2021. 694 p. 
15. Richardson C. Microservices Patterns. Manning Publications, 2019. 520 p. 
16. HTML: HyperText Markup Language. URL: https://developer.mozilla.org/en-
US/docs/Web/HTML (дата звернення: 23.04.2026). 
17. CSS: Cascading Style Sheets. URL: https://developer.mozilla.org/en-
US/docs/Web/CSS (дата звернення: 14.04.2026). 
18. REST API Tutorial. URL: https://restfulapi.net/ (дата звернення: 19.05.2026). 
19. Fielding R. Architectural Styles and the Design of Network-based Software 
Architectures : Doctoral dissertation. University of California, Irvine, 2000. 162 
p. 
20. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of 
Reusable Object-Oriented Software. Addison-Wesley, 1994. 395 p. 
21. MDN Web Docs – Web APIs. URL: https://developer.mozilla.org/en-
US/docs/Web/API (дата звернення: 13.05.2026). 
22. W3Schools Java Tutorial. URL: https://www.w3schools.com/java/ (дата 
звернення: 27.05.2026)
Арк. 
 ЧДТУ 262217.17 ПЗ 
38 
Змн. Арк. № Документа Підпис Дата  
 
ДОДАТОК А 
 
 
 
 ЗАТВЕРДЖУЮ 
 Зав. кафедри ІТП  
 _________________  Прокопенко Т.О. 
 «____»  ________________ 2026 р. 
 
 
 
 
 
РОЗРОБКА СЕРВЕРНОЇ ЧАСТИНИ ВЕБ-ЗАСТОСУНКА ДЛЯ 
ОБЛІКУ ТОВАРІВ 
 
 
 
 
Специфікація 
482 ЧДТУ 262217 – 01  
Аркушів 2 
 
 
Розробник ________________ Богдан МОЗОЛЮК  
Керівник ________________ Ольга ЛАВДАНСЬКА 
Н. контроль ________________ Ольга ЛАВДАНСЬКА 
 
    
    Н 
 
 
 
2026 
 
 
 
Позначення Найменування Примітка 
   
 Документація  
   
482 ЧДТУ 262217-01 12 01 Текст програми  
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 
 
 
 
ДОДАТОК Б 
 
ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ  
«РОЗРОБКА СЕРВЕРНОЇ ЧАСТИНИ ВЕБ-ЗАСТОСУНКА ДЛЯ 
ОБЛІКУ ТОВАРІВ» 
 
 
 
 
 
 
ТЕКСТ ПРОГРАМИ 
 
 
482 ЧДТУ 262217-01 12 01 
Аркушів 11 
 
 
 
 
Розробник             ________________        Богдан МОЗОЛЮК 
 
    
       Н  
 
 
 
 
 
 
Черкаси, 2026  
  
2 
482 ЧДТУ 262217-01 12 01 
import com.sun.net.httpserver.*; 
import com.google.gson.Gson; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.net.InetSocketAddress; 
import java.nio.charset.StandardCharsets; 
import java.nio.file.Files; 
import java.nio.file.Paths; 
import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.ArrayList; 
import java.util.List; 
 
public class Main { 
 
    public static void main(String[] args) { 
        try { 
            HttpServer server = HttpServer.create(new InetSocketAddress(8081), 0); 
 
            // Статичні файли 
            server.createContext("/", new 
StaticFileHandler("src/main/resources/index.html")); 
            server.createContext("/script.js", new 
StaticFileHandler("src/main/resources/script.js")); 
 
            // API ендпоінти 
            server.createContext("/listParts", new ListPartsHandler()); 
            server.createContext("/addPart", new AddPartHandler()); 
            server.createContext("/deletePart", new DeletePartHandler()); 
 
            server.setExecutor(null); 
            server.start(); 
            System.out.println("Сервер успішно запущено на http://localhost:8081"); 
 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 
    // ==================== СТАТИЧНІ ФАЙЛИ 
==================== 
    static class StaticFileHandler implements HttpHandler { 
 
3 
482 ЧДТУ 262217-01 12 01 
        private final String filePath; 
 
        public StaticFileHandler(String filePath) { 
            this.filePath = filePath; 
        } 
 
        @Override 
        public void handle(HttpExchange t) throws IOException { 
            try { 
                byte[] bytes = Files.readAllBytes(Paths.get(filePath)); 
                t.sendResponseHeaders(200, bytes.length); 
                try (OutputStream os = t.getResponseBody()) { 
                    os.write(bytes); 
                } 
            } catch (Exception e) { 
                t.sendResponseHeaders(404, 0); 
            } 
        } 
    } 
 
    // ==================== ОТРИМАННЯ СПИСКУ 
==================== 
    static class ListPartsHandler implements HttpHandler { 
        private final Gson gson = new Gson(); 
 
        @Override 
        public void handle(HttpExchange t) throws IOException { 
            try (Connection conn = DatabaseConnection.getConnection()) { 
                String query = "SELECT * FROM parts ORDER BY id"; 
                List<Part> parts = new ArrayList<>(); 
 
                try (PreparedStatement stmt = conn.prepareStatement(query); 
                        ResultSet rs = stmt.executeQuery()) { 
 
                    while (rs.next()) { 
                        parts.add(new Part( 
                                rs.getInt("id"), 
                                rs.getString("part_name"), 
                                rs.getInt("part_type_id"), 
                                rs.getInt("quantity"), 
                                rs.getDouble("price"))); 
                    } 
                } 
 
4 
482 ЧДТУ 262217-01 12 01 
                String json = gson.toJson(parts); 
                t.getResponseHeaders().set("Content-Type", "application/json"); 
                t.getResponseHeaders().set("Access-Control-Allow-Origin", "*"); 
 
                sendResponse(t, 200, json); 
                System.out.println("Відправлено " + parts.size() + " деталей"); 
 
            } catch (SQLException e) { 
                e.printStackTrace(); 
                sendResponse(t, 500, "{\"error\": \"Помилка з'єднання з базою 
даних\"}"); 
            } 
        } 
        private void sendResponse(HttpExchange t, int code, String msg) throws 
IOException { 
            byte[] bytes = msg.getBytes(StandardCharsets.UTF_8); 
            t.sendResponseHeaders(code, bytes.length); 
            try (OutputStream os = t.getResponseBody()) { 
                os.write(bytes); 
            } 
        } 
    } 
    // ==================== ДОДАВАННЯ ДЕТАЛІ 
==================== 
    static class AddPartHandler implements HttpHandler { 
        @Override 
        public void handle(HttpExchange t) throws IOException { 
            if (!"POST".equals(t.getRequestMethod())) { 
                sendResponse(t, 405, "Method Not Allowed"); 
                return; 
            } 
            String body = new String(t.getRequestBody().readAllBytes(), 
StandardCharsets.UTF_8); 
            String[] params = body.split("&"); 
 
            try { 
                String partName = params[0].split("=")[1].replace("+", " "); 
                int partTypeId = Integer.parseInt(params[1].split("=")[1]); 
                int quantity = Integer.parseInt(params[2].split("=")[1]); 
                double price = Double.parseDouble(params[3].split("=")[1]); 
 
                try (Connection conn = DatabaseConnection.getConnection()) { 
 
5 
482 ЧДТУ 262217-01 12 01 
                    String sql = "INSERT INTO parts (part_name, part_type_id, quantity, 
price) VALUES (?, ?, ?, ?)"; 
                    try (PreparedStatement stmt = conn.prepareStatement(sql)) { 
                        stmt.setString(1, partName); 
                        stmt.setInt(2, partTypeId); 
                        stmt.setInt(3, quantity); 
                         
stmt.setDouble(4, price); 
                        stmt.executeUpdate(); 
                    } 
                } 
 
                sendResponse(t, 200, "Деталь успішно додана!"); 
 
            } catch (Exception e) { 
                e.printStackTrace(); 
                sendResponse(t, 500, "Помилка при додаванні деталі"); 
            } 
        } 
 
        private void sendResponse(HttpExchange t, int code, String msg) throws 
IOException { 
            byte[] bytes = msg.getBytes(StandardCharsets.UTF_8); 
            t.sendResponseHeaders(code, bytes.length); 
            try (OutputStream os = t.getResponseBody()) { 
                os.write(bytes); 
            } 
        } 
    } 
 
    // ==================== ВИДАЛЕННЯ ДЕТАЛІ 
==================== 
    static class DeletePartHandler implements HttpHandler { 
        @Override 
        public void handle(HttpExchange t) throws IOException { 
            if (!"POST".equals(t.getRequestMethod())) { 
                sendResponse(t, 405, "Method Not Allowed"); 
                return; 
            } 
            String body = new String(t.getRequestBody().readAllBytes(), 
StandardCharsets.UTF_8); 
            try { 
                int id = Integer.parseInt(body.split("=")[1]); 
 
6 
482 ЧДТУ 262217-01 12 01 
 
                try (Connection conn = DatabaseConnection.getConnection()) { 
                    String sql = "DELETE FROM parts WHERE id = ?"; 
                    try (PreparedStatement stmt = conn.prepareStatement(sql)) { 
                        stmt.setInt(1, id); // ← Правильний рядок 
                        stmt.executeUpdate(); 
                    } 
                } 
 
                sendResponse(t, 200, "Деталь успішно видалена!"); 
 
            } catch (Exception e) { 
                e.printStackTrace(); 
                sendResponse(t, 500, "Помилка при видаленні деталі"); 
            } 
        } 
 
        private void sendResponse(HttpExchange t, int code, String msg) throws 
IOException { 
            byte[] bytes = msg.getBytes(StandardCharsets.UTF_8); 
            t.sendResponseHeaders(code, bytes.length); 
            try (OutputStream os = t.getResponseBody()) { 
                os.write(bytes); 
            } 
        } 
    } 
} 
 
public class Part { 
    private int id; 
    private String partName; 
    private int partTypeId; 
    private int quantity; 
    private double price; 
 
    public Part(int id, String partName, int partTypeId, int quantity, double price) { 
        this.id = id; 
        this.partName = partName; 
        this.partTypeId = partTypeId; 
        this.quantity = quantity; 
        this.price = price; 
    } 
 
 
7 
482 ЧДТУ 262217-01 12 01 
    public int getId() { 
        return id; 
    } 
 
    public void setId(int id) { 
        this.id = id; 
    } 
 
 
 
 
    public String getPartName() { 
        return partName; 
    } 
 
    public void setPartName(String partName) { 
        this.partName = partName; 
    } 
 
    public int getPartTypeId() { 
        return partTypeId; 
    } 
 
    public void setPartTypeId(int partTypeId) { 
        this.partTypeId = partTypeId; 
    } 
 
    public int getQuantity() { 
        return quantity; 
    } 
 
    public void setQuantity(int quantity) { 
        this.quantity = quantity; 
    } 
 
    public double getPrice() { 
        return price; 
    } 
 
    public void setPrice(double price) { 
        this.price = price; 
    } 
} 
 
8 
482 ЧДТУ 262217-01 12 01 
// Завантаження всіх деталей 
function loadParts() { 
    fetch('/listParts') 
        .then(response => response.json()) 
        .then(data => { 
            allParts = data; 
            renderParts(data); 
        }) 
        .catch(error => { 
            console.error('Помилка завантаження:', error); 
            alert('Не вдалося завантажити список деталей'); 
        }); 
 
} 
// Відображення деталей у таблиці 
function renderParts(parts) { 
    const tbody = document.getElementById('partsTableBody'); 
    tbody.innerHTML = ''; 
 
    if (parts.length === 0) { 
        tbody.innerHTML = ` 
            <tr> 
                <td colspan="6" class="px-6 py-8 text-center text-gray-500"> 
                    Немає деталей 
                </td> 
            </tr>`; 
        return; 
    } 
 
    parts.forEach(part => { 
        const row = document.createElement('tr'); 
        row.className = "hover:bg-gray-50 transition"; 
        row.innerHTML = ` 
            <td class="px-6 py-4">${part.id}</td> 
            <td class="px-6 py-4 font-medium">${part.partName}</td> 
            <td class="px-6 py-4">${part.partTypeId}</td> 
            <td class="px-6 py-4">${part.quantity}</td> 
            <td class="px-6 py-4">${part.price} грн</td> 
            <td class="px-6 py-4 text-center"> 
                <button onclick="deletePart(${part.id})"  
                        class="text-red-600 hover:text-red-800 px-3 py-1 rounded-lg 
hover:bg-red-50 transition"> 
                    <i class="fas fa-trash"></i> 
 
9 
482 ЧДТУ 262217-01 12 01 
                </button> 
            </td> 
        `; 
        tbody.appendChild(row); 
    }); 
} 
 
// Пошук 
function searchParts() { 
    const query = 
document.getElementById('searchInput').value.toLowerCase().trim(); 
     
 
 
 
    if (!query) { 
        renderParts(allParts); 
        return; 
    } 
 
    const filtered = allParts.filter(part =>  
        part.partName.toLowerCase().includes(query) 
    ); 
    renderParts(filtered); 
} 
 
// Додавання деталі 
function addPart() { 
    const partName = document.getElementById('partName').value.trim(); 
    const partTypeId = document.getElementById('partTypeId').value; 
    const quantity = document.getElementById('quantity').value; 
    const price = document.getElementById('price').value; 
 
    if (!partName || !partTypeId || !quantity || !price) { 
        alert("Заповніть всі поля!"); 
        return; 
    } 
    const formData = new URLSearchParams(); 
    formData.append('partName', partName); 
    formData.append('partTypeId', partTypeId); 
    formData.append('quantity', quantity); 
    formData.append('price', price); 
 
 
10 
482 ЧДТУ 262217-01 12 01 
    fetch('/addPart', { 
        method: 'POST', 
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, 
        body: formData 
    }) 
    .then(response => response.text()) 
    .then(message => { 
        alert(message); 
        hideAddForm(); 
        loadParts();           // оновлюємо таблицю 
    }) 
    .catch(error => { 
        console.error('Error:', error); 
        alert('Помилка при додаванні деталі'); 
    }); 
} 
 
// Видалення деталі 
function deletePart(id) { 
    if (!confirm(`Видалити деталь з ID ${id}?`)) return; 
 
    const formData = new URLSearchParams(); 
    formData.append('id', id); 
 
    fetch('/deletePart', { 
        method: 'POST', 
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, 
        body: formData 
    }) 
    .then(response => response.text()) 
    .then(message => { 
        alert(message); 
        loadParts(); 
    }) 
    .catch(error => { 
        console.error('Error:', error); 
        alert('Помилка при видаленні'); 
    }); 
} 
 
// Показати форму додавання 
function showAddForm() { 
    document.getElementById('addForm').classList.remove('hidden'); 
 
11 
482 ЧДТУ 262217-01 12 01 
} 
 
// Сховати форму додавання 
function hideAddForm() { 
    document.getElementById('addForm').classList.add('hidden'); 
    document.getElementById('addPartForm').reset(); 
} 
 
// Показ секції (заглушка) 
function showSection(section) { 
    if (section === 'main') { 
        loadParts(); 
    } 
} 
 
// Завантаження при старті 
window.onload = loadParts;