Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал: https://er.chdtu.edu.ua/handle/ChSTU/6040
Назва: Система управління логістичними запасами з автоматизованим аналізом даних у реальному часі
Автори: Підгорний, Микола Володимирович
Волошина, Вікторія Миколаївна
Ключові слова: СИСТЕМА УПРАВЛІННЯ ЗАПАСАМИ,;ЛОГІСТИЧНІ ЗАПАСИ,;АВТОМАТИЗОВАНИЙ АНАЛІЗ ДАНИХ,;СПОВІЩЕННЯ ПРО ЗАВЕРШЕННЯ МАТЕРІАЛІВ,;РЕАЛЬНИЙ ЧАС,;МОДЕЛЮВАННЯ ЛОГІСТИЧНИХ ПРОЦЕСІВ,;ІНФОРМАЦІЙНІ СИСТЕМИ,;БЕЗПЕКА ІНФОРМАЦІЇ.
Дата публікації: 12-чер-2025
Короткий огляд (реферат): Актуальність теми. Зумовлена зростаючою потребою підприємств у швидкому та ефективному управлінні логістичними процесами, що безпосередньо впливає на їхню конкурентоспроможність. У сучасних умовах бізнесу, де оперативність і точність прийняття рішень є критичними факторами успіху, застосування автоматизованих систем управління запасами дозволяє значно покращити ефективність логістичних операцій. Важливість цієї теми також обумовлена стрімким розвитком інформаційних технологій та їхньою інтеграцією у сферу логістики, що відкриває нові можливості для оптимізації бізнес-процесів. Розробка системи управління логістичними запасами в режимі реального часу. Система автоматично відстежуватиме залишки матеріалів, генеруватиме сповіщення при їх нестачі та надсилатиме нотифікації через Webhook. Це дозволить оптимізувати логістичні процеси та запобігати дефіциту ресурсів. Об’єктом дослідження є процеси управління логістичними запасами підприємства в режимі реального часу. Предмет дослідження. Система управління логістичними запасами з автоматизованим аналізом даних у реальному часі та використанням Webhook для сповіщення про зміни в стані запасів.
URI (Уніфікований ідентифікатор ресурсу): https://er.chdtu.edu.ua/handle/ChSTU/6040
Розташовується у зібраннях:124 Системний аналіз (Штучний інтелект)

Файли цього матеріалу:
Файл Опис РозмірФормат 
Пояснювальна записка_Волошина Вікторія_СА-2102_2024-2025.pdf
  Restricted Access
1.56 MBAdobe PDFПереглянути/Відкрити    Запит копії


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

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ  ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ 
ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
 
Факультет інформаційних технологій і систем 
 
Кафедра комп’ютерних наук та системного аналізу 
 
 
 
 
 
 
Пояснювальна записка 
до кваліфікаційної роботи 
бакалавра 
 (освітньо-кваліфікаційний рівень) 
 
на тему: «Система управління логістичними запасами з автоматизованим 
аналізом даних у реальному часі» 
 
 
 
 
 
    Виконав: студент 4 курсу, групи СА-2102 
                                                              
спеціальності  124 − «Системний аналіз» 
                                                                         (шифр і назва спеціальності) 
  
освітня програма «Системний аналіз та                                                                                                                               
(назва освітньої програми) 
прикладна логістика»                                                                                                                                                            
                                                                       
 
Волошина Вікторія Миколаївна 
 
Керівник __________   Підгорний М.В.        
                                                                          (прізвище та ініціали) 
 
Рецензент __________  Мельник В.П.        
                                                                          (прізвище та ініціали) 
    
 
 
 
 
 
 
Черкаси 2025 року
2 
 
Бланк завдання на кваліфікаційну роботу бакалавра студенту 
 
Черкаський державний технологічний університет 
Факультет Інформаційних технологій і систем 
Кафедра Комп’ютерних наук та системного аналізу 
Освітньо-кваліфікаційний рівень Бакалавр 
Спеціальність 124  – Системний аналіз 
Освітня програма Системний аналіз та прикладна логістика 
 
 
 
ЗАТВЕРДЖУЮ 
Завідувач кафедри КНСА  
_______________ Юрій ТРИУС 
«____» _____________ 2025 р. 
 
 
 
ЗАВДАННЯ 
на кваліфікаційну роботу бакалавра студенту 
Волошиній Вікторії Миколаївні 
(прізвище, ім‘я, по батькові) 
1. Тема роботи  Система управління логістичними запасами з  
                                 автоматизованим аналізом даних у реальному часі 
 
Керівник роботи     Підгорний М.В., к.т.н., доцент                    
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання) 
затверджені наказом університету від «25» лютого 2025 р. №53/03-03. 
 
2. Строк подання студентом роботи до 12 червня 2025 року 
3. Вихідні дані до роботи:  
Автоматизований аналіз даних, моделювання процесів, інформаційна система, безпека, 
Webhook. 
4. Зміст пояснювальної записки (перелік питань, що їх належить розробити): 
Вступ 
4.1 Аналіз предметної області та постановка задачі дослідження 
4.2. Вибір технології та інструментальних засобів розробки системи  
4.3 Розробка системи управління логістичними запасами з автоматизованим аналізом даних 
у реальному часі 
4.4 Захист інформаційної системи управління логістичними запасами з автоматизованим 
аналізом даних у реальному часі 
Висновки 
5. Перелік додатків (з точним зазначенням назв додатків): 
5.1. Додаток А. Специфікація  
5.2. Додаток Б. Текст програми. 
3 
 
5.3. Додаток В. Інструкція користувача. 
 
6. Консультанти розділів роботи 
 
 
Прізвище, ініціали та Підпис, дата 
Розділ 
посада консультанта завдання видав завдання прийняв 
    
    
 
7. Дата видачі завдання 15.01.2024 
  
 
КАЛЕНДАРНИЙ ПЛАН 
Строк 
№ з/п Назва етапів кваліфікаційної роботи бакалавра виконання Примітка 
етапів роботи 
1 Видача завдання на кваліфікаційну роботу 
15.01.2025 Виконано 
бакалавра. 
2 Аналіз літературних джерел, об’єкту та предмету 
до 13.02.2025 Виконано 
дослідження. 
3 Написання теоретичного розділу кваліфікаційної 
до 15.03.2025 Виконано 
роботи бакалавра. 
4 Написання аналітичного розділу кваліфікаційної 
до 01.04.2025 Виконано 
роботи бакалавра. 
5 Написання практичних розділів й висновків до 
до 01.05.2025 Виконано 
кваліфікаційної роботи бакалавра. 
6 Передзахист кваліфікаційної роботи бакалавра 
30.05.2025 Виконано 
на засіданні кафедри КНСА. 
7 Подання роботи завідувачу кафедри КНСА. до 10.06.2025 Виконано 
8 Захист кваліфікаційної роботи бакалавра. 12.06.2025 Виконано 
    
    
    
 
 
 
Студент                                   _____________________________     Вікторія ВОЛОШИНА  
                                                                            (підпис)                                                                     
 
Керівник роботи                     ____________________________       Микола ПІДГОРНИЙ 
                                           (підпис)      
 
                                                              
4 
 
РЕФЕРАТ 
 
 
Кваліфікаційна робота бакалавра містить: 94 с., 19 рис., 20 використаних 
джерел, 3 додатки. 
Актуальність теми. Зумовлена зростаючою потребою підприємств у 
швидкому та ефективному управлінні логістичними процесами, що безпосередньо 
впливає на їхню конкурентоспроможність. У сучасних умовах бізнесу, де 
оперативність і точність прийняття рішень є критичними факторами успіху, 
застосування автоматизованих систем управління запасами дозволяє значно 
покращити ефективність логістичних операцій. Важливість цієї теми також 
обумовлена стрімким розвитком інформаційних технологій та їхньою інтеграцією у 
сферу логістики, що відкриває нові можливості для оптимізації бізнес-процесів. 
Мета роботи і задачі дослідження. Розробка системи управління логістичними 
запасами в режимі реального часу. Система автоматично відстежуватиме залишки 
матеріалів, генеруватиме сповіщення при їх нестачі та надсилатиме нотифікації через 
Webhook. Це дозволить оптимізувати логістичні процеси та запобігати дефіциту 
ресурсів. 
Для досягнення поставленої мети були поставлені такі завдання: 
− Розробити систему моніторингу залишків матеріалів у режимі реального часу, 
що забезпечить актуальність даних та їх автоматичне оновлення; 
− Реалізувати механізм сповіщення про критичний рівень запасів, що дозволить 
оперативно реагувати на нестачу матеріалів; 
− Інтегрувати систему нотифікацій через Webhook для автоматичного 
інформування відповідних департаментів про необхідність поповнення запасів; 
− Забезпечити зручний інтерфейс для користувачів, що дозволить швидко 
отримувати необхідну інформацію та керувати логістичними процесами. 
Об’єктом дослідження є процеси управління логістичними запасами 
підприємства в режимі реального часу.   
5 
 
 
Предмет дослідження. Система управління логістичними запасами з 
автоматизованим аналізом даних у реальному часі та використанням Webhook для 
сповіщення про зміни в стані запасів. 
Методи дослідження.  
− Аналіз теоретичних джерел. Для вивчення основних принципів управління 
логістичними запасами та автоматизованого аналізу даних. 
− Метод моделювання. Для розробки математичних моделей та алгоритмів, що 
описують процеси управління запасами та сповіщення про їх зміни. 
− Метод системного аналізу. Для визначення вимог до системи управління 
запасами та розробки її функціональних можливостей. 
− Експериментальне дослідження. Для тестування роботи системи в реальних 
умовах і виявлення ефективності запропонованих рішень. 
− Метод програмування. Для реалізації програмних компонентів системи, 
включаючи механізми обробки Webhook і автоматичного оновлення даних. 
− Метод порівняльного аналізу. Для оцінки ефективності розробленої системи 
порівняно з існуючими рішеннями в галузі управління запасами. 
Перелік ключових слів: СИСТЕМА УПРАВЛІННЯ ЗАПАСАМИ, ЛОГІСТИЧНІ 
ЗАПАСИ, АВТОМАТИЗОВАНИЙ АНАЛІЗ ДАНИХ, WEBHOOK, СПОВІЩЕННЯ 
ПРО ЗАВЕРШЕННЯ МАТЕРІАЛІВ, РЕАЛЬНИЙ ЧАС, МОДЕЛЮВАННЯ 
ЛОГІСТИЧНИХ ПРОЦЕСІВ, ОПТИМІЗАЦІЯ ЗАПАСІВ, ІНФОРМАЦІЙНІ 
СИСТЕМИ, БЕЗПЕКА ІНФОРМАЦІЇ. 
 
 
 
 
 
 
 
6 
 
ABSTRACT 
 
 
Bachelor's qualification work contains: 94 p., 19 fig., 20 used sources, 3 
appendices. 
Relevance of the topic. Due to the growing need of enterprises for fast and effective 
management of logistics processes, which directly affects their competitiveness. In modern 
business conditions, where efficiency and accuracy of decision-making are critical factors 
of success, the use of automated inventory management systems allows to significantly 
improve the efficiency of logistics operations. The importance of this topic is also due to the 
rapid development of information technologies and their integration into the field of 
logistics, which opens up new opportunities for optimizing business processes. 
Purpose of the work and research objectives. Development of a real-time logistics 
inventory management system. The system will automatically track the remaining materials, 
generate notifications in case of their shortage and send notifications via Webhook. This 
will allow to optimize logistics processes and prevent resource shortages. 
To achieve the goal, the following tasks were set: 
− To develop a real-time material balance monitoring system that will ensure data 
relevance and automatic updating; 
− To implement a notification mechanism for critical inventory levels that will allow 
for prompt response to material shortages; 
− To integrate a notification system via Webhook to automatically inform relevant 
departments about the need to replenish inventory; 
− To provide a user-friendly interface that will allow for quick receipt of necessary 
information and management of logistics processes. 
Research object. A logistics inventory management system that operates in real time 
and provides automated data analysis to control the availability of materials at the enterprise. 
Research subject. A logistics inventory management system with automated data analysis 
in real time and the use of Webhook to notify about changes in inventory status. 
7 
 
Research methods. 
− Analysis of theoretical sources. To study the basic principles of logistics inventory 
management and automated data analysis. 
− Modeling method. To develop mathematical models and algorithms that describe 
inventory management processes and notify of their changes. 
− System analysis method. To determine the requirements for the inventory 
management system and develop its functionality. 
− Experimental research. To test the system in real conditions and identify the 
effectiveness of the proposed solutions. 
− Programming method. To implement the software components of the system, 
including Webhook processing mechanisms and automatic data updates. 
− Benchmarking method. To assess the effectiveness of the developed system 
compared to existing solutions in the field of inventory management. 
List of keywords: INVENTORY MANAGEMENT SYSTEM, LOGISTICS 
INVENTORY, AUTOMATED DATA ANALYSIS, WEBHOOK, MATERIALS OUT OF 
STOCK NOTIFICATION, REAL TIME, LOGISTICS PROCESSES MODELING, 
INVENTORY OPTIMIZATION, INFORMATION SYSTEMS, INFORMATION 
SECURITY.  
8 
 
ЗМІСТ 
 
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, СКОРОЧЕНЬ І  
ТЕРМІНІВ…………………...………………………………………………… 10 
ВСТУП………………………………………………………………………… 11 
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ  
ДОСЛІДЖЕННЯ……………………………………………………………… 14 
1.1 Аналіз предметної області…………………………………………….. 14 
1.2 Постановка задачі……………………………………………………… 18 
Висновки до розділу 1………………………………………………………… 26 
2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ  
РОЗРОБКИ СИСТЕМИ………………………………………………………. 27 
2.1 Огляд існуючих технологій……………………………………………. 27 
2.2 Обґрунтування вибору……………………..…………………………... 37 
Висновки до розділу 2………………………………………………………… 43 
3 РОЗРОБКА СИСТЕМИ УПРАВЛІННЯ ЛОГІСТИЧНИМИ  
ЗАПАСАМИ З АВТОМАТИЗОВАНИМ АНАЛІЗОМ ДАНИХ У  
РЕАЛЬНОМУ ЧАСІ…………………………………………………………. 45 
3.1 Структура системи…………………………………………………….. 45 
3.2 Опис функцій системи………………………………………………….. 55 
    3.3 Технічні вимоги для роботи з системою ……………………………… 61 
3.4 Оцінка ефективності…………………………………………………….  64 
Висновки до розділу 3…………………………………………………………  66 
4 ЗАХИСТ ІНФОРМАЦІЙНОЇ СИСТЕМИ УПРАВЛІННЯ  
ЛОГІСТИЧНИМИ ЗАПАСАМИ З АВТОМАТИЗОВАНИМ АНАЛІЗОМ  
ДАНИХ У РЕАЛЬНОМУ ЧАСІ………………………………………………   67 
    4.1Огляд існуючих рішень………..………………………………………...   67 
    4.2 Реалізація захисту даних користувачів………………………………..   72 
Висновки до розділу 4…………………………………………………………       75 
9 
 
ВИСНОВКИ……………………………………………………………………     76 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ……………………………………..      77 
Додаток А. Специфікація ……………………………………………………. 79 
Додаток Б. Текст програми ………………………………………………….. 81 
Додаток В. Інструкція користувача…………………………………………... 92 
  
 
 
 
 
 
  
10 
 
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, СКОРОЧЕНЬ І ТЕРМІНІВ 
API (Application Programming Interface) – програмний інтерфейс, що 
дозволяє взаємодіяти між різними програмами. 
AWS (Amazon Web Services) – набір хмарних сервісів для обробки, зберігання 
даних та розгортання веб-додатків. 
CRUD (Create, Read, Update, Delete) – набір основних операцій для управління 
даними в базі. 
DBMS (Database Management System) – система управління базами даних. 
ERP (Enterprise Resource Planning) – система управління ресурсами 
підприємства. 
HTTP (HyperText Transfer Protocol) – протокол передачі гіпертексту в 
Інтернеті. 
HTTPS (HyperText Transfer Protocol Secure) – безпечна версія HTTP, що 
використовує шифрування SSL/TLS. 
JSON (JavaScript Object Notation) – формат обміну даними між клієнтом і 
сервером. 
RBAC (Role-Based Access Control) – модель контролю доступу на основі 
ролей. 
REST (Representational State Transfer) – архітектурний стиль для побудови 
API. 
SQL (Structured Query Language) – мова структурованих запитів для роботи з 
базами даних. 
Webhook – механізм передачі даних у реальному часі через HTTP-запити. 
 
11 
 
ВСТУП 
У сучасному світі логістика відіграє ключову роль у забезпеченні ефективного 
функціонування підприємств, які займаються постачанням товарів і послуг. В умовах 
глобалізації, стрімкого розвитку електронної комерції та збільшення обсягів 
перевезень особливої уваги потребує управління логістичними запасами. Оптимізація 
процесів зберігання, транспортування та розподілу товарів дозволяє значно зменшити 
витрати, підвищити конкурентоспроможність компанії та покращити рівень 
обслуговування клієнтів. Одним із найважливіших факторів ефективного управління 
логістичними запасами є використання сучасних інформаційних технологій, які 
дають змогу автоматизувати процеси, мінімізувати ризики та приймати обґрунтовані 
рішення на основі аналізу даних у реальному часі. 
Розвиток цифрових технологій створює нові можливості для управління 
логістичними ланцюгами постачання. Використання автоматизованих систем 
управління запасами дозволяє компаніям оперативно реагувати на зміни попиту, 
запобігати дефіциту або надлишковому накопиченню продукції, а також 
оптимізувати використання ресурсів. Водночас традиційні методи контролю запасів, 
що базуються на ручному введенні даних або періодичному оновленні інформації, не 
відповідають сучасним вимогам швидкості та точності. Саме тому актуальним 
завданням є розробка інтегрованих рішень, які забезпечують автоматизований аналіз 
даних у режимі реального часу, використовуючи новітні технології, такі як великі 
дані (Big Data), машинне навчання та хмарні обчислення. 
Автоматизований аналіз даних у логістиці дозволяє не лише відстежувати 
актуальний стан запасів, а й прогнозувати майбутні потреби, аналізувати тенденції 
попиту, виявляти аномалії та потенційні загрози. Використання математичних 
моделей та алгоритмів машинного навчання дає змогу підвищити точність 
прогнозування, що, у свою чергу, сприяє скороченню витрат на зберігання та 
транспортування продукції. Крім того, інтеграція автоматизованих систем управління 
12 
 
запасами з іншими модулями ERP-систем допомагає досягти єдиного інформаційного 
простору, де всі логістичні процеси синхронізовані та керовані в реальному часі. 
Особливе значення має також використання хмарних технологій, які 
забезпечують швидкий доступ до інформації незалежно від місцезнаходження 
користувачів. Впровадження таких рішень дозволяє компаніям оперативно 
оновлювати дані про стан запасів, здійснювати контроль за виконанням логістичних 
операцій та забезпечувати взаємодію між постачальниками, перевізниками та 
споживачами. Завдяки цьому можна значно підвищити рівень точності управління 
запасами, уникнути помилок та втрат, пов’язаних із людським фактором. 
Актуальність теми зумовлена зростаючою потребою підприємств у швидкому 
та ефективному управлінні логістичними процесами, що безпосередньо впливає на 
їхню конкурентоспроможність. У сучасних умовах бізнесу, де оперативність і 
точність прийняття рішень є критичними факторами успіху, застосування 
автоматизованих систем управління запасами дозволяє значно покращити 
ефективність логістичних операцій. Важливість цієї теми також обумовлена стрімким 
розвитком інформаційних технологій та їхньою інтеграцією у сферу логістики, що 
відкриває нові можливості для оптимізації бізнес-процесів. 
Мета кваліфікаційної роботи бакалавра є розробка системи управління 
логістичними запасами в режимі реального часу. Система автоматично 
відстежуватиме залишки матеріалів, генеруватиме сповіщення при їх нестачі та 
надсилатиме нотифікації через Webhook. Це дозволить оптимізувати логістичні 
процеси та запобігати дефіциту ресурсів. 
Для досягнення поставленої мети були поставлені такі завдання: 
− Розробити систему моніторингу залишків матеріалів у режимі реального часу, 
що забезпечить актуальність даних та їх автоматичне оновлення. 
− Реалізувати механізм сповіщення про критичний рівень запасів, що дозволить 
оперативно реагувати на нестачу матеріалів. 
− Інтегрувати систему нотифікацій через Webhook для автоматичного 
інформування відповідних департаментів про необхідність поповнення запасів. 
13 
 
− Забезпечити зручний інтерфейс для користувачів, що дозволить швидко 
отримувати необхідну інформацію та керувати логістичними процесами. 
Об’єктом дослідження є процеси управління логістичними запасами 
підприємства в режимі реального часу.   
Предметом дослідження система управління логістичними запасами з 
автоматизованим аналізом даних у реальному часі та використанням Webhook для 
сповіщення про зміни в стані запасів. 
Методи дослідження.  
− Аналіз теоретичних джерел. Для вивчення основних принципів управління 
логістичними запасами та автоматизованого аналізу даних. 
− Метод моделювання. Для розробки математичних моделей та алгоритмів, що 
описують процеси управління запасами та сповіщення про їх зміни. 
− Метод системного аналізу. Для визначення вимог до системи управління 
запасами та розробки її функціональних можливостей. 
− Експериментальне дослідження. Для тестування роботи системи в реальних 
умовах і виявлення ефективності запропонованих рішень. 
− Метод програмування. Для реалізації програмних компонентів системи, 
включаючи механізми обробки Webhook і автоматичного оновлення даних. 
− Метод порівняльного аналізу. Для оцінки ефективності розробленої системи 
порівняно з існуючими рішеннями в галузі управління запасами. 
 
 
 
 
 
 
 
 
14 
 
1 ДОСЛІДЖЕННЯ ПРЕДМЕТНОЇ ОБЛАСТІ 
1.1 Аналіз існуючих систем 
У сучасному виробничому середовищі ефективне управління логістичними 
запасами є ключовим фактором стабільності та конкурентоспроможності 
підприємств. Оптимальний рівень запасів дозволяє уникнути простоїв у виробництві, 
зменшити витрати на зберігання та покращити фінансові показники компанії. Для 
цього підприємства використовують різні підходи та інформаційні системи, що 
допомагають контролювати залишки матеріалів, прогнозувати потреби та 
автоматизувати процеси закупівель. 
Логістичні запаси відіграють важливу роль у забезпеченні безперервності 
виробничих процесів, а їх ефективне управління сприяє оптимізації використання 
ресурсів. Різні системи дозволяють підприємствам контролювати залишки в 
реальному часі, автоматично оновлювати дані та швидко реагувати на критичні зміни, 
що робить їх незамінним інструментом у сучасному бізнесі. 
Логістичні запаси – це матеріальні ресурси, які підприємство зберігає для 
забезпечення безперебійного виробництва, виконання замовлень та ефективного 
функціонування бізнес-процесів. Вони включають різні категорії матеріалів, такі як 
сировина, комплектуючі, напівфабрикати, готова продукція, а також допоміжні 
матеріали (наприклад, мастильні речовини, пакувальні матеріали тощо). 
Операційні (робочі) запаси – використовуються у поточному виробництві та 
безпосередньо впливають на виробничий процес. Наприклад, у виробництві 
електронних пристроїв такими матеріалами є транзистори, резистори, мікросхеми 
тощо. 
Страхові (резервні) запаси – створюються для запобігання ризикам, 
пов’язаним із перебоями у постачанні або коливанням попиту. 
Транзитні запаси – товари або матеріали, що знаходяться в дорозі від 
постачальника до підприємства. 
15 
 
Сезонні запаси – формуються в періоди, коли очікується підвищений попит або 
можливі перебої у постачанні через сезонні чинники. 
Буферні запаси – використовуються для балансування виробничих процесів та 
уникнення простоїв через затримки у постачанні. 
Ефективне управління запасами є ключовим фактором стабільності 
підприємства, оскільки: 
− забезпечує безперервність виробничих процесів; 
− мінімізує ризики дефіциту критично важливих компонентів; 
− зменшує витрати на зберігання та обслуговування матеріалів; 
− покращує фінансові показники підприємства за рахунок оптимального 
використання ресурсів. 
Для контролю рівня запасів підприємства використовують різні методи, 
зокрема: 
Систему “Just-in-Time” (точно вчасно) – мінімізація запасів шляхом 
отримання матеріалів безпосередньо перед їх використанням у виробництві. 
Систему MRP (Material Requirements Planning) – планування потреб у 
матеріалах відповідно до виробничого графіка. 
 Автоматизовані системи обліку в реальному часі – використання 
інформаційних технологій для відстеження залишків, контролю використання та 
прогнозування потреб у закупівлях. 
Таким чином, логістичні запаси відіграють важливу роль у функціонуванні 
підприємства, а їх правильне управління сприяє зниженню витрат, підвищенню 
ефективності та стабільності виробничих процесів. 
У сучасному бізнес-середовищі ефективне управління логістичними запасами є 
критично важливим для стабільної роботи підприємств. Постійна актуалізація 
інформації про залишки матеріалів, комплектуючих і готової продукції дозволяє 
уникнути численних проблем, таких як затримки у виробництві, труднощі із 
закупівлями, нераціональне використання ресурсів та фінансові втрати. У цій статті 
16 
 
детально розглянемо основні причини, чому підприємствам необхідно підтримувати 
інформацію про запаси в актуальному стані. 
Одна з головних причин, чому підприємствам необхідно регулярно оновлювати 
інформацію про логістичні запаси, – це запобігання затримкам у виробничому 
процесі. Відсутність необхідних матеріалів або компонентів у потрібний момент 
може спричинити простої обладнання, що безпосередньо впливає на продуктивність 
та прибутковість підприємства. 
Якщо виробничий відділ не має доступу до актуальної інформації про залишки 
матеріалів, це може призвести до ситуацій, коли необхідні компоненти закінчуються 
несподівано. Наприклад, у виробництві електронних пристроїв нестача транзисторів 
або резисторів може повністю зупинити конвеєр, що спричиняє затримку випуску 
продукції. 
Коли відсутні необхідні матеріали, обладнання простоює, а працівники змушені 
чекати на нові поставки. Це не лише впливає на обсяги виробництва, а й спричиняє 
додаткові витрати, пов’язані із зарплатою працівників, які не можуть виконувати свої 
функції. 
Якщо підприємство не може вчасно виготовити або відвантажити продукцію 
через нестачу матеріалів, це негативно впливає на його репутацію. Замовники можуть 
звернутися до конкурентів, що в довгостроковій перспективі призводить до втрати 
ринку. 
Актуальна інформація про логістичні запаси відіграє вирішальну роль у 
процесах закупівлі та постачання матеріалів. Якщо дані застарілі або неточні, 
підприємство може стикнутися з низкою проблем. 
Якщо система управління запасами не оновлюється регулярно, менеджери 
можуть не помітити, що запаси якогось матеріалу наближаються до критичного рівня. 
У результаті замовлення робиться із запізненням, а через це виробництво може 
зупинитися. 
Не всі постачальники можуть миттєво виконати замовлення. У багатьох 
галузях, зокрема в автомобільній та електронній промисловості, термін поставки 
17 
 
комплектуючих може становити кілька тижнів або навіть місяців. Якщо підприємство 
не відстежує запаси в реальному часі, воно може зіткнутися з ситуацією, коли 
необхідні матеріали доведеться чекати надто довго. 
Якщо підприємство не спланувало закупівлі заздалегідь, йому може 
знадобитися термінова доставка, що значно підвищує витрати. У таких випадках 
доводиться або переплачувати постачальникам за швидке виконання замовлення, або 
купувати матеріали у менш надійних постачальників за вищими цінами. 
Неправильне управління запасами може призвести не лише до дефіциту, а й до 
накопичення надлишкових матеріалів, що створює додаткові фінансові 
навантаження. 
Чим більше матеріалів зберігається на складі, тим вищі витрати на їхнє 
обслуговування. Підприємство змушене витрачати кошти на оренду приміщень, 
охорону, облік та утримання товарів у належному стані. 
У деяких галузях матеріали можуть мати обмежений термін зберігання. 
Наприклад, у фармацевтичній або хімічній промисловості сировина може втрачати 
свої властивості з часом. Навіть у виробництві електроніки комплектуючі можуть 
застаріти через появу нових технологій, що робить їх використання економічно 
невигідним. 
Капітал, вкладений у надлишкові запаси, не працює на розвиток бізнесу. Ці 
кошти можна було б інвестувати в нове обладнання, маркетингові кампанії або інші 
стратегічні напрямки. Актуальні дані про запаси дозволяють підприємствам 
оптимізувати використання ресурсів, підвищити ефективність виробництва та 
знизити операційні витрати. 
Завдяки точним даним підприємство може планувати виробничі процеси з 
урахуванням реальних запасів матеріалів. Це дозволяє рівномірно розподіляти 
навантаження на обладнання та персонал, мінімізуючи простої. 
Автоматизовані системи обліку допомагають підприємствам зменшити втрати, 
пов’язані з неефективним використанням сировини. Завдяки актуальній інформації 
можна уникнути ситуацій, коли матеріали списуються через помилки у плануванні. 
18 
 
Сучасні системи управління запасами дозволяють підприємствам взаємодіяти з 
постачальниками в режимі реального часу. Це сприяє швидкому реагуванню на зміни 
в потребах виробництва та забезпечує гнучкість у постачанні матеріалів. 
Підтримка актуальності інформації про логістичні запаси є необхідною умовою 
для стабільної роботи підприємства. Це дозволяє запобігати затримкам у 
виробництві, уникати проблем із закупівлями, зменшувати витрати на зберігання та 
покращувати загальну ефективність бізнес-процесів. Використання сучасних 
автоматизованих систем управління запасами забезпечує підприємствам конкурентні 
переваги, підвищуючи їхню гнучкість та стійкість до ринкових змін. 
Управління логістичними запасами є критично важливим для ефективного 
функціонування підприємств, оскільки воно допомагає контролювати рівень 
матеріалів, оптимізувати постачання та мінімізувати витрати. Сучасні інформаційні 
системи значно спрощують ці процеси, забезпечуючи автоматизацію та аналітику в 
реальному часі.  
Oracle NetSuite – це комплексне хмарне ERP-рішення, яке включає модулі для 
фінансового обліку, управління запасами, логістики та виробництва. Ця система 
забезпечує підприємства повним контролем над логістичними процесами та 
оптимізує управління ланцюгами постачання. Зовнішній вигляд системи зображено 
(рис. 1.1) 
19 
 
 
Рисунок 1.1 – Зовнішній вигляді системи Oracle NetSuite  
Основні можливості  системи  - відстеження залишків на складах у реальному 
часі та надає аналітику щодо попиту і пропозиції. Завдяки вбудованим алгоритмам 
система прогнозує майбутні закупівлі та допомагає уникати дефіциту або надлишків. 
Можливість налаштування спільної платформи для комунікації з постачальниками, 
що дозволяє оптимізувати процес закупівель [1]. Підтримує управління кількома 
складами одночасно, що зручно для великих підприємств. 
Переваги: 
− Хмарне рішення – не потребує локального встановлення;  
− Гнучка інтеграція з іншими бізнес-процесами; 
− Потужні аналітичні можливості. 
Недоліки: 
− Висока вартість для малих підприємств; 
− Складність налаштування для нетипових бізнес-моделей. 
Microsoft Dynamics 365 – це потужна ERP- та CRM-платформа, яка об'єднує 
фінансовий облік, логістику, управління запасами та аналітику в єдиній екосистемі. 
Вона ідеально підходить для середніх і великих підприємств, які прагнуть 
20 
 
автоматизувати свої бізнес-процеси та підвищити ефективність управління запасами, 
зовнішній вигляд та інтерфейс зображено  (рис. 1.2) 
 
Рисунок 1.2 – Інтерфейс Microsoft Dynamics 365  
Система дозволяє контролювати рівень матеріалів у реальному часі, що 
забезпечує швидке реагування на зміни в потребах виробництва та постачання. 
Вбудовані аналітичні інструменти дозволяють глибоко аналізувати попит, тенденції 
закупівель і управління ризиками, що підвищує точність прогнозування. 
Автоматизований аналіз даних і прогнозування майбутніх потреб допомагає 
уникнути дефіциту або надлишкових запасів.  
Також система дозволяє адаптуватися до специфіки підприємства, інтегруючи 
індивідуальні рішення для оптимізації логістичних процесів. Інтеграція з іншими 
продуктами Microsoft – зручне поєднання з Azure, Power BI, Office 365, що покращує 
зручність користування та підвищує ефективність роботи [2]. 
Переваги: 
− Модульний підхід – можливість вибору та налаштування лише необхідних 
функцій. Висока масштабованість – система підходить для підприємств, що 
активно розширюються; 
21 
 
− Потужна інтеграція з продуктами Microsoft, що забезпечує зручність у 
використанні. Автоматизація управління запасами для зменшення людських 
помилок та покращення контролю за матеріалами. 
Недоліки: 
− Висока вартість ліцензії та обслуговування, що може бути проблемою для 
малого бізнесу; 
− Складність впровадження та налаштування, що потребує спеціалізованих знань 
і часу; 
− Залежність від екосистеми Microsoft, що може обмежувати можливості 
інтеграції з іншими сторонніми системами. 
Manhattan Associates WMS – це одна з провідних систем управління 
складською логістикою (WMS), яка використовується великими підприємствами та 
ритейлерами. 
Основні можливості полягають в контролі переміщення товарів, облік прийому, 
відвантаження та зберігання. Зовнішній вигляд та інтерфейс зображено (рис. 1.3) 
Рисунок 1.3 – Інтерфейс Manhattan Associates WMS 
22 
 
Розміщення продукції на складі з урахуванням частоти використання та 
логістичних маршрутів.  
Інтеграція з транспортними системами дозволяє керувати логістичними 
перевезеннями та відстежувати поставки. Гнучка адаптація до різних бізнес-
моделей – підходить як для виробничих підприємств, так і для ритейлерів. 
Переваги: 
− Висока точність контролю складу та операцій; 
− Потужні алгоритми оптимізації логістичних процесів; 
− Інтеграція з ERP-системами та платформами електронної комерції. 
Недоліки: 
− Висока вартість впровадження та підтримки; 
− Вимагає високої кваліфікації персоналу для управління системою. 
Llamasoft – це спеціалізована платформа для моделювання, аналізу та 
оптимізації ланцюгів постачання, яка допомагає підприємствам знаходити ефективні 
рішення для управління логістикою, зовнішній вигляд та інтерфейс зображено (рис. 
1.4). 
 
Рисунок 1.4 – Інтерфейс Llamasoft  
 
23 
 
Основні можливості полягають в аналізі різних варіантів ланцюга постачання 
для вибору оптимального маршруту доставки. Використовує штучний інтелект для 
аналізу тенденцій та майбутніх потреб підприємства. Розрахунок найкращих 
стратегій розміщення складів і вибору транспортних маршрутів. Ідентифікація 
потенційних проблем і розробка альтернативних рішень. 
Переваги: 
− Потужний аналітичний інструмент для стратегічного планування;  
− Використання AI та Machine Learning для аналізу даних;  
− Підходить для глобальних компаній з розгалуженими логістичними мережами. 
Недоліки: 
− Не є повноцінною WMS/ERP-системою – потрібна інтеграція з іншими 
платформами; 
− Складність у впровадженні та навчанні персоналу. 
Розглянуті системи управління логістичними запасами надають потужні 
можливості для підприємств, які прагнуть автоматизувати свої процеси та підвищити 
ефективність управління запасами. Вибір конкретної платформи залежить від потреб 
бізнесу: Oracle NetSuite і Microsoft Dynamics 365 ідеально підходять для 
комплексного управління ресурсами, Manhattan Associates WMS – для оптимізації 
складських операцій, а Llamasoft – для стратегічного моделювання ланцюгів 
постачання. Кожна з цих систем має свої переваги та обмеження, тому підприємствам 
важливо ретельно оцінювати свої потреби перед впровадженням таких рішень. 
 
24 
 
1.2 Постановка задачі 
На сучасному ринку існує безліч систем для управління логістичними запасами, 
таких як Oracle NetSuite, Microsoft Dynamics 365, Manhattan Associates WMS, 
Llamasoft та інші. Вони забезпечують широкий функціонал для управління запасами, 
контролю за постачанням та автоматизації логістичних процесів. Проте їх 
використання супроводжується певними недоліками, які можуть ускладнювати 
впровадження та експлуатацію на підприємствах малого та середнього бізнесу. 
Більшість сучасних ERP-систем є дорогими у впровадженні та обслуговуванні. 
Вартість ліцензії, налаштування та підтримки може бути надмірно високою для 
підприємств, що не мають значного бюджету на цифрову трансформацію. 
Сучасні системи пропонують широкий спектр функцій, багато з яких можуть 
бути зайвими для певних підприємств. Це ускладнює роботу з системою, підвищує 
вимоги до навчання персоналу та потребує додаткових ресурсів на адміністрування. 
Деякі системи складно інтегрувати у вже існуючу ІТ-інфраструктуру 
підприємства. Вони вимагають значних змін у бізнес-процесах, що може викликати 
труднощі в адаптації. Багато ERP-рішень потребують налаштування під конкретні 
потреби підприємства, що вимагає додаткових витрат часу та коштів. Великі системи 
потребують значних обчислювальних потужностей, що може спричинити 
необхідність оновлення серверного обладнання та збільшення витрат на підтримку 
ІТ-інфраструктури. 
Використання комерційних рішень часто обмежує можливість внесення змін у 
програмне забезпечення та змушує підприємства бути залежними від оновлень і 
підтримки з боку вендора. 
Метою даної роботи є створення легкої системи управління логістичними 
запасами, яка буде позбавлена основних недоліків існуючих рішень. Вона буде 
розроблена з урахуванням потреб підприємств, що займаються виробництвом 
електронних компонентів, зокрема мікросхем, де важливо контролювати залишки 
матеріалів, таких як транзистори, резистори тощо. 
25 
 
Основні функціональні можливості системи: 
− Відображення поточних залишків матеріалів. Система дозволить 
відстежувати наявність комплектуючих на складі в реальному часі, що 
зменшить ризики дефіциту та затримок у виробництві; 
− Автоматичне оновлення інформації. Дані будуть оновлюватися в режимі 
реального часу без необхідності ручного введення, що забезпечить точність 
інформації; 
− Система сповіщень. У разі зменшення запасів певного компонента система 
автоматично надсилатиме повідомлення відповідальним особам про 
необхідність поповнення запасів; 
− Інтеграція через Webhook. Дозволить швидко повідомляти інші департаменти 
підприємства про закінчення матеріалів, забезпечуючи своєчасне прийняття 
рішень; 
− Легка інтеграція. Система буде розроблена так, щоб її можна було легко 
впровадити в інфраструктуру підприємства без значних витрат часу та ресурсів; 
− Простий та зручний інтерфейс. Орієнтація на користувача забезпечить 
легкість у використанні навіть для некваліфікованого персоналу; 
− Гнучка архітектура. Передбачається можливість масштабування та 
доповнення новими модулями, що дозволить адаптувати систему під різні 
потреби підприємств; 
− Підтримка мобільних пристроїв. Забезпечення доступу до системи з 
мобільних пристроїв дозволить працівникам оперативно отримувати 
інформацію про залишки матеріалів і реагувати на критичні ситуації; 
− Захист даних. Впровадження механізмів авторизації та шифрування для 
запобігання несанкціонованому доступу до інформації. 
Розроблена система дозволить підприємствам ефективно контролювати 
залишки матеріалів, мінімізувати затримки у виробництві, оптимізувати процеси 
закупівлі та скоротити витрати на управління запасами. Завдяки простоті 
26 
 
впровадження та використання, вона стане ефективною альтернативою складним і 
дорогим ERP-системам. 
Крім того, завдяки інтеграції через Webhook та автоматичному оновленню 
даних у реальному часі, система забезпечить зменшення впливу людського фактору, 
підвищить точність обліку та знизить ймовірність виникнення критичних ситуацій, 
пов'язаних із відсутністю необхідних компонентів у виробничому процесі. 
Впровадження цієї системи сприятиме підвищенню загальної ефективності 
підприємства та оптимізації витрат. 
Висновки до розділу 1 
У даному розділі було проведено аналіз предметної області управління 
логістичними запасами та розглянуто існуючі системи, такі як Oracle NetSuite, 
Microsoft Dynamics 365, Manhattan Associates WMS і Llamasoft. Було визначено 
основні недоліки цих рішень, зокрема високу вартість, перевантаженість 
функціоналом, складність інтеграції, необхідність персоналізації та залежність від 
постачальника. 
На основі проведеного аналізу сформульовано основні вимоги до 
розроблюваної системи управління логістичними запасами. Запропоноване рішення 
передбачає просту у впровадженні та використанні систему, яка оновлює дані в 
режимі реального часу, забезпечує автоматичне сповіщення відповідальних осіб 
через Webhook, має зручний інтерфейс та легко інтегрується в інфраструктуру 
підприємства. 
Реалізація цієї системи допоможе підприємствам оптимізувати процеси 
управління запасами, мінімізувати затримки у виробництві, скоротити витрати та 
підвищити загальну ефективність роботи. 
 
27 
 
2 ВИБІР ТЕХНОЛОГІЙ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ 
2.1 Огляд існуючих технологій 
Хмарні технології (Cloud Computing) — це модель надання обчислювальних 
ресурсів, яка дозволяє отримувати доступ до серверів, сховищ даних, програмного 
забезпечення та обчислювальних потужностей через інтернет. Це означає, що замість 
придбання та обслуговування власного апаратного та програмного забезпечення 
підприємства можуть використовувати віддалені сервери постачальників хмарних 
послуг. 
Основна концепція хмарних технологій базується на віртуалізації та 
розподіленій обробці даних. Користувачі можуть масштабувати ресурси відповідно 
до потреб, оплачуючи лише фактично використані потужності. Це значно зменшує 
витрати на ІТ-інфраструктуру та підвищує ефективність роботи бізнесу. 
Хмарні технології мають ряд ключових характеристик, які роблять їх зручними 
та ефективними для використання в різних сферах. Однією з головних переваг є 
доступність – користувачі можуть отримати доступ до даних та програм із будь-якого 
пристрою, підключеного до інтернету, що значно спрощує роботу та дозволяє 
використовувати ресурси без прив’язки до конкретного місця. 
Ще однією важливою характеристикою є масштабованість. Хмарні ресурси 
легко адаптуються до змін навантаження або потреб користувача, що дозволяє 
ефективно використовувати потужності без необхідності постійного оновлення 
обладнання. Це забезпечує високу продуктивність та оптимальне розподілення 
ресурсів. 
Гнучкість хмарних технологій дозволяє інтегрувати їх із різними операційними 
системами, платформами та програмними рішеннями. Це дає можливість 
підприємствам вибирати найбільш підходящі сервіси та легко впроваджувати нові 
технології у свою діяльність [3]. 
28 
 
Автоматичне оновлення програмного забезпечення є ще однією суттєвою 
перевагою. Всі необхідні оновлення виконуються без необхідності втручання 
користувача, що гарантує актуальність програм та усунення можливих вразливостей 
без затримок і додаткових витрат. 
Окрім цього, хмарні технології забезпечують економічну вигоду, оскільки 
користувач платить лише за використані ресурси. Це дозволяє значно зменшити 
витрати на придбання та обслуговування фізичних серверів, а також оптимізувати 
фінансові витрати компанії. 
Хмарні технології поділяються на кілька типів залежно від моделі розгортання 
та використання. Вибір відповідного типу залежить від потреб підприємства, рівня 
безпеки даних, вимог до масштабованості та фінансових можливостей. Нижче 
розглянуто основні типи хмарних технологій та їх особливості (рис. 2.1) 
 
Рисунок 2.1 - Типи хмарних технологій 
Публічні хмари (Public Cloud) – інфраструктура належить стороннім 
провайдерам (AWS, Google Cloud, Microsoft Azure), які надають послуги великій 
кількості користувачів. 
Приватні хмари (Private Cloud) – використовується лише однією 
організацією, що забезпечує вищий рівень безпеки та контролю. 
29 
 
Гібридні хмари (Hybrid Cloud) – поєднання публічної та приватної хмари, що 
дозволяє зберігати критично важливі дані локально, а менш чутливі – у 
загальнодоступному середовищі. 
Мультихмарні середовища (Multi-Cloud) – використання кількох хмарних 
платформ одночасно для підвищення надійності та продуктивності. 
Хмарні рішення активно впроваджуються в логістичні та виробничі процеси. 
Використання хмарних технологій у системах управління запасами дає змогу: 
− Зберігати та аналізувати великі обсяги даних без потреби в дорогих локальних 
серверах; 
− Отримувати доступ до актуальної інформації про залишки в режимі реального 
часу з будь-якої точки світу; 
− Автоматизувати процеси постачання, обліку та планування виробничих 
ресурсів; 
− Підвищувати рівень безпеки завдяки розподіленому зберіганню та резервному 
копіюванню даних. 
Хмарні технології стали ключовим елементом сучасних інформаційних систем. 
Вони забезпечують високу гнучкість, масштабованість та доступність, що робить їх 
ідеальним вибором для автоматизованих систем управління запасами. Використання 
хмарних платформ дозволяє підприємствам зменшити витрати на ІТ-інфраструктуру, 
підвищити ефективність виробничих процесів та забезпечити безперервний доступ до 
критично важливої інформації. 
Serverless-технології (або безсерверні обчислення) — це модель хмарних 
обчислень, у якій розробники можуть запускати код без необхідності керування 
серверами. У такій архітектурі інфраструктура автоматично масштабується та 
керується провайдером хмарних послуг, а користувач сплачує лише за фактичне 
використання ресурсів, детально зображено (рис. 2.2) 
30 
 
 
Рисунок 2.2. – Архітектура serverless-технології 
На зображенні архітектура демонструє, як користувач взаємодіє з системою 
через мобільний пристрій або інший клієнтський пристрій. Запити користувача 
проходять через систему маршрутизації DNS, яка визначає, куди їх направити для 
подальшої обробки [4]. 
Мережа доставки контенту (CDN) забезпечує швидку передачу статичних 
ресурсів, таких як зображення, відео та інші файли. Якщо запит вимагає динамічної 
обробки, він спрямовується до вебсервера, який передає його через API Gateway. 
Шлюз API керує запитами та направляє їх до відповідних serverless-функцій. 
Безсерверні функції виконують необхідну логіку у відповідь на запити 
користувачів. Наприклад, вони можуть обробляти запити автентифікації, виконувати 
обчислення або звертатися до бази даних. Система також включає об’єктне сховище 
для збереження статичних файлів, а також окремі сховища для збереження сесій 
користувачів та даних додатка. 
Ця схема показує, як serverless-архітектура дозволяє динамічно масштабувати 
ресурси, знижувати витрати на інфраструктуру та прискорювати розробку 
програмних рішень. Замість традиційного сервера, який постійно працює, безсерверні 
31 
 
функції активуються лише за потреби, що робить систему ефективнішою та 
гнучкішою. 
На відміну від традиційних серверних рішень, де необхідно вручну 
налаштовувати та підтримувати сервери, serverless дозволяє запускати функції або 
сервіси, які виконуються лише у відповідь на певні події (наприклад, HTTP-запити, 
зміни в базі даних або повідомлення в чергах). Це робить технологію ефективною для 
веб-додатків, мікросервісів, аналітики даних та автоматизації бізнес-процесів. 
До популярних платформ для serverless обчислень належать AWS Lambda, 
Google Cloud Functions, Microsoft Azure Functions та IBM Cloud Functions. Вони 
забезпечують автоматичне масштабування, зниження витрат на інфраструктуру та 
швидку розробку додатків без необхідності турбуватися про серверне середовище. 
При виборі мови програмування для serverless-архітектури важливо враховувати 
швидкість виконання, ефективність роботи з подіями та легкість інтеграції з 
хмарними сервісами. Node.js є одним із найкращих варіантів для таких рішень, 
оскільки його асинхронна модель дозволяє обробляти численні запити одночасно без 
затримок [5]. Це робить його ідеальним для побудови API, мікросервісів та обробки 
подій у режимі реального часу. Представлено ключові аспекти забезпечення безпеки 
додатків на платформі Node.js. та її архітектуру (рис. 2.3).  
 
Рисунок 2.3 – Архітектура Node.js 
 
32 
 
Захист Node.js-додатків є критично важливим для запобігання потенційним 
атакам та забезпечення надійності системи.  
Головна перевага у serverless-середовищі — його неблокуюча модель 
введення/виведення, яка забезпечує високу продуктивність при роботі з великою 
кількістю запитів. Оскільки функції в serverless працюють короткостроково й повинні 
швидко виконуватися, можливість негайного реагування на події без зайвих затримок 
є критично важливою. Node.js чудово підходить для цього завдяки своїй подійно-
орієнтованій природі та легкій масштабованості. 
Ще одна важлива особливість Node.js — велика екосистема пакетів через npm. 
Завдяки цьому розробники мають доступ до безлічі готових бібліотек для роботи з 
базами даних, хмарними сервісами, API та іншими компонентами. Це значно спрощує 
розробку та інтеграцію з інфраструктурою, наприклад, у випадку використання AWS 
Lambda, Google Cloud Functions або Azure Functions. 
Крім того, Node.js швидко завантажується при кожному виклику функції, що є 
ключовим фактором для serverless-архітектури. Багато традиційних серверних мов, 
таких як Java або C#, мають повільний старт, що може створювати проблеми при 
частих викликах функцій. Node.js, навпаки, має мінімальні затримки запуску, що 
зменшує загальний час виконання та оптимізує витрати на використання хмарних 
ресурсів. 
Таким чином, використання Node.js у serverless-середовищі є оптимальним 
вибором для швидкої та ефективної обробки запитів, гнучкої інтеграції з іншими 
сервісами та зниження витрат на інфраструктуру. Його продуктивність, 
масштабованість та широка підтримка хмарних платформ роблять його ідеальним для 
побудови сучасних безсерверних додатків. 
Для зберігання даних у serverless-архітектурі важливо вибрати відповідну базу 
даних, яка забезпечить швидкий доступ, масштабованість і стабільну роботу навіть 
при великих навантаженнях [6]. Одними з найкращих варіантів для цього є MySQL, 
PostgreSQL та Oracle DB, оскільки вони забезпечують ефективну взаємодію з 
хмарними платформами та можуть легко інтегруватися із serverless-функціями. 
33 
 
Використання MySQL, PostgreSQL та Oracle DB у serverless-рішеннях. MySQL 
– це одна з найпопулярніших реляційних баз даних, яка відома своєю високою 
швидкістю роботи, стабільністю та великою кількістю інструментів для 
адміністрування. MySQL ідеально підходить для serverless-додатків завдяки своїй 
простоті, широкій підтримці у хмарних середовищах (наприклад, Amazon RDS, 
Google Cloud SQL) та можливості працювати з горизонтальним масштабуванням. 
PostgreSQL відрізняється потужною підтримкою складних запитів, збережених 
процедур і роботою з JSON-структурами. Це робить його чудовим вибором для 
serverless-додатків, які вимагають високої гнучкості при зберіганні даних. PostgreSQL 
підтримує ACID-транзакції, що забезпечує високу цілісність даних, а також має 
механізми реплікації та паралельного виконання запитів, що дозволяє ефективно 
працювати з великими обсягами інформації. 
Oracle DB – це надійна корпоративна база даних, яка використовується для 
складних та критичних бізнес-процесів. Вона підтримує високу продуктивність, 
автоматичне керування ресурсами та інтеграцію з аналітичними інструментами. 
Завдяки своїм можливостям Oracle DB часто використовується великими 
корпораціями, що потребують стабільної роботи з великими обсягами даних. 
Вибір між цими базами залежить від конкретних потреб підприємства: MySQL 
добре підходить для невеликих та середніх проектів, PostgreSQL — для рішень із 
складними структурами даних, а Oracle DB — для великих корпорацій із високими 
вимогами до надійності та безпеки [7]. 
Для інтеграції serverless-функцій з іншими сервісами та системами необхідно 
забезпечити ефективний обмін інформацією. Для цього можна використовувати 
Webhooks або Kafka Streams, які дозволяють налагодити взаємодію між 
мікросервісами, базами даних та сторонніми додатками. 
Webhooks – це механізм миттєвого сповіщення, який використовується для 
передачі подій у режимі реального часу. Він працює за принципом “push-
нотифікацій”, коли один сервіс автоматично відправляє HTTP-запит до іншого 
34 
 
сервісу, щойно відбувається певна подія. Схема роботи Webhooks зображена на (рис. 
2.4) 
 
Рисунок 2.4 - Схема роботи Webhooks 
Event Triggering (Запуск події) – подія ініціюється в певній системі. Це може 
бути, наприклад, новий платіж, створення користувача або зміна статусу замовлення. 
Request with Payload (Запит з даними) – система-ініціатор надсилає HTTP-
запит (зазвичай у форматі JSON) до зовнішнього сервісу. У запиті міститься корисне 
навантаження (payload), яке містить детальну інформацію про подію. 
Event Processing (Обробка події) – отриманий запит обробляється 
приймаючою системою, яка виконує відповідні дії (наприклад, оновлення бази даних, 
відправлення повідомлення або виконання бізнес-логіки). 
Наприклад, у логістичній системі Webhook може автоматично надсилати 
повідомлення про закінчення певного матеріалу на склад, що дозволяє іншому сервісу 
ініціювати замовлення постачання [8]. 
Kafka Streams – це технологія потокової обробки даних, яка дозволяє 
ефективно передавати та обробляти великі обсяги інформації в реальному часі. Схема 
роботи Kafka Streams (рис. 2.5). 
35 
 
  
Рисунок 2.5 – Схема роботи Kafka Streams 
Kafka Producer (Виробник даних) – отримує інформацію з різних джерел 
(мобільні пристрої, комп’ютери, IoT-пристрої, бази даних) і відправляє її в Kafka. 
Kafka (Ядро системи) – приймає, зберігає та передає потоки даних між 
виробниками та споживачами. 
Kafka Streams та KSQL – використовуються для обробки та трансформації 
потоків даних у режимі реального часу. 
Kafka Consumer (Споживач даних) – отримує дані з Kafka та передає їх до 
кінцевих сервісів (наприклад, для відправлення email-повідомлень). 
Kafka Connect Source та Sink – дозволяють підключати зовнішні бази даних. 
Kafka Connect Source зчитує дані з вихідної бази даних (Source Database) та 
передає їх у Kafka. 
Kafka Connect Sink отримує дані з Kafka і зберігає їх у цільовій базі даних 
(Target Database). 
На відміну від Webhooks, Kafka Streams працює у розподіленому середовищі, 
що дозволяє масштабувати потоки даних між сотнями мікросервісів. Це особливо 
36 
 
корисно для підприємств, які обробляють велику кількість транзакцій або 
логістичних операцій і потребують стійкості системи навіть при пікових 
навантаженнях [9]. 
Поєднання MySQL, PostgreSQL або Oracle DB з Webhooks або Kafka Streams 
дає можливість створити гнучку, швидку та масштабовану систему. Завдяки 
Webhooks можна забезпечити миттєве оновлення даних у різних сервісах, що важливо 
для відстеження залишків матеріалів чи оперативного виконання замовлень. 
Використання Kafka Streams дозволяє працювати з великим потоком подій та 
транзакцій, що особливо корисно для великих підприємств і складних логістичних 
систем. 
Таким чином, правильний вибір бази даних та механізму обміну даними 
дозволяє створити ефективне serverless-рішення, яке легко інтегрується в існуючу 
інфраструктуру підприємства, мінімізує затримки у передачі інформації та 
автоматизує управління бізнес-процесами. 
2.2  Обґрунтування вибору 
Сучасний світ програмного забезпечення швидко розвивається, і технологічні 
зміни відбуваються все частіше. В умовах зростаючої конкуренції та збільшення 
обсягів даних важливо обирати правильні, сучасні технології для розробки 
ефективних систем. 
Розробка системи управління логістичними запасами з автоматизованим 
аналізом даних у реальному часі вимагає використання передових рішень у сфері 
хмарних обчислень, великих даних та машинного навчання. Це дозволяє забезпечити 
високу продуктивність, масштабованість та точність прогнозування, що є критичним 
для ефективного управління логістичними процесами. 
Сучасні веб-додатки все частіше використовують serverless технології, оскільки 
вони дозволяють зменшити витрати на інфраструктуру, покращити масштабованість 
та спростити процес розробки. Завдяки цим підходам розробникам не потрібно 
37 
 
турбуватися про налаштування та підтримку серверів, адже ресурси автоматично 
виділяються залежно від навантаження. Це забезпечує ефективне використання 
обчислювальних потужностей і значно зменшує час простою. Крім того, serverless 
технології дозволяють швидше впроваджувати нові функції та оновлення, що робить 
веб-додатки більш гнучкими та адаптивними до змінних потреб користувачів. 
Тому для розробки системи управління логістичними запасами з 
автоматизованим аналізом даних у реальному часі використання serverless підходу є 
оптимальним рішенням. Воно дозволяє забезпечити гнучкість, автоматичне 
масштабування та ефективне використання ресурсів, що особливо важливо для 
роботи з великими обсягами даних і високими навантаженнями. Це дає змогу 
зменшити витрати на інфраструктуру та зосередитися на створенні якісного 
програмного забезпечення. 
Система хмарних рішень AWS є однією з найкращих, оскільки вона пропонує 
широкий набір сервісів, високу надійність і безпеку, а також автоматичне 
масштабування під навантаження. Велике ком'юніті користувачів і розробників 
забезпечує швидку підтримку та обмін досвідом, а детальна документація спрощує 
впровадження технологій та вирішення можливих проблем. Завдяки цим перевагам 
AWS є оптимальним вибором для розробки системи управління логістичними 
запасами, що вимагає високої продуктивності та ефективного аналізу даних у 
реальному часі. 
Важливо обрати правильну мову програмування для розробки serverless 
додатку, оскільки від цього залежить продуктивність, зручність підтримки та 
інтеграція з хмарними сервісами. Деякі мови краще підходять для роботи в 
безсерверному середовищі завдяки швидкому часу запуску, ефективному 
використанню ресурсів та підтримці в обраному хмарному сервісі. Враховуючи ці 
фактори, правильний вибір мови допоможе створити надійний, масштабований та 
оптимізований додаток. 
Деякі мови програмування, такі як Java, є занадто важкими для serverless 
підходів, оскільки потребують більше ресурсів для запуску та мають довший час 
38 
 
прогріву, що може впливати на продуктивність додатку. Натомість мови, як-от 
Node.js та Python, є легшими, швидше запускаються та споживають значно менше 
ресурсів, що робить їх більш ефективними для безсерверної архітектури. Завдяки 
цьому можна зменшити витрати на обчислювальні потужності та покращити 
швидкодію додатку. 
Технологія Node.js використовує мову програмування JavaScript, що дає 
можливість уніфікувати розробку, застосовуючи одну мову як для серверної, так і для 
клієнтської частини додатку. Це спрощує процес розробки, дозволяє ефективно 
використовувати спільні бібліотеки та забезпечує кращу взаємодію між фронтендом 
і бекендом. Завдяки цьому можна прискорити розробку, спростити підтримку коду та 
зробити командну роботу більш гнучкою. 
Node.js є асинхронною технологією, що означає, що вона працює на основі 
неблокуючої моделі введення-виведення. Це дозволяє виконувати кілька операцій 
одночасно, не чекаючи завершення попередніх, що значно підвищує продуктивність 
і ефективність обробки запитів. 
У serverless-архітектурі це особливо корисно, оскільки функції виконуються в 
середовищі з обмеженими ресурсами і можуть мати короткий час життя. Завдяки 
асинхронному підходу Node.js може швидко обробляти велику кількість запитів без 
зайвих витрат на створення нових потоків або процесів. Це допомагає зменшити 
затримки, покращує масштабованість додатку та знижує вартість виконання 
serverless-функцій. 
У serverless технологіях важливо враховувати час холодного старту, оскільки 
він впливає на швидкість виконання функцій та загальну продуктивність додатку. 
Холодний старт – це час, необхідний для ініціалізації серверless-функції перед її 
виконанням після тривалого простою. Під час холодного старту створюється новий 
контейнер, завантажуються залежності та виконується початкова конфігурація 
середовища, що може спричинити затримки, особливо для важких мов 
програмування, таких як Java. 
39 
 
Node.js є хорошою технологією для serverless підходу, оскільки має швидкий 
час запуску та низьке споживання ресурсів. Завдяки неблокуючій архітектурі та 
ефективному управлінню пам’яттю, Node.js зменшує затримки при запуску функцій, 
що робить його ідеальним вибором для обробки запитів у реальному часі та 
оптимізації витрат у хмарних середовищах. 
 У serverless підході є можливість розробити архітектуру сервісу таким чином, 
що різні частини системи працюватимуть в окремих контейнерах, що значно спрощує 
їх розробку та підтримку. Така модульна структура дозволяє ізольовано розробляти, 
тестувати та масштабувати окремі компоненти системи без впливу на інші частини. 
Це сприяє більш гнучкому управлінню, оскільки кожен контейнер може бути 
налаштований і оптимізований відповідно до конкретних потреб, що дозволяє 
підвищити ефективність розробки та забезпечити кращу масштабованість і стійкість 
усієї системи. 
 Важливо обрати правильну базу даних для розробки системи управління 
логістичними запасами, оскільки вона буде зберігати і обробляти критично важливу 
інформацію, таку як дані про запаси, замовлення, постачальників, транзакції та інші 
ключові елементи. База даних повинна забезпечувати високу доступність, надійність 
та ефективність при роботі з великими обсягами даних. 
SQL база даних є оптимальним вибором для цієї системи, оскільки вона 
дозволяє зберігати структуровані дані в таблицях, що легко піддаються запитам та 
маніпуляціям. Завдяки строгій схемі та можливості використання потужних запитів 
SQL, можна ефективно виконувати складні операції з даними, підтримувати 
цілісність і збереження даних, а також забезпечити можливість масштабування та 
інтеграції з іншими системами. SQL бази даних також забезпечують надійну 
підтримку транзакцій, що є важливим аспектом для забезпечення точності й 
консистентності даних у реальному часі. 
AWS надає можливість використовувати бази даних з підтримкою serverless 
технологій, що дозволяє знизити витрати на інфраструктуру та автоматизувати 
масштабування баз даних без необхідності управління серверами. За допомогою 
40 
 
сервісів, таких як Amazon Aurora Serverless або Amazon DynamoDB, можна ефективно 
обробляти дані в реальному часі, при цьому сплачуючи лише за фактичне 
використання ресурсів, що значно зменшує витрати на підтримку та масштабування 
бази даних. 
Ці serverless рішення автоматично масштабуються залежно від навантаження, 
що особливо корисно для системи управління логістичними запасами, де 
навантаження може змінюватися в залежності від обсягу запитів або сезонних 
коливань. Крім того, такі бази даних пропонують високу доступність та надійність, 
що є важливим для роботи з критичними даними в реальному часі. 
Amazon Aurora є аналогом MySQL, але з покращеною продуктивністю та 
масштабованістю. Цей сервіс пропонується AWS як одне з найвигідніших рішень для 
баз даних, оскільки поєднує в собі високу швидкість роботи, доступність, і низькі 
витрати на інфраструктуру. Aurora автоматично масштабується, що дозволяє 
ефективно працювати навіть з великими обсягами даних, зберігаючи при цьому 
сумісність з MySQL [10]. Завдяки підтримці serverless технологій, можна платити 
тільки за фактичне використання ресурсів, що робить Aurora ідеальним вибором для 
розробки системи управління логістичними запасами, де важлива ефективність та 
оптимізація витрат. 
Система управління логістичними запасами повинна мати можливість 
відправляти дані на інші сервіси підприємства для забезпечення ефективної інтеграції 
та автоматизації процесів. Важливо визначитися з принципом комунікації між 
системами, і одним з найефективніших підходів є використання Webhooks. 
Webhooks дозволяють здійснювати реальний обмін даними між системами в 
реальному часі. Це простий, але потужний механізм, який дає змогу одній системі 
автоматично відправляти HTTP-запити до іншої системи, коли певна подія 
відбувається в додатку. Наприклад, при зміні стану запасів або оформленні нового 
замовлення система може автоматично сповістити інші сервіси підприємства, такі як 
системи обліку або CRM, що дозволить зберігати синхронізацію даних без 
41 
 
необхідності додаткових запитів чи складних інтеграцій. Використання Webhooks є 
ефективним і масштабованим підходом для реалізації таких інтеграцій. 
Webhooks є універсальним способом комунікації між сервісами, який не 
вимагає додаткових ресурсів, як це було б при використанні більш складних рішень, 
таких як Kafka чи інші сервіси для обміну повідомленнями. Замість того, щоб 
постійно опитувати систему для отримання оновлень, Webhooks дозволяють системі 
відправляти дані або сповіщення безпосередньо в реальному часі через HTTP-запити, 
коли відбувається певна подія [11]. Це зменшує навантаження на сервери, оптимізує 
використання ресурсів і знижує затримки в процесі комунікації між сервісами. 
Webhooks є простим, але ефективним рішенням для інтеграцій, яке підходить для 
більшості сценаріїв, де важливі оперативність та мінімальні витрати. 
Для клієнтської частини додатку можна використати веб-додаток, який буде 
працювати в браузері. Це забезпечить можливість доступу до системи з будь-якої 
точки світу, що є особливо корисним для підприємств з широкою географією або для 
тих, хто потребує гнучкості у роботі. Логісти зможуть працювати віддалено, 
отримуючи доступ до актуальної інформації про запаси, замовлення та інші важливі 
дані в реальному часі, що підвищить ефективність їхньої роботи та спростить 
координацію між командами. Веб-додаток дозволяє також зменшити витрати на 
підтримку різних платформ, оскільки доступ до системи можливий з будь-якого 
пристрою з підключенням до Інтернету. 
Клієнтський додаток може бути розроблений як односторінковий додаток 
(SPA), що дозволить забезпечити швидку та інтерактивну роботу користувачів з 
системою. Оскільки SPA завантажує всі необхідні ресурси один раз і динамічно 
оновлює вміст сторінки без перезавантаження, це покращує зручність та швидкість 
взаємодії. 
Такий додаток може бути розгорнутий за допомогою AWS Static Website 
Hosting, що дозволяє легко та економічно публікувати веб-додатки без необхідності 
налаштовувати сервери. Це забезпечує високу доступність, масштабованість та низькі 
витрати на інфраструктуру, оскільки файли веб-додатку зберігаються в S3 бакетах, а 
42 
 
AWS автоматично обробляє запити користувачів, забезпечуючи стабільну та швидку 
доставку контенту. 
Комунікація між клієнтом і сервером може бути розроблена за допомогою 
HTTPS протоколу, що забезпечить безпечний обмін даними між цими частинами 
системи. HTTPS використовує шифрування для захисту даних, що передаються, 
запобігаючи перехопленню або зміні інформації третіми особами. Це особливо 
важливо для системи управління логістичними запасами, де обробляються чутливі 
дані, такі як інформація про замовлення, запаси, постачальників та транзакції. 
Використання HTTPS гарантує конфіденційність і цілісність даних, а також 
допомагає виконувати вимоги безпеки та стандартів, таких як GDPR або PCI DSS [12]. 
Для забезпечення оновлення даних в режимі реального часу можна використати 
WebSockets, який також працює на базі HTTP, але забезпечує постійне двостороннє 
з'єднання між клієнтом і сервером. Це дозволяє сервісу активно відправляти дані 
клієнту без необхідності постійних запитів з боку клієнта, що робить комунікацію 
більш ефективною та швидкою. 
WebSockets ідеально підходять для ситуацій, коли потрібно оновлювати 
інформацію в реальному часі, наприклад, для відображення актуальних даних про 
запаси або статуси замовлень у системі. Оскільки WebSockets дозволяють 
підтримувати стабільне з'єднання, сервер може негайно передавати зміни клієнтам, 
що покращує взаємодію та забезпечує швидку реакцію системи на події. 
Висновки до розділу 2 
У цьому розділі було здійснено комплексний аналіз сучасних технологій та 
інструментальних засобів, які можуть бути використані для реалізації програмного 
рішення. Зокрема, розглянуто хмарні технології, платформу Node.js, особливості 
використання MySQL, PostgreSQL та Oracle DB у serverless-архітектурах, а також 
механізми обміну повідомленнями, такі як Webhooks. 
43 
 
На основі проведеного огляду було визначено оптимальний набір технологій, 
що найбільше відповідає вимогам. Обрані рішення забезпечують масштабованість, 
надійність, ефективну обробку даних у реальному часі та зручність у розгортанні й 
підтримці. Таким чином, вибрані технології створюють надійне підґрунтя для 
подальшої реалізації системи та досягнення її функціональних і технічних цілей. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44 
 
 
3 РОЗРОБКА СИСТЕМИ УПРАВЛІННЯ ЛОГІСТИЧНИМИ ЗАПАСАМИ З 
АВТОМАТИЗОВАНИМ АНАЛІЗОМ ДАНИХ У РЕАЛЬНОМУ ЧАСІ 
3.1  Структура системи 
Розроблена система була побудована за принципами мікросервісної 
архітектури, що дозволяє розділити додаток на окремі незалежні сервіси, кожен з 
яких відповідає за певну функціональність. Такий підхід забезпечує більшу гнучкість, 
масштабованість та зручність у розробці та підтримці системи. Кожен мікросервіс 
може бути розгорнутий, оновлений або масштабований окремо від інших частин 
системи, що дозволяє ефективно керувати ресурсами і швидше впроваджувати нові 
функції. Крім того, мікросервісна архітектура сприяє більш легкому тестуванню, 
інтеграції з іншими сервісами та підтримці високої доступності всієї системи. 
 Мікросервісна архітектура була побудована з використанням serverless 
технологій, що дозволяє знизити витрати на інфраструктуру та автоматизувати 
масштабування кожного мікросервісу в залежності від навантаження. Кожен 
мікросервіс працює як окрема функція, що виконується в хмарному середовищі без 
необхідності керувати серверами, що значно спрощує процес розгортання та 
підтримки. Завдяки serverless підходу, система може швидко адаптуватися до змінних 
навантажень, автоматично масштабується, а розробники можуть зосередитися на 
функціональності, не турбуючись про управління інфраструктурою. Це дозволяє 
створювати ефективні, гнучкі та масштабовані сервіси, які легко інтегруються один з 
одним [13]. 
 Serverless підхід був побудований на базі хмарного рішення AWS та з 
використанням AWS Lambda функцій. Lambda дозволяє запускати код без 
необхідності управління серверами, автоматично масштабується в залежності від 
навантаження та платить лише за фактичне використання ресурсів. Кожен 
мікросервіс був реалізований як окрема Lambda функція, що дозволяє ефективно 
45 
 
обробляти запити та виконувати операції в реальному часі. Завдяки такому підходу, 
система стала більш гнучкою, масштабованою та економічною, з можливістю 
миттєвого масштабування залежно від потреб бізнесу. Використання AWS забезпечує 
надійність, безпеку та високу доступність усіх компонентів системи. 
 Комунікація між сервісами (функціями) системи відбувається за допомогою 
HTTP з'єднання. Кожен мікросервіс, реалізований як AWS Lambda функція, може 
взаємодіяти з іншими через HTTP-запити, що забезпечує ефективний обмін даними 
та дозволяє здійснювати виклики між функціями. Використання HTTP дозволяє легко 
інтегрувати різні компоненти системи, забезпечуючи зручний і стандартизований 
спосіб комунікації між ними, незалежно від того, де вони розгорнуті, та дає 
можливість масштабувати систему відповідно до вимог бізнесу. 
Хмарний сервіс дає можливість використовувати приватну мережу, що 
забезпечує додатковий рівень безпеки для комунікації між сервісами системи. 
Завдяки цьому, всі мікросервіси, реалізовані як Lambda функції та інші компоненти, 
можуть обмінюватися даними через приватну мережу, що захищає їх від публічного 
доступу. Це гарантує, що лише авторизовані сервіси або користувачі можуть 
взаємодіяти з системою, зменшуючи ризик атак і забезпечуючи високу ступінь 
безпеки та конфіденційності даних у хмарному середовищі. 
Розроблена система складається з наступних мікросервісів: 
1. Сервіс отримання даних від департаментів – цей сервіс отримує дані від 
різних підрозділів підприємства, забезпечуючи інтеграцію між різними 
частинами системи та надаючи клієнтам актуальну інформацію про запаси, 
замовлення та інші дані; 
2. Сервіс роботи з логістичними запасами – цей сервіс відповідає за 
підрахунок та моніторинг запасів. Він аналізує наявність товарів, обчислює 
необхідні запаси та відстежує їх зміну в реальному часі; 
3. Сервіс роботи з базою даних – цей сервіс зберігає оновлені дані, 
забезпечуючи доступ до актуальної інформації про запаси, замовлення та 
46 
 
інші важливі бізнес-дані. Він взаємодіє з базою даних для зберігання і 
обробки даних; 
4. Сервіс webhooks комунікації – цей сервіс відповідає за розсилку даних про 
оновлення в інші системи підприємства. Він забезпечує реальний обмін 
інформацією між сервісами за допомогою HTTP-запитів, автоматизуючи 
процес інтеграцій; 
5. Сервіс роботи з підрядниками – цей сервіс взаємодіє з постачальниками та 
підрядниками, обробляючи інформацію про замовлення, доставки та 
взаєморозрахунки, забезпечуючи ефективне управління взаємовідносинами 
з партнерами. 
Дані сервіси розроблені за допомогою технології Node.js, що значно спрощує їх 
розробку. Використання однієї технології для всіх мікросервісів дозволяє зберігати 
єдину кодову базу, зменшуючи складність інтеграції та підтримки. Оскільки Node.js 
дозволяє ефективно працювати з асинхронними запитами та обробляти великі обсяги 
даних у реальному часі, це ідеально підходить для мікросервісної архітектури. Крім 
того, відсутність відмінностей у технологіях між мікросервісами дозволяє 
розробникам працювати з однаковими інструментами, що підвищує продуктивність і 
полегшує управління проектом. 
Всі мікросервіси розроблені у вигляді Lambda функцій (serverless), що означає, 
що кожен мікросервіс запускається тільки тоді, коли потрібно виконати певну дію, 
що покладена на конкретний мікросервіс. Це дозволяє значно зменшити витрати на 
інфраструктуру, оскільки функції активуються лише в момент необхідності, і 
користувачі сплачують тільки за фактичне використання ресурсів. Використання 
Lambda функцій також забезпечує автоматичне масштабування залежно від 
навантаження, що підвищує ефективність системи та зменшує ризики 
перевантаження. Такий підхід є оптимальним для мікросервісної архітектури, 
оскільки він дозволяє гнучко та ефективно керувати різними частинами системи. 
47 
 
Варто розглянути розроблену систему у схематичному вигляді, що дозволить 
продемонструвати взаємодію між різними мікросервісами та компонентами системи 
(рис. 3.1). 
 
 
Рисунок 3.1 – Структура розробленої системи 
 Сервіс отримання даних від департаментів займається отриманням запитів від 
інших департаментів підприємства. Під запитами мається на увазі інформація про те, 
що з складів підприємства було використано якийсь матеріал. Коли такий запит 
48 
 
надходить, система оновлює інформацію про кількість доступних матеріалів на складі 
та автоматично сповіщає всіх клієнтів системи про зміни.  
Сервіс отримання даних від департаментів займається лише отриманням даних 
і підготовкою їх для передачі в інший сервіс. Цей сервіс не має доступу до бази даних 
і не виконує жодних операцій із зберіганням чи оновленням інформації. Його основна 
функція полягає в тому, щоб отримати запити від інших департаментів, обробити їх 
та передати в спеціалізований сервіс, який уже займається оновленням даних у базі 
та сповіщенням клієнтів системи про зміни. Блока схема сервісу отримання даних від 
інших департаментів (рис. 3.2). 
 
Початок 
 
 Отримання інформації про 
матеріалу з виробництва 
 
 Відправлення запиту на 
сервіс роботи з базою 
 
 
 Чи є Ні 
матеріал на Вихід 
 виробництві 
 
Так 
 
 Відправка оновленої інформації 
в сервіс роботи з базою 
 
 
Вихід 
 
Рисунок 3.2 – Блок схема сервісу отримання даних від інших департаментів 
Після отримання даних від департаментів, ці дані передаються в сервіс роботи 
з базою даних. Цей сервіс має глибоке розуміння структури бази даних і знає, де і як 
правильно зберігати отримані дані. Він відповідає за те, щоб інформація була 
49 
 
збережена в правильних таблицях, з урахуванням усіх необхідних зв'язків та 
структурних вимог. Блок схема сервісу роботи з базою (рис. 3.3). 
 
Початок 
 
 
Отримання запиту від 
сервісів 
 
 
Підключення до бази даних 
 
 
Підготовка Ні Так 
 Запит на 
INTER/UPDATE/DELETE Підготовка SELECT запиту 
зчитування? 
 запиту 
 Виконання запиту та Екранування параметрів 
отримання ID запису 
 
 
Виконання запиту 
 Ні 
Чи є запис в 
базі? 
 
Отримання результату 
 
Так 
 
Підготовка SELECT запиту Чи є Ні 
 результат Вихід 
виконання? 
 
Виконання запиту 
 Так 
 
Відправлення результату 
 
 
Вихід 
 
Рисунок 3.3 – Блок схема сервісу роботи з базою 
Сервіс також забезпечує правильну обробку даних перед їх збереженням, 
перевіряє їх на коректність і відповідність вимогам системи, а також виконує 
необхідні операції для оновлення бази даних. 
50 
 
В системі також присутній сервіс роботи з логістичними запасами. Його 
основна задача – відслідковувати доступні матеріали на складах, підраховувати їх 
кількість і актуалізувати інформацію в системі. Коли відбуваються зміни в кількості 
матеріалів, сервіс відправляє цю інформацію до сервісу Webhook комунікації, щоб 
інформувати інші сервіси про ці зміни. Блок схема сервісу роботи з логістичними 
запасами зображено (рис. 3.4). 
 
Початок 
 
 Отримання даних по 
матеріалам з бази 
 
 Перебір закінчено 
Перебір всіх 
 Вихід матеріалів від 
0 до N 
 
 Є матеріал 
 Отримання залишку по 
матеріалу 
 
 
 Залишок 
менше норми 
 
 
 Змінення статусу 
 
Інформування сервісу по 
 роботі з підрядниками 
 
Рисунок 3.4 – Блок схема сервісу роботи з логістичними запасами 
Крім того, сервіс моніторить рівень запасів і може надсилати попередження про 
наближення до завершення або вичерпання будь-якого матеріалу, що дозволяє 
оперативно вживати заходів для поповнення запасів і уникати перебоїв у процесі. 
51 
 
Також система має сервіс роботи з підрядниками, який при налаштуванні може 
автоматично відправляти запити до підрядників для автоматичного замовлення 
матеріалів для підприємства. Цей сервіс інтегрується з зовнішніми системами 
постачальників і дозволяє автоматизувати процес закупівель. Коли рівень запасів 
досягає певного порогу, сервіс автоматично генерує замовлення та відправляє його 
підрядникам без необхідності ручного втручання. Це значно спрощує логістичні 
процеси, зменшує час на обробку замовлень і забезпечує своєчасне поповнення 
запасів. Блок схема сервісу роботи з підрядниками зображено (рис. 3.5). 
 
Початок 
 
 
Отримання інформації від 
 сервісу по роботі з 
логістичними про низький 
 залишок матеріалів 
 
Ні 
 
Чи є підрядник 
 для цього Вихід 
матеріалу 
 
Так 
 
 Формування та відправка 
автоматичного запиту до 
 підрядника 
 
 Вихід 
 
Рисунок 3.5 – Блок схема сервісу роботи з підрядниками 
У разі, якщо потрібно виконати інформування інших сервісів, в роботу вступає 
сервіс Webhook комунікації. Цей сервіс відповідає за розсилку повідомлень про зміни 
в системі, такі як оновлення кількості матеріалів на складі або попередження про 
закінчення запасів. За допомогою Webhooks, сервіс передає ці дані іншим 
компонентам системи або зовнішнім сервісам, забезпечуючи ефективну і своєчасну 
52 
 
комунікацію між усіма частинами системи. Webhooks дозволяють автоматизувати 
обмін інформацією без потреби в постійних запитах з боку інших сервісів, що значно 
підвищує швидкість і ефективність процесів. Блок схема сервісу webhook комунікацій 
зображено (рис. 3.6). 
 
Початок 
 
 
Отримання інформації про 
 зміну залишку логістичного 
запасу 
 
 
Отримання конфігурації 
 webhook з бази даних 
 
 
Ні 
 Чи є створений 
Вихід 
webhook 
 
Так 
 
 Відправка запиту 
 
 
Вихід 
 
Рисунок 3.6 – Блок схема сервісу webhook комунікацій 
Сервіс зберігає конфігурації про ресурси, які мають бути оповіщені про зміни 
кількості товарів на складах, у вигляді JSON файлу. Цей файл містить інформацію 
про те, які системи або користувачі повинні отримати повідомлення про зміни в 
запасах. Даний файл можна оновити через портал користувача системи, що дозволяє 
адміністраторам або відповідальним особам змінювати налаштування оповіщень без 
необхідності втручання в код або рестарт сервісів. Це забезпечує гнучкість і 
можливість швидкої адаптації системи до змін у вимогах безпеки та бізнес-процесах. 
53 
 
Усі сервіси системи комунікують між собою через API Gateway. Це забезпечує 
централізовану точку входу для всіх запитів та дозволяє ефективно керувати 
взаємодією між мікросервісами. API Gateway виступає як проксі-сервер, що 
маршрутизує запити до відповідних Lambda функцій або мікросервісів, забезпечуючи 
безпеку, аутентифікацію, моніторинг та обмеження доступу. Це дозволяє спростити 
архітектуру системи, підвищити її масштабованість та контроль за трафіком між 
сервісами [13]. Крім того, API Gateway дозволяє легко інтегрувати сторонні сервіси 
та забезпечує зручний інтерфейс для взаємодії з системою. 
Система має структуровану базу даних, яка працює на базі AWS Aurora. Aurora 
забезпечує високу продуктивність і надійність, є сумісною з MySQL і PostgreSQL, що 
дозволяє легко інтегруватися з іншими додатками та системами. Вона автоматично 
масштабується в залежності від навантаження та пропонує високу доступність 
завдяки реплікації та резервному копіюванню [14]. Використання AWS Aurora 
дозволяє зберігати дані в структурованому вигляді, забезпечуючи ефективне 
управління великими обсягами інформації про запаси, замовлення та інші бізнес-дані, 
а також гарантує швидкий доступ до цих даних у реальному часі [15]. 
Клієнтська частина системи побудована на базі Angular фреймворку та 
збережена на Amazon S3. Це дозволяє ефективно зберігати статичні файли та легко 
масштабувати додаток при необхідності. Користувачі системи можуть отримати 
доступ до цієї частини через браузер, використовуючи AWS Static Website Hosting. 
Це забезпечує швидкий та зручний доступ до системи з будь-якої точки світу, не 
потребуючи складної інфраструктури для підтримки веб-сервера. Завдяки 
використанню AWS, клієнтська частина системи є надійною, доступною та швидко 
завантажується. 
 
3.2  Опис функцій системи 
Розроблена система управління логістичними запасами з автоматизованим 
аналізом даних у реальному часі є потужним інструментом, який може бути 
54 
 
використаний логістами в будь-якій компанії. Ця система дозволяє ефективно 
моніторити кількість товарів та матеріалів на підприємстві, а також забезпечувати їх 
наявність відповідно до поточних потреб. Завдяки автоматизованому аналізу даних у 
реальному часі, система забезпечує швидке реагування на зміни в обсягах запасів, що 
дозволяє уникнути дефіциту або надлишку товарів, підвищуючи загальну 
ефективність управлінських процесів. 
Основна функція системи полягає в автоматичному інформуванні зацікавлених 
осіб або сервісів про зміну кількості товарів або матеріалів на підприємстві. 
Автоматичне сповіщення дає змогу мінімізувати людський фактор у процесі 
моніторингу запасів, підвищуючи точність і швидкість прийняття рішень. 
У розрахунках кількості матеріалів на підприємстві важливо уникати 
людського фактору з кількох причин: 
− Помилки в обчисленнях; 
− Неврахування всіх факторів; 
− Затримки в обробці інформації; 
− Психологічні фактори; 
− Труднощі з обробкою великих обсягів даних. 
Людські помилки під час вручну введення даних або виконання розрахунків 
можуть призвести до неточностей у визначенні необхідної кількості матеріалів, що 
вплине на ефективність роботи підприємства. 
Людина може не врахувати всі важливі параметри, такі як сезонні коливання 
попиту, непередбачувані зміни в виробничих процесах або постачанні, що призведе 
до неправильних розрахунків і, як наслідок, до дефіциту або надлишку матеріалів. 
Людський фактор може спричинити затримки в оновленні інформації про 
наявні запаси, що знижує оперативність прийняття рішень і може призвести до 
зупинки виробництва або затримок у постачанні. 
Рішення, прийняті людьми, можуть бути під впливом емоцій, стресу чи 
суб'єктивних уявлень, що збільшує ризик ухвалення нераціональних або 
непродуманих рішень щодо закупівель або використання матеріалів. 
55 
 
При обробці великих обсягів інформації вручну існує ймовірність пропусків 
або помилок, що може призвести до невірного планування запасів та порушення 
ланцюга постачання. 
Автоматизація процесу розрахунку кількості матеріалів дозволяє уникнути цих 
недоліків, підвищуючи точність, швидкість і ефективність управління запасами. 
Робота користувача з системою починається з процесу авторизації, який є 
необхідним для забезпечення безпеки системи. Авторизація дозволяє ідентифікувати 
користувача, визначити його рівень доступу та запобігти несанкціонованому 
втручанню в роботу системи. Це гарантує, що лише уповноважені особи можуть 
переглядати, змінювати або керувати даними про запаси товарів і матеріалів на 
підприємстві. На (рис. 3.7) зображено інтерфейс системи авторизації. 
 
Рисунок 3.7 – Система авторизації 
 У системі використовується стандартна авторизація за допомогою email та 
пароля. Це забезпечує зручний і водночас безпечний доступ користувачів до 
функціоналу системи. Введені дані проходять перевірку, і лише після успішної 
ідентифікації користувач отримує доступ до свого облікового запису відповідно до 
56 
 
наданих йому прав. Такий підхід гарантує захист від несанкціонованого доступу та 
збереження конфіденційності даних. Інтерфейс розробленої системи зображено на  
(рис. 3.8) 
 
Рисунок 3.8 – Інтерфейс розробленої системи, розділ звіти 
Після успішної авторизації користувач отримує доступ до системи. Першою 
сторінкою, яку він бачить, є список звітів по матеріалах. Для зручності система 
автоматично відкриває перший звіт зі списку, дозволяючи користувачеві одразу 
переглянути актуальні дані про запаси матеріалів на підприємстві. Це забезпечує 
швидкий доступ до важливої інформації та дозволяє оперативно аналізувати стан 
матеріальних ресурсів. 
Звіт по матеріалах містить у собі: 
− Назва матеріалу; 
− Код матеріалу - унікальний ідентифікатор, який використовується на 
підприємстві для відстеження кожного матеріалу; 
− Постачальник - інформація про постачальника, який забезпечує поставку 
даного матеріалу; 
− Дата оновлення залишку - остання дата, коли інформація про залишки 
матеріалу була оновлена в системі; 
57 
 
− Кількість матеріалів у залишку - актуальна кількість матеріалу, доступна 
на підприємстві. 
Тип звіту та перелік відображуваних у ньому матеріалів є налаштовуваний. 
Користувач системи може самостійно визначати, які матеріали включати до звіту, а 
також вибирати тип звіту залежно від своїх потреб. 
Крім того, система надає можливість додавати нові звіти або видаляти існуючі, 
що дозволяє користувачам адаптувати структуру звітності під специфіку роботи 
підприємства. Це забезпечує гнучкість у роботі з даними та покращує контроль за 
матеріальними ресурсами. Інтерфейс додавання нового звіту (рис. 3.9). 
 
Рисунок 3.9 – Інтерфейс додавання нового звіту 
Система автоматично оновлює список матеріалів у звіті одразу після 
завантаження сторінки, використовуючи технологію WebSocket. 
Ця технологія забезпечує миттєве оновлення даних у реальному часі, 
дозволяючи отримувати актуальну інформацію про залишки матеріалів без 
необхідності перезавантаження сторінки. Завдяки постійному з'єднанню між 
клієнтом і сервером система одразу відображає будь-які зміни в запасах, що підвищує 
ефективність моніторингу та управління матеріальними ресурсами на підприємстві. 
58 
 
 Система підсвічує матеріали, які закінчуються або близькі до закінчення, що 
дозволяє користувачеві оперативно реагувати на критичні запаси. 
Крім візуального підсвічування, система також може автоматично надсилати 
сповіщення відповідальним особам, щоб вони могли своєчасно здійснити замовлення 
або перерозподіл матеріалів. Це допомагає уникнути простоїв у виробничих процесах 
і забезпечує безперебійне постачання ресурсів. 
Дані в системі оновлюються автоматично завдяки отриманню інформації з 
інших департаментів за допомогою безпечного HTTPS-протоколу. Це гарантує 
надійний обмін даними між підрозділами підприємства, забезпечуючи актуальність 
інформації про запаси матеріалів. 
Крім того, система розроблена з можливістю інтеграції в будь-яке 
підприємство, незалежно від його структури та специфіки. Вона може взаємодіяти з 
внутрішніми ERP-системами, складськими модулями та іншими корпоративними 
сервісами, що робить її гнучким і ефективним рішенням для автоматизованого 
управління матеріальними ресурсами. 
Система також може відправляти сповіщення про: 
− Зміну в кількості матеріалів - користувачі отримують повідомлення про 
будь-яке оновлення залишків у реальному часі; 
− Завершення матеріалів - система автоматично надсилає попередження, 
якщо запаси матеріалу закінчуються або досягли критичного рівня. 
Система відправляє сповіщення про зміну в кількості матеріалів, завершення 
запасів та інші події через Webhooks. Webhooks дозволяють автоматично передавати 
інформацію в зовнішні сервіси, корпоративні системи або месенджери без затримок. 
Це забезпечує миттєве оновлення даних у пов’язаних системах та дозволяє 
інтегрувати управління запасами з іншими бізнес-процесами підприємства. Інтерфейс 
додавання нового звіту зображено (рис. 3.10). 
59 
 
 
Рисунок 3.10 – Інтерфейс додавання нового звіту 
За допомогою Webhooks можна: 
− Сповіщати ERP-систему про зміну залишків; 
− Інтегруватися з месенджерами (Slack, Telegram) для оперативного 
інформування співробітників; 
− Автоматично ініціювати замовлення при досягненні критичних запасів. 
Цей підхід робить систему гнучкою та легко інтегрованою в будь-яку IT-
інфраструктуру підприємства. 
Налаштування вебхуків відбувається безпосередньо в системі. Користувач 
може завантажити JSON файл з налаштуваннями, в якому вказано, куди відправляти 
повідомлення (наприклад, URL зовнішніх сервісів або месенджерів) та які саме 
повідомлення повинні бути надіслані (наприклад, про зміни в кількості матеріалів, 
завершення запасів тощо). 
Після завантаження файлу, сервер автоматично збере ці налаштування та буде 
використовувати їх під час роботи з залишками на підприємстві. Це дозволяє 
60 
 
користувачам легко налаштувати сповіщення та інтеграцію з іншими системами без 
необхідності вручну конфігурувати кожен параметр, що спрощує процес 
налаштування та підтримки. 
Розроблена система є повністю робочим рішенням, яке дозволяє бізнесу 
швидко та зручно управляти логістичними запасами підприємства. Завдяки 
автоматизованим процесам, інтеграціям з іншими корпоративними системами та 
реальному часу оновлення даних, система значно покращує ефективність управління 
запасами, знижує ризики помилок та забезпечує безперебійне постачання матеріалів. 
Вона надає зручні інструменти для моніторингу, аналізу та оптимізації запасів, що 
дозволяє підприємствам оперативно реагувати на зміни і підтримувати стабільну 
роботу всіх процесів. 
3.3  Технічні вимоги для роботи з системою 
Технічні вимоги до системи визначають, яку інфраструктуру та ресурси 
потрібно мати для її запуску і розробки. Це включає вибір технологій, платформ, 
інструментів та середовищ, необхідних для ефективної реалізації системи. Технічні 
вимоги також описують, які сервіси та компоненти повинні бути інтегровані для 
забезпечення належної роботи системи, наприклад, бази даних, сервери, API, а також 
рівень безпеки, який має бути забезпечений. 
Для майбутнього розробника ці вимоги є критично важливими, оскільки вони 
дозволяють чітко визначити, як саме буде побудована система, з якими зовнішніми 
компонентами вона буде взаємодіяти, а також які технічні та інфраструктурні ресурси 
будуть потрібні для її успішного функціонування. Це допомагає правильно оцінити 
час і обсяг роботи, вибрати відповідні інструменти та забезпечити надійність, 
ефективність і безпеку системи в процесі її розробки та подальшої експлуатації. 
Розробник системи має використовувати будь-яку хмарну платформу для 
запуску serverless сервісів. Такий підхід дозволяє знизити витрати на інфраструктуру, 
забезпечити автоматичне масштабування і високий рівень доступності сервісів без 
61 
 
необхідності управляти фізичними серверами чи віртуальними машинами. 
Використання хмарних платформ, таких як AWS, Microsoft Azure або Google Cloud, 
дозволяє розробникам фокусуватися на функціональності системи, а не на управлінні 
інфраструктурою, що підвищує ефективність розробки і зменшує витрати на 
підтримку. 
Система була розроблена та протестована на платформі AWS, тому 
рекомендовано використовувати саме цю платформу для її запуску та експлуатації. 
Однак, це не є обов'язковою умовою, і система може бути адаптована для роботи на 
інших хмарних платформах, що підтримують серверні безсерверні сервіси 
(serverless), таких як Microsoft Azure або Google Cloud. 
Для запуску серверної частини системи необхідно використовувати останню 
LTS версію Node.js, а саме 22.14 [16]. Ця версія забезпечує стабільність, безпеку та 
сумісність з усіма сучасними бібліотеками та фреймворками, що використовуються в 
розробці системи, а також гарантує оптимальну продуктивність і підтримку на 
довготривалій основі. 
Для розгортання системи рекомендовано використовувати CI/CD інструменти, 
які автоматизують процес деплою та тестування. Одним з таких інструментів є GitHub 
Actions, що дозволяє налаштувати автоматичне тестування, збірку та розгортання 
коду при кожному коміті або пулл-реквесті. Використання CI/CD інструментів значно 
покращує ефективність розробки, знижує кількість помилок і забезпечує швидке й 
стабільне впровадження нових змін у систему. 
Процес роботи з клієнтською частиною системи не вимагає спеціального 
процесу для розгортання в виробництво. Клієнтська частина є статичним ресурсом, 
який можна просто завантажити на веб-сервер або хмарну платформу без складних 
налаштувань чи додаткових кроків. Це забезпечує зручність і швидкість 
впровадження, оскільки клієнтська частина автоматично доступна після публікації, 
що дозволяє безперешкодно інтегрувати її в середовище виробництва. 
Рекомендовано використовувати AWS Static Website, оскільки це значно 
спрощує процес розгортання клієнтської частини системи. За допомогою AWS S3 для 
62 
 
хостингу статичних файлів можна легко розгорнути сайт без необхідності 
налаштування складної інфраструктури. Крім того, використання Amazon CloudFront 
CDN для доставки контенту дозволяє значно збільшити швидкість завантаження та 
покращити загальну продуктивність роботи клієнтської частини, зменшуючи 
затримки та забезпечуючи високу доступність для користувачів по всьому світу [17]. 
Важливо правильно налаштувати локальну мережу розробленої 
інфраструктури, щоб локальні сервіси системи мали доступ тільки до локальних 
ресурсів і не були доступні з мережі Інтернет. Це можна досягти за допомогою 
відповідних налаштувань мережевих брандмауерів (firewalls), підмереж та 
сегментації мережі, що обмежують зовнішній доступ до внутрішніх сервісів. Таким 
чином, локальні сервіси, які виконують важливі функції, такі як обробка даних або 
управління внутрішніми ресурсами, будуть захищені від потенційних атак і не будуть 
доступні ззовні, що значно підвищить рівень безпеки інфраструктури. 
З точки зору користувача, єдиною технічною вимогою для використання даної 
системи є наявність браузера та доступу до мережі Інтернет. Оскільки система має 
веб-інтерфейс, користувачам достатньо мати сучасний браузер (наприклад, Google 
Chrome, Mozilla Firefox, Safari або Microsoft Edge) для доступу до всіх функцій без 
необхідності встановлення додаткових програм або налаштувань. Доступ до 
Інтернету дозволяє підключатися до сервісів, обробляти дані та отримувати 
актуальну інформацію в реальному часі. 
Версія браузера має бути останньою, оскільки система автоматично підтримує 
5 останніх версій браузерів. Це забезпечує сумісність з новими функціями, безпеку та 
оптимальну продуктивність. Використання сучасних версій браузерів гарантує, що 
користувач отримає найкращий досвід взаємодії з системою, з підтримкою всіх 
новітніх технологій та стандартів веб-розробки. 
Для доступу до системи користувач має бути створений в базі даних. На даний 
момент цей процес доступний лише адміністратору, який має права на додавання та 
управління користувачами. Це забезпечує контроль над доступом до системи і 
63 
 
дозволяє адміністраторам ефективно керувати правами користувачів, забезпечуючи 
безпеку та правильний доступ до функціональності системи. 
Система не створена для конкретного підприємства і є універсальним 
рішенням, яке може бути використане будь-яким підприємством. Вона розроблена з 
урахуванням гнучкості та масштабованості, що дозволяє адаптувати її до потреб 
різних організацій, незалежно від їхнього розміру або галузі. Це дає можливість 
підприємствам ефективно впроваджувати систему для управління логістичними 
запасами та оптимізації внутрішніх процесів без необхідності розробляти 
індивідуальне програмне забезпечення. 
3.4  Оцінка ефективності 
Щоб визначити результати розробки системи, важливо оцінити ефективність 
цієї системи. Оцінка ефективності включає в себе аналіз того, наскільки система 
відповідає поставленим цілям, покращує процеси управління логістичними запасами, 
знижує витрати та підвищує продуктивність. Крім того, важливо виміряти, як швидко 
система справляється з обробкою даних, наскільки зручна вона для користувачів і 
який вплив має на загальну роботу підприємства. Оцінка результатів допоможе 
визначити, чи відповідає система вимогам і чи потребує вдосконалень або додаткових 
налаштувань. 
Основною ціллю було розробити систему управління логістичними запасами з 
автоматизованим аналізом даних у реальному часі, яка зможе конкурувати з 
аналогічними системами, при цьому не поступаючись їм у функціональності. 
Система повинна забезпечити високу ефективність управління запасами, точність 
аналізу даних та зручність для користувачів, щоб вона могла стати на рівні з 
найкращими рішеннями на ринку і задовольняти потреби підприємств різного 
масштабу. 
64 
 
Аналізуючи розроблену систему, можна зробити висновок, що з фінансової 
точки зору система є ефективнішою, оскільки вона значно знижує витрати на 
управління запасами та оптимізує внутрішні процеси підприємства. 
По-перше, автоматизація аналізу даних у реальному часі дозволяє мінімізувати 
людські помилки та зменшити потребу в додатковому штаті для моніторингу запасів, 
що знижує витрати на працівників та покращує оперативність. 
По-друге, система допомагає передбачити дефіцит матеріалів, що дозволяє 
уникати переплат за термінові замовлення та зайві витрати на надлишкові запаси, тим 
самим зменшуючи витрати на зберігання та управління запасами. 
Також, інтеграція з іншими внутрішніми системами підприємства через API та 
вебхуки дозволяє знизити витрати на інтеграцію та автоматизувати обмін даними між 
різними відділами, що збільшує загальну ефективність роботи підприємства. 
Порівнюючи систему з аналогічними, можна стверджувати, що вона є 
фінансово ефективною завдяки використанню хмарних технологій та serverless 
технологій. 
Використання хмарних платформ дозволяє значно знизити витрати на фізичну 
інфраструктуру та її обслуговування, оскільки хмарні провайдери забезпечують 
необхідні ресурси, такі як сервери, зберігання даних і обчислювальні потужності, на 
основі потреби. Це дозволяє підприємствам уникнути великих капітальних витрат на 
придбання обладнання та на його обслуговування. 
Також, використання serverless технологій дозволяє платити лише за фактично 
використані ресурси, що забезпечує максимальну економію на операційних витратах. 
Завдяки автоматичному масштабуванню таких сервісів система може обробляти 
навантаження тільки тоді, коли це необхідно, без витрат на постійну роботу серверів. 
Це дозволяє зменшити витрати на інфраструктуру та покращити ефективність роботи 
системи, оскільки не потрібно резервувати ресурси для пік навантаження або 
оплачувати непотрібні потужності. 
Користування аналогічними системами є фінансово затратним через високі 
витрати на ліцензії та підтримку програмного забезпечення. Ці витрати можуть 
65 
 
включати постійну плату за використання, оновлення та технічну підтримку. Хоча 
такі системи часто пропонують більшу функціональність і більш гнучкі можливості, 
їх висока вартість може бути значним бар'єром для багатьох підприємств, особливо 
для малих та середніх організацій. Відсутність потреби в купівлі дорогих ліцензій у 
розробленій системі дозволяє значно знизити витрати на її впровадження та 
експлуатацію, роблячи її більш доступною з фінансової точки зору. 
На даний момент планується проводити продаж системи з відкритим кодом, що 
дозволяє працівникам підприємства додавати функціональність та налаштовувати 
систему відповідно до своїх потреб. Однак, важливо зазначити, що ця система не 
може бути перепродана або передана третім особам у вигляді модифікацій чи 
повністю зміненої версії. Відкритий код дає можливість кастомізувати систему для 
конкретного підприємства, що забезпечує більшу гнучкість, але при цьому 
зберігається контроль над правами на перепродаж. 
Висновки до розділу 3 
У цьому розділі розглянуто процес розробки системи управління логістичними 
запасами з автоматизованим аналізом даних у реальному часі. Визначено її структуру, 
що включає функціональні модулі для обліку, моніторингу та аналітики, а також 
описано ключові функції та інтерфейс користувача. Наведено технічні вимоги для 
забезпечення стабільної роботи системи. Оцінка ефективності підтвердила 
доцільність її впровадження завдяки покращенню точності прогнозів та оптимізації 
управління запасами. 
 
 
 
 
 
 
66 
 
4 ЗАХИСТ ІНФОРМАЦІЙНОЇ СИСТЕМИ УПРАВЛІННЯ ЛОГІСТИЧНИМИ 
ЗАПАСАМИ З АВТОМАТИЗОВАНИМ АНАЛІЗОМ ДАНИХ У 
РЕАЛЬНОМУ ЧАСІ 
4.1 Огляд існуючих рішень 
Захист інформації в хмарних технологіях є одним із ключових викликів 
сучасного цифрового середовища. Хмарні обчислення забезпечують зручність, 
гнучкість і масштабованість, але водночас відкривають нові загрози. Основні ризики 
включають несанкціонований доступ до даних, їх витік, DDoS-атаки, вразливості API 
та внутрішні загрози, пов’язані з людським фактором. 
Одним із найефективніших методів захисту є шифрування інформації. Дані 
мають бути зашифровані як у процесі зберігання, так і під час передавання через 
мережу. Для цього використовуються надійні алгоритми, такі як AES-256 або RSA. 
Шифрування може виконуватися на стороні клієнта перед передачею в хмару або на 
рівні хмарного провайдера, що забезпечує додатковий рівень безпеки. 
Керування доступом також відіграє важливу роль у захисті даних. Для цього 
застосовується багатофакторна автентифікація, яка передбачає додаткові рівні 
перевірки користувача, наприклад, через SMS-коди, біометрію або апаратні токени. 
Важливим є також налаштування політик доступу, що дозволяють обмежити дії 
користувачів відповідно до їхніх ролей у системі. Концепція Zero Trust Security 
передбачає перевірку кожного запиту, незалежно від того, чи надходить він з 
внутрішньої мережі, чи ззовні. 
Окрему увагу потрібно приділити безпеці API та мережевих підключень. 
Використання токенів безпеки, таких як OAuth 2.0, дозволяє зменшити ризик 
несанкціонованого доступу до сервісів [18]. Моніторинг активності API допомагає 
виявляти підозрілі запити та аномальну поведінку користувачів, а інтеграція 
фаєрволів та систем виявлення вторгнень значно підвищує рівень безпеки. 
67 
 
Для забезпечення надійності даних у випадку збоїв або кібератак важливо 
впроваджувати резервне копіювання та механізми аварійного відновлення. Регулярне 
створення резервних копій, їх зберігання у різних дата-центрах та перевірка 
можливості швидкого відновлення гарантують безперервність роботи бізнесу. 
Моніторинг безпеки та аудит є ще одним критично важливим елементом 
захисту. Ведення журналів активності дозволяє фіксувати всі дії користувачів та змін 
у системі. Використання SIEM-систем дає змогу в реальному часі аналізувати загрози 
та оперативно реагувати на потенційні атаки. Регулярні перевірки та тестування на 
вразливості допомагають своєчасно усувати можливі ризики. 
Щоб уникнути атак типу DDoS, варто використовувати балансування 
навантаження та захисні сервіси, такі як Cloudflare або AWS Shield. Вони 
допомагають розподіляти трафік і запобігати перевантаженню хмарних ресурсів. 
Значну роль у захисті даних відіграє відповідність стандартам безпеки. 
Дотримання ISO/IEC 27001, GDPR або SOC 2 дозволяє компаніям гарантувати 
безпеку персональних даних та уникати юридичних ризиків [19]. 
Загалом захист інформації в хмарних технологіях потребує комплексного 
підходу. Це поєднання шифрування, ретельного контролю доступу, моніторингу 
активності та відповідності міжнародним стандартам. Провідні хмарні провайдери, 
такі як AWS, Google Cloud та Microsoft Azure, пропонують розширені інструменти 
для забезпечення безпеки, проте остаточна відповідальність за збереження даних 
залишається як на них, так і на самих користувачах. 
У системі управління логістичними запасами з автоматизованим аналізом 
даних у реальному часі, яка забезпечує моніторинг поточних залишків матеріалів, 
важливим аспектом є надійний захист інформації. У таких системах 
використовується комплексний підхід до автентифікації, авторизації та обміну 
даними для забезпечення безпеки та точності. Це необхідно для підтримки 
правильного функціонування таких критичних елементів, як своєчасне оновлення 
залишків матеріалів, сповіщення про завершення компонентів та інтеграція з іншими 
департаментами через Webhook. 
68 
 
Автентифікація користувачів системи має важливе значення для 
підтвердження особи користувача перед доступом до чутливої інформації, такої як 
залишки матеріалів на підприємстві (наприклад, транзистори, резистори та інші 
компоненти, необхідні для виробництва мікросхем). Для цього застосовуються 
стандартні методи автентифікації, такі як введення логіна та пароля або використання 
багатофакторної автентифікації, що забезпечує більш високий рівень безпеки. 
Авторизація та доступ до інформації після автентифікації система визначає, 
які права має користувач, тобто, до яких даних він має доступ. У рамках системи 
управління логістичними запасами це означає, що кожен користувач (наприклад, 
працівники складського відділу, менеджери з постачання або фінансові аналітики) 
має різні рівні доступу до даних про залишки матеріалів та інформацію щодо 
попереджень про завершення компонентів. Механізм авторизації може базуватись на 
ролевому доступі (RBAC), де кожна роль має доступ до конкретних функцій та даних, 
що відповідають її обов’язкам. 
Використання JWT токенів для автентифікації та авторизації. Для 
забезпечення надійної автентифікації і безпечної передачі даних між клієнтом та 
сервером у системі використовується механізм JSON Web Token (JWT). Кожен 
користувач після успішної автентифікації отримує JWT токен, який потім 
використовує для доступу до інформації в системі. Токен містить інформацію про 
користувача (наприклад, його роль та дозволи) та підпис, що дозволяє серверу 
перевіряти цілісність токена [20]. Оскільки система працює в режимі реального часу, 
використання JWT токенів дозволяє підтримувати “статeless” автентифікацію, що 
забезпечує швидке та безпечне оновлення даних про залишки матеріалів без 
необхідності зберігати стан сесії на сервері. 
Захист даних та обмін інформацією. Усі запити та обмін даними в системі 
здійснюються через зашифровані канали зв’язку, використовуючи протокол HTTPS, 
що дозволяє захистити дані про залишки матеріалів та інші чутливі дані від 
прослуховування або маніпуляцій. Також система використовує Webhook для 
відправки повідомлень про завершення матеріалів іншим департаментам 
69 
 
підприємства. Webhook є безпечним методом передачі повідомлень, що дозволяє 
автоматично сповіщати відповідальних працівників або відділи, коли залишки 
компонента досягають критичного рівня. Всі дані, що передаються через Webhook, 
також шифруються для забезпечення безпеки та конфіденційності. 
Система нотифікацій. Система нотифікацій, що інтегрується через Webhook, 
дозволяє відправляти повідомлення іншим підрозділам підприємства у разі 
завершення матеріалу або критичного зниження запасів. Це забезпечує своєчасну 
реакцію на необхідність поповнення запасів, що є ключовим елементом для 
запобігання перебоїв у виробничих процесах. Кожне таке сповіщення є захищеним і 
передається лише тим департаментам, які мають відповідний доступ. 
Таким чином, інтеграція сучасних методів автентифікації, авторизації та 
захисту даних у систему управління логістичними запасами забезпечує надійний 
захист чутливої інформації, своєчасне оновлення даних і безпечну інтеграцію з 
іншими частинами підприємства через Webhook. Це дозволяє підприємству 
ефективно управляти запасами, знижувати ризики дефіциту матеріалів та 
оптимізувати процеси постачання. 
Оскільки webhooks передають чутливу інформацію, їх захист є критично 
важливим для забезпечення безпеки системи та запобігання можливим атакам.  
Шифрування є найважливішим методом захисту воно запобігає перехопленню 
і модифікації даних, що передаються, особливо в випадках, коли вебсервіси 
взаємодіють через публічні мережі. 
Обов’язково потрібно забезпечити передачу даних через зашифрований 
протокол HTTPS замість HTTP. Це дозволяє шифрувати трафік, захищаючи його від 
перехоплення третіми особами (зокрема, від атак типу “man-in-the-middle”). 
Сервери повинні мати дійсні SSL/TLS сертифікати, щоб забезпечити безпечне 
з’єднання та підтвердження достовірності серверів. 
Валідація запитів дозволяє переконатися, що запити до вашої системи надійшли 
з авторизованих джерел і не були змінені під час передачі. 
70 
 
Використання підписів для перевірки автентичності запитів. Кожен webhook 
запит може містити унікальний підпис, сформований за допомогою хешування 
(наприклад, HMAC з використанням секретного ключа). Це дозволяє перевірити, що 
повідомлення не було змінено під час передачі і дійсно надійшло від легітимного 
джерела. 
Для кожного Webhook можна використовувати унікальний API токен або 
секретний ключ для перевірки автентичності запиту. Цей токен додається в заголовок 
HTTP-запиту, і сервер перевіряє його перед обробкою запиту. 
Щоб зменшити ризик несанкціонованого доступу до Webhook, можна 
впровадити додаткові методи обмеження доступу до вебсервісу. 
Обмеження доступу до Webhook через IP-адреси. Тільки запити, що надходять 
з відомих IP-адрес, будуть оброблятися системою. Це дозволяє зменшити ймовірність 
атак з невідомих джерел. 
Для кожного запиту можна вказувати авторизаційні дані (логін і пароль або 
OAuth токен) для додаткової перевірки прав доступу. 
Логування всіх запитів до Webhook дозволяє вчасно виявити підозрілі або 
несанкціоновані запити. Це є важливим кроком для підтримки безпеки системи. 
Зберігайти інформацію про кожен отриманий Webhook запит — IP-адресу 
відправника, час отримання, параметри запиту тощо. Це допоможе виявити зловмисні 
спроби або аномальні дії. 
Регулярно перевіряйти журнали доступу і налаштуйте сповіщення про підозрілі 
події, такі як багаторазові запити з одного джерела, невідомі IP-адреси або 
неправильні підписи. 
Webhooks можуть бути мішенню для різних атак, тому важливо впровадити 
заходи для їх попередження. 
− Атаки типу DDoS: Для захисту від атак на перевантаження серверів за 
допомогою численних запитів, можна застосовувати обмеження по кількості 
запитів (rate limiting) на певний період часу. Це дозволяє обмежити вплив 
потенційних атак, спрощуючи виявлення ненормальних дій; 
71 
 
− Повторні спроби (retry mechanism): Використовувати механізм повторної 
спроби на випадок, якщо запит не вдалося обробити через технічні проблеми 
(наприклад, сервер був недоступний). Однак важливо встановити обмеження на 
кількість спроб для запобігання зловживанню. 
Щоб уникнути порушення безпеки у разі помилки при обробці Webhook, 
важливо правильно налаштувати систему повідомлень. 
У разі виникнення помилки, важливо надсилати адміністраторам або 
розробникам системи повідомлення для швидкої реакції та виправлення ситуації. 
Вивчення помилок, зокрема тих, що пов’язані з відсутністю або неправильною 
автентифікацією, допомагає виявити проблеми в системі безпеки на ранніх етапах. 
Регулярно оновлювати програмне забезпечення веб-сервера та бібліотеки, що 
використовуються для обробки Webhook запитів. Враховувати вразливості, що 
з’являються в процесі експлуатації, і своєчасно усувайте їх. 
Переконатися, що всі використовувані компоненти, бібліотеки та фреймворки 
оновлені до останніх версій, що містять виправлення безпеки. 
Захист інформації при використанні Webhook є важливою частиною будь-якої 
сучасної системи. Вжиті заходи безпеки, такі як шифрування, автентифікація, 
обмеження доступу, моніторинг і захист від атак, забезпечують надійний захист від 
потенційних загроз. Для системи управління логістичними запасами, де важлива 
точність та безпека даних, правильне налаштування захисту Webhook має критичне 
значення для запобігання несанкціонованому доступу та зловмисним діям. 
4.2  Реалізація захисту даних користувачів 
Розроблена система використовує всі сучасні підходи та рекомендації для 
збереження даних та забезпечення їх захисту. Це включає використання шифрування 
даних як при зберіганні, так і при передачі, що гарантує конфіденційність інформації. 
Усі дані в системі зберігаються в базі даних у зашифрованому вигляді. Для 
шифрування використовується алгоритм AES-256, що є одним з найнадійніших та 
72 
 
найсучасніших методів шифрування. Використання цього алгоритму гарантує 
високий рівень захисту даних, оскільки AES-256 забезпечує високу складність для 
злому, навіть при наявності великих обсягів зашифрованої інформації. 
Зберігати дані у зашифрованому вигляді важливо, оскільки зберігання даних у 
зашифрованому вигляді захищає їх від несанкціонованого доступу. У випадку витоку 
даних або несанкціонованого доступу до бази, інформація залишатиметься 
недоступною без відповідного ключа для розшифрування. Такий підхід дозволяє 
забезпечити конфіденційність, цілісність та доступність даних, що є критично 
важливим для забезпечення безпеки та довіри користувачів системи. 
Потрапляння даних про залишки матеріалів на підприємстві до сторонніх осіб 
є дуже небезпечним, оскільки може дати можливість злоумисникам виявити слабкі 
місця у підприємстві. Знаючи інформацію про запаси матеріалів, вони можуть 
розробити стратегії для атак або саботажу, що може призвести до серйозних 
наслідків, таких як перебої у виробництві, крадіжка ресурсів або інші форми 
зловживань. 
Це особливо критично для військових підприємств, де інформація про 
наявність матеріалів, таких як запаси зброї, боєприпасів чи іншого важливого 
обладнання, може бути використана для шпигунства або терористичних атак. Тому 
забезпечення високого рівня безпеки даних є необхідним для захисту не тільки 
економічних інтересів підприємства, але й національної безпеки. 
Також передача даних через мережеві протоколи є одним з найбільш уразливих 
місць, де інформація може потрапити до сторонніх осіб. Без належного шифрування 
під час передачі даних, вони можуть бути перехоплені під час проходження через 
мережу, що створює потенційну загрозу для конфіденційності. Злоумисники можуть 
використовувати методи атаки, такі як середина атаки (MITM) або перехоплення 
трафіку, щоб отримати доступ до важливої інформації, включаючи дані про запаси 
матеріалів на підприємстві. 
Саме тому використання шифрування (наприклад, TLS/SSL) при передачі 
даних є необхідним для забезпечення безпеки, щоб уникнути витоків та зловживань. 
73 
 
Це дозволяє гарантувати, що передана інформація буде захищена від 
несанкціонованого доступу і залишатиметься конфіденційною навіть під час передачі 
через відкриті або незащищені мережі. 
Система використовує HTTPS для всіх видів комунікації між сервісами, як у 
межах локальних мереж, так і в мережі Інтернет. Використання HTTPS гарантує, що 
всі передані дані зашифровані, що забезпечує їхню конфіденційність і цілісність під 
час обміну інформацією між компонентами системи. Це захищає від можливих атак, 
таких як перехоплення трафіку або несанкціонований доступ до важливих даних, що 
особливо важливо для підтримки високого рівня безпеки в процесі взаємодії сервісів 
на будь-яких етапах. 
На додаток до шифрування даних, для доступу до системи використовується 
JWT авторизація (JSON Web Tokens), яка побудована на базі API Gateway в AWS. Ця 
система забезпечує безпечний і ефективний спосіб автентифікації користувачів та 
контролю доступу до ресурсів системи. JWT дозволяє генерувати токени, які містять 
зашифровану інформацію про користувача та його права доступу, що зменшує ризик 
несанкціонованого доступу до системи. Використання API Gateway в AWS додає 
додатковий рівень безпеки, оскільки дозволяє централізовано керувати доступом до 
різних сервісів і застосовувати політики безпеки для кожного запиту, що надходить 
до системи. 
Використання AWS в цілому дає відповідний рівень захисту даних в системі, 
оскільки Amazon Web Services надає потужні інструменти та сервіси для забезпечення 
безпеки, конфіденційності та цілісності даних. AWS має високий рівень захисту, 
включаючи шифрування даних під час зберігання та передачі, мережеві брандмауери, 
механізми автентифікації та авторизації, а також інші функції безпеки, такі як 
моніторинг і аудит доступу до даних. 
Це дозволяє забезпечити надійний захист для чутливої інформації, яку 
обробляє система, а також знижує ризик витоків або несанкціонованого доступу до 
важливих даних. Завдяки вбудованим засобам захисту та можливості налаштування 
74 
 
безпеки на рівні сервісів AWS, підприємства можуть бути впевнені, що їхні дані 
знаходяться під належним захистом в хмарі. 
Висновки до розділу 4 
У даному розділі було розглянуто ключові аспекти забезпечення безпеки 
інформаційної системи управління логістичними запасами. Проведено огляд 
сучасних рішень у сфері захисту даних, зокрема зосереджено увагу на особливостях 
безпеки в умовах використання хмарних технологій. Також проаналізовано підходи 
до реалізації захисту персональних даних користувачів, включаючи механізми 
аутентифікації, шифрування та контроль доступу. 
Загалом, впроваджені заходи безпеки дозволяють забезпечити надійний захист 
даних у системі, мінімізувати ризики несанкціонованого доступу та гарантувати 
конфіденційність, цілісність і доступність інформації в режимі реального часу. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75 
 
ВИСНОВКИ 
 
У результаті виконаної роботи було проведено всебічний аналіз предметної 
області управління логістичними запасами, досліджено можливості існуючих рішень 
і виявлено їх основні недоліки, що обґрунтувало необхідність створення нової 
системи. Запропоновано концепцію системи, яка поєднує простоту використання, 
підтримку оновлення даних у реальному часі, автоматичне сповіщення 
відповідальних осіб та легку інтеграцію з інфраструктурою підприємства. 
Проведений вибір технологій і інструментальних засобів, серед яких хмарні 
сервіси, Node.js, serverless-архітектура з використанням MySQL, PostgreSQL і Oracle 
DB, а також Webhooks і Kafka Streams, дозволив сформувати надійне технологічне 
підґрунтя для розробки системи. Обґрунтовано архітектуру, функціональні модулі, 
інтерфейс користувача та технічні вимоги, що забезпечують ефективну роботу 
розробленого рішення. 
Система демонструє високу ефективність у прогнозуванні та управлінні 
запасами, сприяє зниженню витрат і підвищенню продуктивності логістичних 
процесів. Особлива увага приділена безпеці: реалізовані сучасні методи захисту 
даних в умовах хмарних технологій забезпечують конфіденційність, цілісність і 
доступність інформації. 
Таким чином, розроблена система є сучасним, функціональним і безпечним 
інструментом для автоматизації управління логістичними запасами, який відповідає 
актуальним потребам підприємств. 
 
 
 
 
 
 
76 
 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
 
1. Костенко В. А. Хмарні технології в інформаційних системах : навчальний 
посібник. Київ : Центр учбової літератури, 2019. 310 с. 
2. Хмарні обчислення та їх застосування : монографія / О. В. Андрійчук, І. Ю. 
Поліщук, М. В. Савченко. Львів : Новий Світ-2000, 2020. 285 с. 
3. Підхід Serverless у сучасних інформаційних системах : монографія / С. І. 
Лисенко, П. М. Середа, О. В. Хом’як. Дніпро : Університет ДФС України, 2021. 
278 с. 
4. Stallings W. Cloud Computing: Principles and Paradigms. New York : Wiley, 2020. 
450 p. 
5. Bass L. Software Architecture in Practice. Boston : Addison-Wesley, 2019. 432 p. 
6. Erl T. Cloud Computing Design Patterns. Upper Saddle River : Prentice Hall, 2021. 
368 p. 
7. Heller M. Serverless Computing: Architecture and Applications. Cambridge : 
O’Reilly Media, 2022. 310 p. 
8. Richardson C. Microservices Patterns. New York : Manning Publications, 2018. 320 
p. 
9. Fowler M. Patterns of Enterprise Application Architecture. Boston : Addison-Wesley, 
2020. 560 p. 
10. Duffy J. Webhooks: Automating the Web. San Francisco : O’Reilly Media, 2021. 250 
p. 
11. Chappell D. Enterprise Service Bus. Sebastopol : O’Reilly Media, 2019. 278 p. 
12. Buyya R. Cloud Computing: Principles and Paradigms. Hoboken : Wiley, 2021. 512 
p. 
13. Villamizar M. Serverless Architectures on AWS. New York : Packt Publishing, 2022. 
340 p. 
14. Serverless-архітектура: переваги та недоліки : навчальний посібник / В. В. 
Сидоренко, Ю. Л. Коваленко. Одеса : ОНПУ, 2022. 265 с. 
77 
 
15. Веб-технології та webhook-інтеграція : монографія / А. В. Черненко, С. П. 
Воробей, І. О. Гнатюк. Харків : Фактор, 2021. 312 с. 
16. Використання webhook для автоматизації бізнес-процесів : навчальний 
посібник / О. О. Гончаренко, І. В. Степаненко. Київ : Академвидав, 2020. 290 с. 
17. Автоматизовані системи з використанням хмарних технологій : монографія / П. 
О. Даниленко, В. І. Ткаченко. Черкаси : МакЛаут, 2019. 340 с. 
18. Архітектура хмарних обчислень : навчальний посібник / О. В. Марченко, Ю. В. 
Тищенко. Вінниця : ВНТУ, 2021. 298 с. 
19. Використання AWS Lambda в Serverless-архітектурі : монографія / М. О. 
Петренко, І. В. Соловйов. Київ : НАУ, 2022. 270 с. 
20. Безпека даних у хмарних технологіях : навчальний посібник / В. О. Жуков, П. 
М. Ковальчук. Полтава : ПолтНТУ, 2021. 320 с. 
  
78 
 
ДОДАТОК А 
        Затверджую               
Зав. кафедри КНСА, 
______________ Юрій ТРИУС 
«____»____________2025 р.                                                                                                                                                                              
 
 
 
 
 
 
 
СИСТЕМА УПРАВЛІННЯ ЛОГІСТИЧНИМИ ЗАПАСАМИ З 
АВТОМАТИЗОВАНИМ АНАЛІЗОМ ДАНИХ У РЕАЛЬНОМУ ЧАСІ 
СПЕЦИФІКАЦІЯ  
482.ЧДТУ. 52118-01  
 
Листів 2 
 
 
 
 
 
 
Розробник                          ____________________                Волошина В. М. 
 
Керівник                             ____________________                Підгорний М.В. 
 
 
 
 
 
 
 
 
 
 
 
 
Черкаси – 2025
79 
 
482.ЧДТУ. 52118-01 
Позначення Найменування Примітка 
   
   
 Документація  
   
   
482.ЧДТУ. 52118-01    12 01 Текст програми  
   
482.ЧДТУ. 52118-01    34 01 Інструкція користувача  
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
80 
 
ДОДАТОК Б 
 
 
 
 
 
 
 
СИСТЕМА УПРАВЛІННЯ ЛОГІСТИЧНИМИ ЗАПАСАМИ З 
АВТОМАТИЗОВАНИМ АНАЛІЗОМ ДАНИХ У РЕАЛЬНОМУ ЧАСІ 
 
 
ТЕКСТ ПРОГРАМИ  
482.ЧДТУ.52118-01 12 01 
 
Листів 11 
 
 
 
 
 
 
Розробник    _____________                   Волошина В. М. 
 
 
 
 
 
 
Черкаси – 2025  
81 
 
import { env } from 'process'; 
import mysql, { ServerlessMysql } from 'serverless-mysql'; 
 
import { BedRequest, NotFound, CustomError, NotAuthorized, Forbidden } from 
'../exceptions'; 
 
function sendResponse(config, content?: {[key: string]: unknown}, status = 200) { 
  if (config && config.http) { 
    return { 
      statusCode: status, 
      headers: { 
        'content-type': 'application/json' 
      }, 
      body: content ? JSON.stringify(content) : undefined 
    }; 
  } 
} 
 
function sendErrorResponse(config, error: unknown) { 
  const content = { 
    developerMessage: 'Something went wrong...' 
  }; 
 
  switch (true) { 
    case error instanceof BedRequest: 
    case error instanceof NotFound: 
    case error instanceof Forbidden: 
    case error instanceof NotAuthorized: { 
      const customError = error as CustomError; 
      content.developerMessage = customError.message; 
      return sendResponse(config, content, customError.status); 
    } 
    default: { 
      const defaultError = error as Error; 
      content.developerMessage = defaultError.message; 
      return sendResponse(config, content, 500); 
    } 
  } 
} 
 
async function createDatabaseConnection(enabled: boolean): Promise<ServerlessMysql | 
undefined> { 
  if (enabled) { 
82 
 
    const connection = mysql({ 
      config: { 
        host: env.DB_HOST, 
        user: env.DB_USER, 
        port: parseFloat(env.DB_PORT || '') || 3306, 
        password: env.DB_PASSWORD, 
        database: env.DB_NAME 
      } 
    }); 
 
    await connection.connect(); 
    return connection; 
  } 
} 
 
async function closeDatabaseConnection(connection: ServerlessMysql | undefined): 
Promise<void> { 
  if (connection) { 
    await connection.quit(); 
  } 
} 
 
function parseBody(body: string | undefined): {[key: string]: unknown} { 
  return body ? JSON.parse(body) : {}; 
} 
 
function checkAuth(config, headers) { 
  if (!config || !config.auth) { 
    return; 
  } 
 
  const authPrefix = 'Basic '; 
  const authHeader = headers['authorization'] || ''; 
  const authToken = authHeader.replace(authPrefix, ''); 
 
  if (!authHeader || !authHeader.startsWith(authPrefix) || !authToken) { 
    throw new NotAuthorized('Authorization was not provided'); 
  } 
 
  const allowedToken = env.AUTH_KEY; 
 
  if (allowedToken !== authToken) { 
    throw new Forbidden('You don\'t have access to this resource'); 
83 
 
  } 
} 
 
export function intelligentHandler(config, callbacks) { 
  return async function (event) { 
    const method = (event?.requestContext?.http?.method || 'OTHER').toLowerCase(); 
    const handler = callbacks[method]; 
 
    let connection; 
 
    try { 
      if (handler) { 
        await checkAuth(config, event.headers); 
        connection = await createDatabaseConnection(config.db); 
        const result = await handler.apply(connection, [{ 
          ...event, 
          body: parseBody(event.body) 
        }]); 
        await closeDatabaseConnection(connection); 
        return sendResponse(config, result); 
      } else { 
        throw new NotFound('Handler not found'); 
      } 
    } catch (error: unknown) { 
      await closeDatabaseConnection(connection); 
      return sendErrorResponse(config, error); 
    } 
  }; 
} 
 
 
import crypto from 'crypto'; 
 
const key = process.env.ENCRYPTION_KEY || ''; 
const algorithm = 'aes-256-cbc'; 
 
export function encrypt(vector: string, message: string): string { 
  try { 
    const cipher = crypto.createCipheriv(algorithm, key, vector.slice(0, 16)); 
 
    let encryptedData = cipher.update(message, 'utf-8', 'base64'); 
    encryptedData += cipher.final('base64'); 
 
84 
 
    return encryptedData; 
  } catch { 
    return ''; 
  } 
} 
 
export function decrypt(vector: string, message: string): string { 
  try { 
    const decipher = crypto.createDecipheriv(algorithm, key, vector.slice(0, 16)); 
 
    let decryptedData = decipher.update(message, 'base64', 'utf-8'); 
    decryptedData += decipher.final('utf8'); 
 
    return decryptedData; 
  } catch { 
    return 'Cannot decrypt message'; 
  } 
} 
 
import https from 'https'; 
 
export function request<T>(url: string): Promise<T> { 
  return new Promise((resolve, reject) => { 
    https.get(url, response => { 
      let body = ''; 
 
      response.on('data', chunk => { 
        body += chunk; 
      }); 
 
      response.on('end', () => { 
        try { 
          const json = JSON.parse(body); 
          resolve(json); 
        } catch (error) { 
          reject(error); 
        } 
      }); 
 
    }).on('error', reject); 
  }); 
} 
 
85 
 
import moment from 'moment'; 
 
import { roundTo } from '../common'; 
import { BedRequest } from '../exceptions'; 
import { MYSQL_DATETIME_FORMAT, SQL_QUERIES } from '../constants'; 
 
import type { Item } from '../types'; 
 
export const getWeeklyReport = async (connection, reportId?: string, currentDate = 
moment()) => { 
  const endOfWeek = currentDate.clone().endOf('isoWeek'); 
  const startOfWeek = currentDate.clone().startOf('isoWeek'); 
 
  const datas = await connection.query(SQL_QUERIES.currentMonthlyData, [ 
    reportId, 
    currentDate.format(MYSQL_DATETIME_FORMAT), 
    currentDate.format(MYSQL_DATETIME_FORMAT) 
  ]); 
 
  const data = (datas || []).find(data => data.id); 
 
  if (!data) { 
    throw new BedRequest('Current monthly data was not found'); 
  } 
 
  const startTimeStamp = moment(data.start_at).unix(); 
  const endTimeStamp = moment(data.end_at).unix(); 
 
  const timeDiff = Math.abs(endTimeStamp - startTimeStamp); 
  const numberDays = timeDiff/86400; 
 
  const daysInMonth = Math.floor(numberDays) + 1; 
 
  const startDate = startTimeStamp >= startOfWeek.unix() ? startTimeStamp : 
startOfWeek.unix(); 
  const endDate = endTimeStamp <= endOfWeek.unix() ? endTimeStamp : 
endOfWeek.unix(); 
 
  const dateDiff = endDate - startDate; 
 
  const countDate = Math.round(dateDiff / (60 * 60 * 24)); 
  const weeklyData = (data.amount/daysInMonth) * countDate; 
 
86 
 
  let weeklyAvailableReport = weeklyData; 
 
  const items: Item[] = await connection.query(SQL_QUERIES.itemsRowsByDate, [ 
    moment.unix(startDate).format(MYSQL_DATETIME_FORMAT), 
    moment.unix(endDate).format(MYSQL_DATETIME_FORMAT), 
    data.id 
  ]); 
 
  (items || []).forEach(item => { 
    weeklyAvailableReport = weeklyAvailableReport + item.amount; 
  }); 
 
  return { 
    id: data.id, 
    weeklyData: roundTo(weeklyData, 2), 
    availableReport: roundTo(weeklyAvailableReport, 2), 
    startWeekDate: moment.unix(startDate).toISOString(), 
    endWeekDate: moment.unix(endDate).toISOString(), 
    startMonthDate: moment(data.start_at).toISOString(), 
    endMonthDate:  moment(data.end_at).toISOString(), 
    lastUpdate: moment().toISOString() 
  }; 
}; 
 
export class CustomError extends Error { 
  public status: number; 
 
  constructor(status = 500, ...message) { 
    super(...message); 
 
    if (Error.captureStackTrace) { 
      Error.captureStackTrace(this, CustomError); 
    } 
 
    this.status = status; 
  } 
} 
 
 
export class BedRequest extends CustomError { 
  constructor(...message) { 
    super(400, ...message); 
  } 
87 
 
} 
 
export class NotFound extends CustomError { 
  constructor(...message) { 
    super(404, ...message); 
  } 
} 
 
export class NotAuthorized extends CustomError { 
  constructor(...message) { 
    super(401, ...message); 
  } 
} 
 
export class Forbidden extends CustomError { 
  constructor(...message) { 
    super(403, ...message); 
  } 
} 
 
import { v4 as uuid } from 'uuid'; 
 
import { SQL_QUERIES } from 'shared/constants'; 
 
import { Type, ReportType } from 'shared/enums'; 
 
import { decrypt, encrypt } from 'shared/common'; 
 
import { BedRequest, NotFound } from 'shared/exceptions'; 
 
import { CallbackFunction, Report } from 'shared/types'; 
 
export const createReport: CallbackFunction = async function (event)  { 
  const request = event?.body as Report | undefined; 
 
  if (!request || !request.name || !request.expectedCount) { 
    throw new BedRequest('All needed parameters were not provided'); 
  } 
 
  const id = uuid(); 
 
  await this.query(SQL_QUERIES.reportCreate, [ 
    id, 
88 
 
    encrypt(id, request.name), 
    request.type || ReportType.DEPOSIT, 
    request.expectedCount, 
    request.type || Type.A4, 
    request.currentCount || 0 
  ]); 
 
  const reports: Report[] = await this.query(SQL_QUERIES.reportDetails, [id]); 
  const report = reports && reports.length ? reports[0]: null; 
 
  if (!report) { 
    throw new NotFound('Report was not found'); 
  } 
 
  return { 
    ...report, 
    name: decrypt(report.id, report.name) 
  }; 
}; 
 
import moment from 'moment-timezone'; 
 
import { MYSQL_DATETIME_FORMAT, REPORT_DATETIME_FORMAT, 
SQL_QUERIES } from 'shared/constants'; 
 
import { Budget, CallbackFunction, Report } from 'shared/types'; 
 
import { ReportType } from 'shared/enums'; 
 
import { BedRequest, NotFound } from 'shared/exceptions'; 
 
import { getAllowedReports, getTxnId, parseCount } from 'shared/features'; 
 
import { encrypt, getCategory } from 'shared/common'; 
 
import config from './../config.json'; 
 
import { DepartmentRequest } from './types'; 
 
export const syncDepartment: CallbackFunction = async function (event)  { 
  const departmentId: string | undefined = event?.pathParameters?.departmentId; 
  const departmentTimezone = 'Europe/Kiev'; 
 
89 
 
  if (!departmentId) { 
    throw new BedRequest('All needed parameters were not provided'); 
  } 
 
  const budgets = await this.query<Budget[]>(SQL_QUERIES.mainBudget, 
[departmentId]); 
  const budgetId = budgets && budgets.length ? budgets[0].id : null; 
 
  if (!budgetId) { 
    throw new NotFound('Current budget was not found for provided department'); 
  } 
 
  const request = event?.body as DepartmentRequest[] | undefined; 
 
  const departmentReports: Report[] = (request || []).map(report => { 
    return { 
      id: getTxnId(report.id), 
      count: parseCount(report.count), 
      type: report.type, 
      originalCount: parseCount(report.originalCount, report.count), 
      originalType: report.originalCountType, 
      createdAt: moment.tz(report.date, REPORT_DATETIME_FORMAT, 
departmentTimezone).toISOString(), 
      reportDetails: report.details, 
      type: ReportType.PHYSICAL, 
      category: getCategory(report.categoryDetails), 
      description: report.details 
    }; 
  }); 
 
  const allowedReports = getAllowedReports(config.ignoredStrings, departmentReports); 
  const allowedReportsIds = allowedReports.map(report => report.id); 
 
  if (!allowedReportsIds.length) { 
    return []; 
  } 
 
  const existingReportsList = await this.query<Report[]>(SQL_QUERIES.existsReports, [ 
    allowedReportsIds 
  ]); 
 
  const existingReports = (existingReportsList || []).map(report => report.id); 
  const newReports = allowedReports.filter(report => { 
90 
 
    return !existingReports.includes(report.id); 
  }); 
 
  for(const report of newReports) { 
    await this.query(SQL_QUERIES.reportCreate, [ 
      report.id, 
      budgetId, 
      null, 
      report.count, 
      report.type, 
      report.originalCount, 
      report.originalType, 
      moment(report.createdAt).format(MYSQL_DATETIME_FORMAT), 
      encrypt(report.id, report.reportDetails), 
      report.type, 
      encrypt(report.id, report.description), 
      report.category 
    ]); 
  } 
 
  return newReports; 
}; 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91 
 
ДОДАТОК В 
 
 
 
 
 
 
 
 
СИСТЕМА УПРАВЛІННЯ ЛОГІСТИЧНИМИ ЗАПАСАМИ З 
АВТОМАТИЗОВАНИМ АНАЛІЗОМ ДАНИХ У РЕАЛЬНОМУ ЧАСІ 
 
 
ІНСТРУКЦІЯ КОРИСТУВАЧА 
482. ЧДТУ. 52118-01 34 01 
 
Листів 3 
 
 
 
 
 
Розробник    _____________                   Волошина В. М. 
 
 
 
 
 
 
Черкаси – 2025  
92 
 
Після того, як користувач відкриє веб-браузер і перейдете на головну сторінку 
системи, йому потрібно ввести електронну пошту та пароль, надані адміністратором, 
і натиснути кнопку "Увійти". Після успішної авторизації він будете перенаправлений 
на головну сторінку системи. Перша сторінка, яку побачить користувач, міститиме 
список звітів по матеріалах. Система автоматично відкриє перший звіт з цього списку. 
У звіті по матеріалах буде відображатися інформація про матеріали на 
підприємстві, включаючи код матеріалу, назву постачальника, дату оновлення 
залишку та кількість матеріалів, що знаходяться на складі. Всі дані в системі 
оновлюються в реальному часі за допомогою технології websockets, тому користувач 
завжди будете бачити актуальні залишки. 
Користувач може надрукувати звіт про матеріали, який буде містити всю 
необхідну інформацію про наявність матеріалів, їх кількість та постачальника. Такий 
звіт можна використовувати у виробничих процесах або при замовленні нових 
матеріалів. Це дозволяє легко і швидко отримати необхідну інформацію в зручному 
форматі для подальшого використання в роботі або для передавання в інші відділи 
підприємства. 
Система відображає 10 видів матеріалів на одній сторінці, що дозволяє зручно 
переглядати інформацію без перевантаження користувача. Для покращення зручності 
використання було додано систему пагінації, яка дозволяє переходити між 
сторінками зі списком матеріалів. Це забезпечує швидкий доступ до всіх матеріалів, 
навіть якщо їх кількість значно більша за кількість, що відображається на одній 
сторінці. 
Важливою функцією системи є можливість налаштовувати типи звітів і 
матеріали, які будуть відображатися в звіті. Користувач може додавати або видаляти 
звіти зі списку. Для цього є відповідні кнопки для додавання або видалення звіту в 
верхній частині сторінки. 
Система автоматично підсвічує матеріали, які закінчуються або близькі до 
закінчення. Користувач отримує сповіщення про зміни в залишках матеріалів у 
реальному часі. Це дає змогу миттєво реагувати на нестачу матеріалів. 
93 
 
У разі зменшення кількості матеріалів на складі, система автоматично 
відправить alert на сторінці, що дозволяє користувачу одразу дізнатися про це. 
Сповіщення буде чітко виділено, щоб привернути увагу, і допоможе оперативно 
реагувати на зміни в залишках матеріалів. Це дозволяє користувачу швидко вжити 
необхідних заходів для замовлення нових матеріалів або для коригування виробничих 
планів. 
Щоб отримувати повідомлення про зміни через сторонні сервіси, користувач 
може налаштувати . Для цього необхідно завантажити JSON файл з налаштуваннями 
Webhook, вказати, куди відправляти повідомлення та які саме повідомлення ви хочете 
отримувати. Після цього файл буде збережено на сервері, і система почне 
використовувати ці налаштування для відправлення сповіщень. 
Що стосується доступу до системи, нових користувачів може додавати тільки 
адміністратор. Користувач отримає доступ тільки після того, як його дані будуть 
внесені в базу даних. 
Хоча система буде продаватися у вигляді відкритого коду, власник системи 
може завжди звернутися за допомогою до розробника, надіславши email. Розробник 
надасть необхідну підтримку та допомогу щодо налаштування, інтеграції або 
вирішення можливих технічних проблем, що можуть виникнути під час використання 
системи. Це забезпечує додаткову впевненість у тому, що навіть при використанні 
відкритого коду, користувач завжди зможе отримати кваліфіковану допомогу.