Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/7289
Title: Платформа для громадського опитування та аналізу даних із візуалізацією результатів
Authors: СИСОЄНКО, Світлана
ОРЕЛ, Владислав
Keywords: ГРОМАДСЬКЕ ОПИТУВАННЯ;ВЕБПЛАТФОРМА;ФОРМИ;IFRAME;БЕЗПЕКА;АНАЛІЗ ДАНИХ;ВІЗУАЛІЗАЦІЯ;EMAIL РОЗСИЛКА;SMS РОЗСИЛКА;КОРОТКЕ ПОСИЛАННЯ
Issue Date: 2025
Abstract: Метою виконання даної кваліфікаційної роботи на здобуття освітнього ступеня «бакалавр» є розробка вебплатформи для створення, поширення та автоматизованого аналізу громадських опитувань із візуалізацією результатів. Загальний обсяг роботи становить 80 сторінок. У роботі 13 рисунків. Для виконання роботи використано 25 літературних джерел. Головне завдання це створити функціональну вебплатформу для проведення громадських опитувань, яка забезпечує просте створення форм, захист від повторного голосування, автоматичну обробку результатів та наочну візуалізацію зібраних даних. Стислий опис розділів кваліфікаційної роботи бакалавра складається з аналізу предметної області та постановки задачі; вибору технологій та інструментальних засобів; розробкаплатформидля громадського опитування та аналізу даних із візуалізацією результатів.
URI: https://er.chdtu.edu.ua/handle/ChSTU/7289
Appears in Collections:123 Комп’ютерна інженерія (Комп'ютерні системи та мережі)

Files in This Item:
File Description SizeFormat 
1_ТИТУЛКА_Орел-merged.pdf
  Restricted Access
1.82 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи бакалавра
на тему: «Платформа для громадського
опитування та аналізу даних із візуалізацією
результатів»
ЧДТУ.252182.008 ПЗ
Виконав: студент 4 курсу, групи КМ-2105
спеціальності 123 – «Комп’ютерна інженерія»
за освітньою програмою – «Комп’ютерні системи
та мережі»
Владислав ОРЕЛ
Керівник
к.т.н., доцент
Світлана СИСОЄНКО
Рецензент
к.т.н., доцент
Віталій ЗАЖОМА
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ___________ Віра БАБЕНКО
Черкаси 2025 року
Форма № Н-9.01
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет: інформаційних технологій і систем
Кафедра: інформаційної безпеки та комп’ютерної інженерії
Освітньо-кваліфікаційний рівень: Бакалавр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Комп’ютерні системи та мережі
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор _____________ Віра БАБЕНКО
«28» лютого 2025 року
ЗАВДАННЯ
на кваліфікаційну роботу бакалавра студенту
Орлу Владиславу Миколайовичу
(прізвище, ім‘я, по батькові)
1. Тема роботи: Платформа для громадського опитування та аналізу даних із
візуалізації результатів
Керівник роботи: к.т.н., доцент Сисоєнко Світлана Володимирівна
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «25» лютого 2025 р. № 53/03-03
2. Строк подання студентом роботи:
3. Вихідні дані до роботи:
Громадське опитування, вебплатформа, форми, iframe, безпека, аналіз даних, візуалізація, email
розсилка, SMS розсилка, коротке посилання
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
1. Аналіз предметної області та постановка задачі
2. Вибір технологій та інструментальних засобів
3. Розробка платформи для громадського опитування та аналізу даних із візуалізації результатів
4. Захист платформи для громадського опитування та аналізу даних із візуалізації результатів
Висновки
Додатки
Список використаних джерел
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
Додаток А Специфікація
Додаток Б Текст програм
Додаток В Інструкція користувача
6. Консультанти розділів роботи:
Розділ Прізвище, ініціали Підпис, дата
консультанта завдання видав завдання прийняв
7. Дата видачі завдання: 28 лютого 2025 року
КАЛЕНДАРНИЙ ПЛАН
Термін
№ з/п Назва етапів роботи виконання Примітка
етапів роботи
1 Збір матеріалу 01.03 – 14.03 виконано
2 Обробка матеріалу 15.03 – 20.03 виконано
3 Обґрунтування актуальності виконання досліджень 21.03 - 25.03 виконано
4 Оцінка стану проблеми, виокремлення дослідницьких виконано
задач, постановка задачі дослідження 26.03 – 01.04
5 Викладення сутності і результатів дослідження 03.04 - 08.04 виконано
6 Практичне застосування результатів дослідження 09.04 - 27.04 виконано
7 Оформлення результатів в пояснювальну записку 28.04 - 02.05 виконано
8 Подання роботи на відгук та рецензування 15.05 - 20.05 виконано
Студент ___________________________ Владислав ОРЕЛ
Керівник роботи ___________________________ Світлана СИСОЄНКО
АНОТАЦІЯ
Метою виконання даної кваліфікаційної роботи на здобуття освітнього
ступеня «бакалавр» є розробка вебплатформи для створення, поширення та
автоматизованого аналізу громадських опитувань із візуалізацією результатів.
Загальний обсяг роботи становить 80 сторінок. У роботі 13 рисунків. Для
виконання роботи використано 25 літературних джерел.
Головне завдання це створити функціональну вебплатформу для
проведення громадських опитувань, яка забезпечує просте створення форм,
захист від повторного голосування, автоматичну обробку результатів та наочну
візуалізацію зібраних даних.
Стислий опис розділів кваліфікаційної роботи бакалавра складається з
аналізу предметної області та постановки задачі; вибору технологій та
інструментальних засобів; розробкаплатформидля громадського опитування та
аналізу даних із візуалізацією результатів.
Ключові слова: ГРОМАДСЬКЕ ОПИТУВАННЯ, ВЕБПЛАТФОРМА,
ФОРМИ, IFRAME, БЕЗПЕКА, АНАЛІЗ ДАНИХ, ВІЗУАЛІЗАЦІЯ, EMAIL
РОЗСИЛКА, SMS РОЗСИЛКА, КОРОТКЕ ПОСИЛАННЯ
ANOTATION
The purpose of this qualification work for the degree of Bachelor is to develop
a web platform for the creation, distribution and automated analysis of public surveys
with visualization of results.
The total volume of the work is 80 pages. The work contains 13 figures. 25
literary sources were used to perform the work.
The main task is to create a functional web platform for conducting public
surveys, which provides simple creation of forms, protection against repeated voting,
automatic processing of results and visual visualization of the collected data.
A brief description of the sections of the bachelor's qualification work consists
of analysis of the subject area and problem statement; selection of technologies and
tools; development of a platform for public surveys and data analysis with
visualization of results.
Key words: PUBLIC SURVEY, WEB PLATFORM, FORMS, IFRAME,
SECURITY, DATA ANALYSIS, VISUALIZATION, EMAILMAILING, SMS
MAILING, SHORT LINK
ЗМІСТ
ВСТУП……………………………………………………………………………..4
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ…….…..7
1.1 Аналіз існуючих платформ………………………...………….……....7
1.2 Постановка задачі………...………………………………………...…12
1.3 Висновок до розділу…… ………………………………….…………17
2 ВИБІР ТЕХНОЛОГІЙ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ………......19
2.1 Огляд існуючих технологій……………………………….………….19
2.2 Обґрунтування вибору…..………………………………………...….27
2.3 Висновок до розділу ……………………………………….…………33
3 РОЗРОБКАПЛАТФОРМИ ДЛЯ ГРОМАДСЬКОГО ОПИТУВАННЯ ТА
АНАЛІЗУ ДАНИХ ІЗ ВІЗУАЛІЗАЦІЄЮ РЕЗУЛЬТАТІВ……………..…34
3.1 Структура платформи……………...…………………...………..…...34
3.2 Опис функцій платформи...…………………………………………..39
3.3 Технічні вимоги для роботи з платформою………………………....44
3.4 Оцінка ефективності………………………………………………….47
3.5 Висновки до розділу………………………………………………….49
4 ЗАХИСТ ПЛАТФОРМИДЛЯ ГРОМАДСЬКОГО ОПИТУВАННЯ ТА З
АНАЛІЗУ ДАНИХ ІЗ ВІЗУАЛІЗАЦІЄЮ РЕЗУЛЬТАТІВ…..………..…..51
4.1 Огляд існуючих рішень …………………..………….………………51
4.2 Реалізація захисту даних користувачів……………………….….….57
4.3 Висновки до розділу…………..…………………………….…….….61
ВИСНОВКИ……………………………………………………………………...62
ЧДТУ.252182.008 ПЗ
Змн. Арк. № докум. Підпис Дата
РКоазробив Орел В.М. Платформа для Літ. Лист Листів
фКердівник Сисоєнко
ра громадського опитування 2 80
Рецензент ЗСа.жВо. ма В.
К та аналізу даних із
Н.Контроль Гресько С.О. Кафедра ІБ та КІ
візуалізації результатів
ЗКатвердив Бабенко В.Г. гр. КМ-2105
- Пояснювальна записка
06
ДОДАТКИ:
А – 482.ЧДТУ.52182.01 Розробка платформи для громадського
опитування та аналізу даних із візуалізацією результатів
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ……………………………...………..79
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 3
а
ВСТУП
Актуальність теми. У сучасному цифровому суспільстві збір і аналіз
думок громадськості, клієнтів або внутрішніх стейкхолдерів відіграє важливу
роль у процесах ухвалення рішень в державному управлінні, бізнесі, освіті та
інших сферах. Традиційні методи проведення опитувань (паперові анкети,
усні опитування) є малоефективними в умовах швидкого темпу життя,
великої кількості респондентів і необхідності оперативної обробки
результатів.
Зі зростанням значення цифрових технологій виникає потреба в
гнучких, безпечних та автоматизованих платформах для організації
опитувань. Водночас користувачі очікують простоти у створенні форм,
можливості швидкої інтеграції з іншими веб ресурсами, захисту від
зловживань, зручної аналітики та візуалізації результатів.
Запропонована платформа відповідає цим вимогам, оскільки дозволяє
створювати адаптивні форми опитування, що можуть бути інтегровані в
сторонні веб сайти через iframe. Система забезпечує високий рівень захисту
від повторного надсилання відповідей, що підвищує достовірність отриманих
даних.
Також платформа реалізує механізм автоматичної генерації та розсилки
результатів опитування всім зацікавленим сторонам. Підтримка масового
розсилання форм через електронну пошту та SMS сприяє охопленню
широкої аудиторії.
Крім того, система надає зручні короткі URL для спрощення доступу
до опитування та включає механізм аналізу і візуалізації зібраних даних у
реальному часі. Це робить платформу потужним інструментом для
оперативного прийняття рішень на основі достовірних і репрезентативних
даних.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 4
а
Таким чином, розробка такої платформи є актуальною відповіддю на
потреби суспільства у швидкому, доступному та надійному інструменті для
збору та аналізу інформації. Це особливо важливо в умовах зростання попиту
на цифрову трансформацію організацій та підвищення прозорості
управлінських рішень.
Метою кваліфікаційної роботи є розробка веб платформи для
створення, поширення та автоматизованого аналізу громадських опитувань із
візуалізацією результатів, яка забезпечує зручність використання, високу
надійність, безпеку даних та широкі можливості інтеграції з іншими
цифровими сервісами.
Для досягнення сформульованої мети необхідно вирішити такі задачі:
1. Проаналізувати існуючі онлайн-платформи для опитувань.
2. Розробити архітектуру системи та інтерфейс генерації форм.
3. Реалізувати вставку форм через iframe.
4. Забезпечити багаторівневий захист від повторного голосування.
5. Розробити механізм автоматичної обробки та розсилки результатів.
6. Інтегрувати масову розсилку форм через email і SMS.
7. Додати генерацію коротких URL для форм.
8. Створити модуль візуалізації результатів.
9. Провести тестування платформи.
Книга “Survey Methodology”Robert M. Groves, Floyd J. Fowler Jr., Mick
P. Couper, James M. Lepkowski розкриває гарно тему, це фундаментальна
праця з теорії та практики створення опитувань. У ній докладно описано, як
правильно формувати питання, будувати вибірку, уникати упередженості,
забезпечити якість даних, захищати відповіді респондентів і правильно
інтерпретувати результати. Також розглядається вплив цифрових технологій
на процеси опитування — включно з веб формами, онлайн-збірниками даних
та автоматизованим аналізом.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 5
а
Одержані в кваліфікаційній роботі результати мають практичне
значення та полягають в розробці універсальної платформи для проведення
громадських опитувань, яка дозволяє автоматизувати процес збору та аналізу
даних із подальшою візуалізацією результатів.
Реалізація такої системи дає змогу підвищити ефективність взаємодії
між організаціями та їх аудиторією, оперативно отримувати зворотний
зв’язок, покращувати якість прийняття рішень на основі достовірних даних.
Платформа може застосовуватись у державному секторі, бізнесі,
громадських ініціативах, маркетингових дослідженнях та освітньому
середовищі, що свідчить про її широкі можливості впровадження в реальну
практику.
Кваліфікаційна робота складається з 4-х розділів, в яких подається
інформація про:
1. Обрану предметну область дослідження та про постановку проблема;
2. Огляд існуючих технологій, за допомогою яких можна реалізувати
подібну платформу та обґрунтування вибору тієї чи іншої технології;
3. Реалізацію платформи: відображення структури , опис функцій кожної
частини, технічні вимоги, а також практична оцінка ефективності
роботи;
4. Розробка захисту інформації для платформи.
Використана література, під час написання кваліфікаційної роботи,
досить добре розкриває основні методики та підходи для розробки подібних
автоматизованих систем.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 6
а
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ
1.1 Аналіз існуючих платформ
Зворотний зв’язок від громадян є основою прозорого й ефективного
управління в демократичному суспільстві. Він дає змогу органам влади або
місцевого самоврядування краще розуміти потреби населення, реагувати на
актуальні виклики та приймати обґрунтовані рішення, засновані на реальних
даних, а не на припущеннях. Участь громадян у формуванні рішень підвищує
їхню довіру до влади й формує активну громадянську позицію.
Оперативний зворотний зв’язок допомагає вчасно виявляти проблеми у
міському середовищі — такі як поганий стан доріг, неякісні послуги,
екологічні порушення чи недоступність інфраструктури. Влада, яка чує
людей, має змогу ефективніше розподіляти ресурси, вирішувати пріоритетні
завдання та запобігати соціальному напруженню.
Залучення громадян до обговорень і голосувань сприяє розвитку
демократії на практиці, а не лише на папері. Люди, чия думка враховується,
відчувають свою участь у розвитку міста чи країни. Це формує соціальну
згуртованість, спільну відповідальність і підвищує якість життя.
Сучасні цифрові інструменти, зокрема онлайн-опитування, значно
спрощують процес збирання зворотного зв’язку. Вони дозволяють швидко
охопити велику аудиторію, автоматизувати обробку результатів, зберігати
анонімність респондентів та оперативно реагувати на зібрані дані. Це знижує
витрати на дослідження, але при цьому підвищує їхню якість.
У підсумку, регулярний зворотний зв’язок із громадянами — це не
просто форма комунікації. Це інструмент побудови ефективного, відкритого і
відповідального врядування, у якому люди відіграють активну роль у
формуванні свого майбутнього.
Google Forms — це безкоштовний онлайн-сервіс від компанії Google,
який дозволяє створювати опитувальники, тести, анкети та форми збору
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 7
а
інформації. Його інтеграція з іншими сервісами Google, такими як Google
Sheets та Gmail, робить цей інструмент популярним серед користувачів у
сфері освіти, досліджень, бізнесу та громадських ініціатив, приклад такої
форми зображено на рисунку 1.1.
Рисунок 1.1 – Google Forms
Простий у використанні, доступний через браузер, він не потребує
спеціальних знань або встановлення додаткового програмного забезпечення.
Google Forms є повністю безкоштовним для всіх користувачів з
обліковим записом Google [1]. Це дозволяє створювати необмежену кількість
форм і відповідей без плати за підписку, що особливо корисно для освітніх
установ, студентів та невеликих організацій.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 8
а
Інтерфейс платформи надзвичайно простий та інтуїтивний. Створити
форму можна всього за кілька хвилин, навіть не маючи досвіду у веброзробці
або дизайні.
Усі відповіді автоматично зберігаються у Google Sheets, що полегшує
подальший аналіз даних та дає змогу будувати графіки або експортувати
інформацію для обробки в інших інструментах.
Форми тісно інтегровані з Gmail, Google Drive та Google Sheets, що
дозволяє легко надсилати опитування, зберігати результати та ділитися
доступом до форм і даних.
Google Forms підтримує створення тестів з автоматичним підрахунком
балів, що дуже зручно для вчителів та викладачів.
Форми добре працюють на мобільних пристроях, що дозволяє
користувачам відповідати з будь-якого пристрою без втрати зручності.
Незважаючи на простоту, Google Forms має обмежені можливості щодо
зміни дизайну — кольорів, шрифтів, макету. Це не підходить для брендових
або візуально виразних проєктів.Платформа підтримує лише базову логіку
переходу між питаннями. Якщо потрібна складна логіка, умовна фільтрація
або динамічні сценарії — Google Forms не дає таких можливостей.
Google Forms дозволяє обмежити кількість відповідей одним акаунтом,
але не може надійно запобігти повторному голосуванню, якщо користувачі
змінюють пристрої або використовують приватні вікна браузера.
Хоча відповіді можна переглядати у вигляді простих діаграм,
інструменти візуалізації в самій формі обмежені. Для повноцінного аналізу
необхідне перенесення даних в Google Sheets або сторонні сервіси [2].
Google Forms працює лише онлайн. Немає офіційного способу
створення або заповнення форм без підключення до Інтернету.
На відміну від спеціалізованих платформ для опитувань, Google Forms
не має вбудованої функції масової розсилки форм через SMS чи email — це
потрібно реалізовувати вручну або через зовнішні інструменти.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 9
а
У сучасному інформаційному суспільстві потреба в отриманні думки
громадськості або окремих користувачів постійно зростає. Органи влади,
бізнес, освітні заклади й громадські ініціативи все частіше використовують
онлайн-опитування як ефективний інструмент для збирання зворотного
зв’язку. У цьому контексті особливо цінним є універсальне рішення, яке
однаково добре працює як для масових опитувань, так і для одиничних —
персоналізованих або приватних.
Масові опитування вимагають масштабованості, стабільної роботи під
високим навантаженням, захисту від повторних відповідей, функцій масової
розсилки (через email або SMS), а також автоматичного аналізу великих
обсягів даних. Універсальна система повинна забезпечувати ці функції,
дозволяючи легко створювати тисячі унікальних запрошень і безпечно
обробляти велику кількість результатів. Це дозволяє ефективно
використовувати платформу для соціологічних досліджень, публічних
голосувань чи опитувань мешканців міста.
Водночас одиночні опитування — наприклад, збір індивідуального
зворотного зв’язку від працівника, студента чи конкретного клієнта —
потребують гнучкості, зручного персоналізованого інтерфейсу, а іноді й
конфіденційності. Універсальне рішення повинне адаптуватись і до таких
випадків, дозволяючи створювати окремі, приватні форми, які можна
налаштувати під конкретну ситуацію — з унікальним посиланням, особистим
зверненням або обмеженим доступом.
Ключова перевага універсального підходу — скорочення витрат часу
та ресурсів. Замість використання різних платформ для різних завдань,
достатньо мати одну систему, яка може масштабуватись або звужуватись у
залежності від контексту. Це зручно для адміністраторів, аналітиків та всіх
учасників процесу. Також це сприяє уніфікації даних, їх простішому аналізу
та зберіганню в єдиному форматі
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 10
а
Окрім того, універсальна платформа забезпечує більшу безпеку та
контроль, оскільки всі дані зберігаються централізовано, а не розпорошено в
різних системах. Це особливо важливо, коли мова йде про опитування,
пов’язані з персональними або чутливими даними.
Таким чином, універсальне рішення для проведення як масових, так і
одиничних опитувань є стратегічно важливим інструментом для будь-якої
сучасної організації. Воно забезпечує гнучкість, ефективність, зручність та
надійність у роботі з громадською думкою чи індивідуальними відгуками.
Можливість вбудовувати форму на вебсайт — одна з ключових
функцій сучасних платформ для збору даних, яка істотно розширює їхнє
практичне застосування [3]. Це дозволяє інтегрувати опитування, анкети або
інші форми збирання зворотного зв’язку безпосередньо в середовище, де вже
перебувають користувачі. Таким чином, не потрібно перенаправляти людину
на зовнішній ресурс, що мінімізує втрату уваги та підвищує ймовірність
заповнення форми.
Однією з головних переваг вбудованої форми є зручність для
користувача. Люди охочіше взаємодіють із формами, які є частиною
знайомого вебсайту, ніж з тими, що ведуть на інші платформи. Це створює
ефект безшовної інтеграції — користувач не відчуває, що його «переносять»
в інше середовище, і зберігає довіру до джерела, особливо якщо це офіційний
сайт установи, компанії або міста.
Інтеграція форми у вебсайт також важлива з погляду брендингу та
візуальної узгодженості. Адміністратор може налаштувати форму відповідно
до дизайну сайту — кольори, шрифти, логотипи — що створює єдиний
візуальний стиль. Це підвищує професійність і сприйняття організації як
такої, що турбується про свій імідж і зручність користувача.
Крім того, вбудовані форми підвищують охоплення. Наприклад, якщо
організація розміщує форму прямо на сторінці новини, блогу чи в розділі
«Зворотний зв’язок», більше користувачів побачать її саме під час перегляду
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 11
а
основного контенту. Це суттєво збільшує кількість заповнених форм і знижує
відтік користувачів.
Ще один важливий аспект — аналітика та SEO. Форми, вбудовані через
iframe або безпосередньо у код сайту, можуть бути частиною загального
аналітичного середовища. Це дозволяє точно відслідковувати, з яких
сторінок люди переходять до форми, де вони зупиняються, і як поводяться на
сайті в цілому. Також це дає змогу будувати A/B тести з різними варіантами
вбудованих форм.
З технічної точки зору, можливість вбудовування форми означає
гнучкість у використанні. Розробники та адміністратори сайтів можуть легко
адаптувати форму до будь-якого контексту — від реєстрації на подію до
збору ідей від мешканців міста. А у випадку змін — оновлення форми
відображається миттєво на всіх сторінках, де вона використовується [4].
Можливість додавання форм на вебсайти — це не просто зручна опція,
а необхідний функціонал, що сприяє підвищенню ефективності збирання
даних, розширенню аудиторії, покращенню взаємодії з користувачем та
загальному підвищенню цифрової інтегрованості організації.
1.2 Постановка задачі
Форми для масового опитування громадськості мають бути
максимально простими для сприйняття і заповнення. В умовах, коли
респонденти можуть мати різний вік, освітній рівень, цифрові навички та
доступ до інтернету, складна форма відразу стає бар’єром. Якщо людині
незрозуміло, як відповісти, або якщо запитання надто заплутані — вона
просто закриє сторінку. Простий і логічний інтерфейс, короткі
формулювання та мінімальна кількість кроків — це те, що дозволяє залучити
більше людей до участі в опитуванні.
Універсальність форми — ще один критично важливий аспект. Масові
опитування охоплюють широкі категорії населення, тому форма повинна
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 12
а
бути адаптована до будь-якого пристрою (мобільного телефона, планшета,
комп’ютера) і працювати коректно на різних операційних системах та
браузерах. Вона також має враховувати потреби людей з обмеженими
можливостями — через доступність до читання з екрану, використання
клавіатури, контрастність та масштабування елементів.
Простота форми не означає її примітивність. Навпаки, добре
продуманий дизайн може містити кілька типів запитань (вибір одного
варіанта, шкала, відкриті поля), але в компактному, структурованому вигляді.
Універсальна форма має бути гнучкою — щоб її можна було легко
адаптувати до різних тематик опитувань без потреби в складному
програмуванні.
Крім того, простота та універсальність допомагають підвищити довіру
громадян. Люди більш охоче беруть участь в опитуваннях, коли бачать, що
все зроблено зрозуміло, прозоро та без зайвих складнощів. Якщо форма
виглядає надійно й не вимагає зайвих дій, людина більш схильна ділитися
своєю думкою.
Прості й універсальні форми — це не лише зручність для користувача,
а й ефективний інструмент для організаторів. Вони забезпечують високий
рівень залученості, зменшують кількість помилок у заповненні та роблять
результати більш репрезентативними. Це базовий стандарт, який має бути
дотриманий у будь-якому масштабному опитуванні громадської думки.
У процесі масового опитування громадськості важливо не лише
створити зручну форму, але й забезпечити її ефективну доставку до цільової
аудиторії. Використання різних каналів доставки — таких як email, SMS або
навіть традиційна поштова розсилка — значно підвищує шанси охопити
якомога більше респондентів із різними цифровими звичками та доступом до
технологій.
Email-розсилка є одним із найпоширеніших і зручних способів
надсилання форм. Вона дозволяє персоналізувати повідомлення,
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 13
а
відслідковувати відкриття листів і автоматично підставляти унікальні
посилання на форму. Це зручно для працюючого населення, організацій та
студентів, які регулярно користуються електронною поштою. Крім того,
email забезпечує можливість додати детальний опис опитування, інструкції,
логотипи або інші елементи брендування.
SMS-повідомлення є дуже ефективними для швидкого охоплення
великої кількості людей, особливо якщо йдеться про короткі терміни.
Завдяки тому, що майже кожен має мобільний телефон, SMS дозволяють
оперативно донести посилання на форму навіть до тих, хто не користується
email або не має стабільного доступу до інтернету. Стислість і
прямолінійність SMS-повідомлень дає змогу зацікавити респондента та
швидко спонукати його перейти за посиланням [5].
Традиційна поштова доставка також залишається актуальним
способом, особливо у випадках, коли потрібно охопити літніх людей,
мешканців сільської місцевості або тих, хто не користується цифровими
засобами зв’язку. У такому разі анкета може бути надрукована на папері, а
відповіді — надіслані поштою або введені в електронну систему пізніше
операторами. Цей канал забезпечує доступність опитування для максимально
широкої аудиторії та підкреслює повагу до кожної соціальної групи.
Можливість доставки форми різними каналами дає гнучкість і
контроль організатору. В залежності від цільової аудиторії, бюджету або
термінів — можна комбінувати ці методи, використовуючи, наприклад, email
для молоді, SMS для активних користувачів мобільного зв’язку, а пошту —
для пенсіонерів. Це дозволяє забезпечити рівні можливості участі в
опитуванні для всіх верств населення.
Мультиканальна доставка форм — це важливий інструмент для
досягнення інклюзивності, підвищення охоплення та загальної ефективності
дослідження. Вона дозволяє зробити опитування доступним і зручним для
кожного громадянина, незалежно від його технічних можливостей та звичок.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 14
а
Коротке посилання на форму — це не просто зручність, а один із
ключових інструментів для підвищення доступності й ефективності будь-
якого опитування. У світі, де увага користувача обмежена, а інформація
споживається швидко, довгі та складні URL-адреси можуть відштовхнути
людину ще до того, як вона перейде за посиланням [6]. Натомість коротке,
зрозуміле посилання виглядає охайно, легко читається і викликає більше
довіри.
Короткі посилання особливо важливі в SMS-розсилках, де є обмеження
на кількість символів. В таких випадках кожен символ має значення, і
використання довгого посилання з великою кількістю параметрів просто
непрактичне. Завдяки скороченим URL, можна вкласти основну інформацію
в одне повідомлення без перенавантаження тексту.
У друкованих матеріалах (листівках, афішах, банерах) також важливо
мати коротке посилання. Людина, яка побачила анкету офлайн, повинна мати
змогу легко запам’ятати або вручну ввести адресу в браузер. Коротке
посилання може бути також використане для створення QR-коду, який буде
швидко скануватись і не міститиме зайвих символів, що спрощує друк і
підвищує точність переходів.
З погляду аналітики та маркетингу, скорочені посилання часто
генеруються через сервіси, які дозволяють відстежувати статистику
переходів: скільки людей відкрили посилання, коли, з яких пристроїв тощо.
Це допомагає організаторам краще розуміти аудиторію та оцінювати
ефективність кожного каналу доставки.
Крім того, короткі посилання виглядають більш професійно, особливо
коли опитування поширюється у соцмережах, месенджерах чи на вебсайтах.
Вони не «лякають» користувача довгими рядками з символами й
параметрами, а навпаки — спонукають клікнути, бо виглядають надійно та
продумано.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 15
а
Коротка форма посилання — це не лише про зручність, а про
ефективність комунікації, зростання кількості переходів, ширше охоплення
та кращий користувацький досвід. У сучасній цифровій взаємодії це —
обов’язковий елемент для будь-якої платформи, яка прагне залучити
громадськість до участі.
У сучасному світі, де цифрові технології стали частиною
повсякденного життя, надзвичайно важливо, щоб форма для опитування була
доступна на будь-якому пристрої — смартфоні, планшеті, ноутбуці чи
стаціонарному комп’ютері. Люди взаємодіють із контентом у різних умовах:
вдома, на роботі, в транспорті чи на вулиці. Обмеження доступу лише до
певного типу пристроїв знижує охоплення аудиторії та виключає частину
користувачів з процесу опитування.
Адаптивний дизайн форми — обов’язкова умова сучасного
цифрового продукту. Це означає, що інтерфейс автоматично підлаштовується
під розмір екрана та технічні особливості пристрою, приклад зобрадено на
рисунку 1.2.
Рисунок 1.2 – Адаптивний дизайн
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 16
а
На смартфоні користувач повинен легко бачити всі поля, натискати на
кнопки, вводити текст без масштабування чи прокручування вбік. Якщо
форма виглядає «зламаною» або незручною на маленькому екрані, людина
скоріше за все її просто закриє.
Забезпечення доступу з будь-якого пристрою також сприяє цифровій
рівності. Не всі користувачі мають персональні комп’ютери або планшети —
у багатьох є лише смартфон. Дати можливість пройти опитування з телефону
означає не виключати людей з низьким рівнем технічного забезпечення. Це
особливо важливо у випадку збору громадської думки, де результат має бути
максимально репрезентативним і враховувати голос кожного.
Також важливо враховувати технічну сумісність. Форма повинна
коректно працювати у всіх популярних браузерах (Chrome, Safari, Firefox,
Edge тощо) і не залежати від складних плагінів або встановлення додаткових
додатків [6]. Простота запуску форми у браузері будь-якого пристрою —
запорука того, що користувач не покине її через технічні складнощі.
Можливість користуватися формою на будь-якому пристрої — це не
просто зручність, а фундаментальний принцип інклюзивного, ефективного і
сучасного опитування. Він дозволяє охопити ширшу аудиторію, підвищує
рівень довіри до організатора, зменшує технічні бар’єри і забезпечує
справжню доступність для всіх.
1.3 Висновки до розділу
У сучасному цифровому суспільстві отримання зворотного зв’язку від
громадян є ключовим інструментом для розвитку міської та державної
політики. Надання людям можливості висловлювати свою думку через
доступні, прості та зручні у використанні форми дозволяє приймати більш
обґрунтовані рішення на всіх рівнях управління. Це сприяє прозорості,
підвищує довіру до влади та створює відчуття участі громадян у формуванні
спільного майбутнього. Щоб процес збору думок був ефективним, важливо
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 17
а
забезпечити наявність універсального інструменту, який можна
використовувати як для масових, так і для індивідуальних опитувань, з
можливістю легкої доставки через email, SMS або навіть у паперовому
вигляді.
Технічна реалізація таких форм повинна відповідати вимогам
доступності та зручності. Це означає, що форма має бути простою,
інтуїтивно зрозумілою, доступною з будь-якого пристрою, а також легко
інтегруватися в інші цифрові платформи, зокрема вебсайти. Скорочене
посилання на анкету додатково спрощує розповсюдження та підвищує
охоплення. Стандартні інструменти, такі як Google Forms, мають свої
переваги, але й обмеження — тому актуальним є створення спеціалізованої
платформи, яка враховує ці нюанси та забезпечує ширшу гнучкість і
контроль. Такий підхід дозволяє зробити опитування дійсно масовими,
ефективними й інклюзивними.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 18
а
2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
2.1 Огляд існуючих технологій
У сучасному цифровому середовищі найбільш ефективним способом
реалізації опитувальної форми є використання вебтехнологій, зокрема
HTML, CSS і JavaScript. Ці технології є основою фронтенд-розробки та
забезпечують сумісність із більшістю браузерів і пристроїв. Завдяки цьому
форма може бути доступною будь-кому, хто має підключення до Інтернету,
без потреби встановлювати додаткове програмне забезпечення.
HTML (HyperText Markup Language) відповідає за структуру форми:
розміщення полів, кнопок, заголовків та інших елементів. Саме завдяки
HTML користувач бачить логічно організовану структуру анкети. Він
забезпечує семантичну побудову документу, що також покращує доступність
для людей з інвалідністю та роботу пошукових систем [7].
CSS (Cascading Style Sheets) використовується для візуального
оформлення форми: кольори, шрифти, розміри, відступи та адаптивність під
різні екрани. З його допомогою форму можна зробити естетично
привабливою та зручною у використанні як на великому моніторі, так і на
екрані смартфона. Гарний дизайн підвищує рівень довіри користувачів та
спонукає їх пройти опитування до кінця.
JavaScript відіграє ключову роль у забезпеченні динамічності та
інтерактивності форми. Саме завдяки JavaScript можна реалізувати перевірку
правильності введення даних, динамічне відображення питань залежно від
попередніх відповідей, надсилання форми без перезавантаження сторінки, а
також інтеграцію з іншими службами (наприклад, API для надсилання SMS
чи email) [8]. Це робить форму «розумною» та здатною адаптуватися під
поведінку користувача.
Крім того, використання цих трьох базових технологій дозволяє легко
вбудовувати форму у будь-який вебсайт через iframe або інші методи. Це
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 19
а
створює можливість для гнучкої інтеграції опитування у вже існуючі
платформи, портали, блоги або системи управління контентом.
Таким чином, розробка форми на основі HTML, CSS і JavaScript — це
логічний, гнучкий і технічно обґрунтований підхід, який забезпечує
максимальну доступність, адаптивність і функціональність у рамках
сучасного вебсередовища [9].
Одним із ключових аспектів при створенні онлайн-форм є забезпечення
безпечної та стабільної передачі даних між клієнтською частиною (браузером
користувача) та сервером. Найбільш поширеним і загальноприйнятим
способом здійснення такої комунікації є використання HTTP або HTTPS
протоколу. Це фундаментальні вебпротоколи, які забезпечують обмін
інформацією між клієнтом і сервером у глобальній мережі.
HTTP (HyperText Transfer Protocol) дозволяє передавати дані у
вигляді запитів і відповідей. Він простий у реалізації та добре підтримується
практично всіма браузерами, фреймворками й інструментами розробки.
Принцип роботи зобрадено на рисунку 2.1.
Рисунок 2.1 – HTTP (HyperText Transfer Protocol)
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 20
а
Однак, незважаючи на його поширеність, звичайний HTTP не
забезпечує шифрування даних, що робить його менш захищеним для
передачі особистої чи конфіденційної інформації.
Тому найкращим вибором для сучасних форм є HTTPS (HTTP Secure)
— це розширення протоколу HTTP з використанням шифрування за
допомогою TLS (Transport Layer Security) [10].Принцип роботи зобрадено на
рисунку 2.2.
Рисунок 2.2 – HTTPS (HTTP Secure)
Передача даних через HTTPS гарантує, що інформація між клієнтом і
сервером передається у зашифрованому вигляді, тобто її не можуть
перехопити або змінити треті сторони. Це особливо важливо у випадку
опитувань, де користувачі можуть вводити чутливу або особисту
інформацію.
Також підтримка передачі даних через HTTPS або інші захищені
протоколи (наприклад, WebSocket через WSS, якщо потрібно передавати дані
в режимі реального часу) забезпечує довіру користувачів до платформи.
Браузери навіть можуть блокувати передачу форм через незахищені HTTP-
з’єднання або видавати попередження, що знижує кількість відповідей і
шкодить репутації сервісу.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 21
а
Крім безпеки, використання HTTP(S) дозволяє інтегрувати форму з API
сторонніх сервісів, базами даних, системами аналітики або автоматичної
обробки результатів [11]. Це розширює можливості платформи, роблячи її
більш гнучкою, функціональною та придатною до масштабування.
Таким чином, використання протоколів HTTP(S) або їх аналогів — це
технічно виправданий, безпечний та ефективний підхід до організації
передачі даних з форм опитування, що відповідає сучасним стандартам
веброзробки та вимогам до захисту інформації.
Розробка ефективної онлайн-форми вимагає не лише створення
інтерфейсу користувача, але й надійної бекенд-частини (серверної логіки),
яка обробляє запити, зберігає дані, надсилає повідомлення та забезпечує
взаємодію з базами даних. Для цього можна використати різні програмні
платформи, серед яких найпоширенішими є Node.js, PHP, Java, C# та Python.
Node.js — це сучасне серверне середовище, що базується на JavaScript.
Воно особливо добре підходить для створення швидких, масштабованих
вебзастосунків, які потребують роботи в режимі реального часу (наприклад,
коли потрібне миттєве оновлення результатів опитування) [12]. Node.js має
активну спільноту, велику кількість модулів і зручну інтеграцію з
фронтендом, особливо якщо він теж написаний на JavaScript.
PHP — одна з найстаріших та найпоширеніших мов для веброзробки.
Вона має простий синтаксис, величезну базу готових рішень і ідеально
підходить для проєктів, що мають обмежений бюджет або створюються
швидко. PHP добре поєднується з MySQL і популярними CMS, такими як
WordPress. Незважаючи на свою вік, PHP залишається стабільним і широко
підтримуваним варіантом.
Java — це потужна, об’єктно-орієнтована мова, яка використовується у
великих, масштабованих системах, зокрема в урядових та корпоративних
платформах. Java забезпечує високу продуктивність, безпеку та стабільність,
що робить її доцільною для використання у критично важливих системах
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 22
а
громадського опитування. Крім того, вона має розвинені фреймворки, як-от
Spring, які значно спрощують розробку.
C# у поєднанні з платформою .NET є чудовим варіантом для створення
бекенду, особливо у середовищах, орієнтованих на продукти Microsoft. C#
дозволяє швидко будувати безпечні, надійні й добре структуровані
вебзастосунки [13]. Його зручно інтегрувати з базами даних SQL Server, а
також з корпоративною інфраструктурою.
Python — це універсальна мова з чистим і лаконічним синтаксисом,
яка ідеально підходить для швидкої розробки. У сфері веброзробки Python
часто використовується з фреймворками Django або Flask. Його особливо
цінують за можливості інтеграції з аналітичними інструментами, що робить
Python чудовим варіантом для проєктів, де важлива подальша обробка та
візуалізація зібраних даних.
Кожна з цих мов і платформ має свої переваги й сценарії застосування,
тому вибір технології для бекенду залежить від вимог до продуктивності,
швидкості розробки, безпеки, масштабованості та наявності спеціалістів.
Незалежно від вибору, усі згадані технології дозволяють реалізувати надійне,
функціональне та сучасне серверне рішення для системи опитувань.
Збереження результатів опитування в базі даних є критично важливим
етапом у створенні ефективної платформи для збору громадської думки. Це
забезпечує надійність, доступність, цілісність і зручність обробки отриманої
інформації. У випадках масового опитування або довготривалого збору
відповідей неможливо зберігати дані в тимчасовій памʼяті чи у вигляді
звичайних файлів — це неефективно, нестабільно і небезпечно.
База даних дозволяє структуровано зберігати відповіді кожного
користувача, включно з метаданими: часом відправлення, способом доставки
форми, ID сесії, тощо. Це спрощує подальшу аналітику, фільтрацію,
сортування та візуалізацію результатів. Крім того, дані в базі можна легко
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 23
а
обробляти за допомогою статистичних алгоритмів, вивантажувати у звіти або
експортувати для подальших досліджень.
MySQL — одна з найпопулярніших реляційних СУБД у світі. Вона є
відкритою, швидкою, надійною і має велику спільноту. MySQL добре
інтегрується з PHP, Python, Node.js та іншими вебтехнологіями, що робить її
оптимальним вибором для більшості вебплатформ. Архітектура зображена на
рисунку 2.3.
Рисунок 2.3 – Архітектура MySQL
Структуровані таблиці, реляційні зв’язки та потужні можливості SQL-
запитів дозволяють ефективно зберігати опитування, відповіді, користувачів
та інші дані.
PostgreSQL — ще одна потужна реляційна база даних з відкритим
кодом. Вона відома своєю гнучкістю, підтримкою складних запитів,
розширюваністю та високим рівнем безпеки. Архітектура зображена на
рисунку 2.4.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 24
а
Рисунок 2.4 – Архітектура PostgreSQL
PostgreSQL часто використовують у великих державних та наукових
проєктах завдяки її стабільності та відповідності міжнародним стандартам.
SQLite — це легка, вбудована база даних, яка зберігає всі дані у
вигляді одного файлу. Архітектура зображена на рисунку 2.5.
Рисунок 2.5 – Архітектура SQLite
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 25
а
Вона не потребує окремого сервера для роботи, тому ідеально
підходить для невеликих проєктів або автономних систем, наприклад,
мобільних додатків або локальних офлайн-опитувань. Проте для масштабних
онлайн-опитувань SQLite не завжди є оптимальним варіантом.
MongoDB — нереляційна база даних, яка працює за принципом
зберігання даних у форматі JSON-подібних документів [14]. Архітектура
зображена на рисунку 2.6.
Рисунок 2.6 – Архітектура MongoDB
MongoDB добре підходить для опитувань зі змінною структурою
відповідей або динамічними формами. Вона також забезпечує високу
продуктивність при роботі з великими обʼємами даних.
Microsoft SQL Server — потужна корпоративна база даних від
Microsoft, яка використовується у багатьох великих компаніях. Архітектура
зображена на рисунку 2.7.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 26
а
Рисунок 2.7 – Архітектура Microsoft SQL Server
Вона підтримує складні бізнес-логіки, інтегрується з .NET-
середовищем і має зручні інструменти для створення звітів, що робить її
доцільною у проєктах із високими вимогами до інтеграції та стабільності.
Використання сучасних СУБД дозволяє надійно зберігати результати
опитувань, обробляти великі обсяги інформації, будувати гнучку аналітику
та забезпечувати конфіденційність даних. Обираючи конкретну базу даних,
розробник має орієнтуватися на масштаб проєкту, тип інформації, швидкість
доступу до даних та вимоги до безпеки.
2.2 Обґрунтування вибору
Розробка платформи для громадського опитування та аналізу даних із
візуалізацією результатів вимагає ретельного вибору технологій як для
реалізації механізму самого опитування, так і для створення вебпорталу, на
якому користувачі зможуть переглядати, аналізувати та перевіряти
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 27
а
результати опитувань. Необхідно врахувати інструменти для збору та
зберігання даних, засоби обробки та аналізу інформації, а також бібліотеки
або фреймворки для візуалізації результатів у зручному та зрозумілому
вигляді.
Оскільки основною метою платформи є забезпечення широкого
доступу до громадського опитування, важливо, щоб опитувальник коректно
працював на різних пристроях, зокрема на настільних комп’ютерах,
ноутбуках, планшетах і мобільних телефонах. Сьогодні користувачі дедалі
частіше користуються мобільними пристроями для взаємодії з онлайн-
сервісами, тому забезпечення кросплатформенності є одним із ключових
технічних пріоритетів.
Доцільно обрати веб технології для реалізації інтерфейсу
опитувальника. Вебдодатки, на відміну від нативних мобільних чи
десктопних програм, не потребують встановлення та працюють
безпосередньо у браузері. Завдяки сучасним фреймворкам (таким як React,
Vue.js або Angular) та технологіям адаптивної верстки (наприклад, CSS
Flexbox, Grid, медіазапити), можна створити динамічний і зручний у
використанні інтерфейс, який автоматично підлаштовується під розміри
екрана [15].
Окрім цього, використання вебтехнологій спрощує оновлення
платформи та внесення змін, оскільки користувачам не потрібно
завантажувати нові версії додатку — всі оновлення доступні миттєво через
вебінтерфейс. Такий підхід дозволяє суттєво підвищити ефективність
розробки, підтримки та масштабування платформи, а також забезпечити
високу доступність для користувачів із різними технічними можливостями.
Опитувальник може бути інтегрований у вже існуючі вебсайти, що
дозволяє значно розширити охоплення аудиторії без потреби у створенні
окремого вебресурсу для кожного випадку. Такий підхід є особливо зручним
для органів місцевого самоврядування, освітніх закладів, медіа або інших
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 28
а
партнерських платформ, які хочуть швидко розмістити форму опитування на
своєму сайті.
Для реалізації цієї інтеграції можна використати кілька технічних
підходів. Найпростіший з них — це використання елемента <iframe>, який
дозволяє вбудувати опитувальник як окрему сторінку всередину іншого
сайту. Це швидкий і універсальний метод, який не вимагає глибокої
інтеграції, оскільки вміст, що завантажується в iframe, функціонує
автономно.
Інший, більш сучасний і гнучкий варіант — це створення форми
опитування у вигляді Web Component. Web Components — це набір
вебстандартів (зокрема Custom Elements, Shadow DOM, HTML Templates), які
дозволяють створювати інкапсульовані, багаторазові компоненти з власною
логікою та стилями [16]. Такий компонент можна легко вставити в будь-який
сайт за допомогою одного HTML-тега, і він буде працювати незалежно від
оточення, не конфліктуючи з іншими елементами сторінки.
Обидва підходи мають свої переваги. Використання iframe — це
швидке рішення без необхідності змінювати існуючий код сайту, тоді як Web
Component дозволяє глибше інтегрувати форму у зовнішній інтерфейс,
зберігаючи при цьому єдиний стиль і взаємодію з іншими елементами
сторінки. Вибір конкретного методу залежить від потреб платформи та вимог
до гнучкості інтеграції.
Використання Web Component, реалізованого за допомогою React,
надає додаткові переваги у контексті інтеграції з іншими сучасними
вебдодатками, зокрема тими, що також побудовані з використанням React.
Завдяки підтримці Web Components у більшості сучасних браузерів, та
можливості React працювати з ними через спеціальні механізми, такий
компонент легко підключається до існуючої інфраструктури без необхідності
дублювання логіки чи стилів.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 29
а
Створення опитувальника у вигляді Web Component на основі React
дозволяє інкапсулювати всю функціональність форми в одному
універсальному елементі, який може бути вбудований у будь-який React-
додаток шляхом простої вставки у JSX, наприклад:
<custom-poll-form></custom-poll-form>
У межах такого компонента можна реалізувати всю логіку взаємодії з
API, валідацію даних, стилізацію та обробку подій. Крім того, це дає змогу
повторно використовувати компонент у різних частинах платформи або на
різних проєктах без потреби переписувати код.
Завдяки гнучкості React можна легко управляти станом компонента,
обробляти дані ззовні через пропси або події, а також інтегрувати його з
глобальним станом додатка (наприклад, Redux або Context API). Таким
чином, Web Component на основі React є не лише універсальним, але й
ефективним рішенням для розробки масштабованого, легко інтегрованого
опитувальника, придатного для багаторазового використання в екосистемі
React-додатків.
Форма опитувальника повинна мати можливість обмінюватися даними
з сервером для збереження відповідей користувачів та подальшого аналізу
зібраної інформації [17]. Для забезпечення безпечної передачі даних
доцільно використовувати захищений протокол HTTPS, який гарантує
шифрування даних під час пересилання, запобігаючи їхньому перехопленню
або підміні сторонніми особами.
Під час заповнення форми та її відправки, вона повинна надсилати на
сервер основні результати опитування — вибрані відповіді, текстові
коментарі, оцінки тощо. Ці дані є основним джерелом інформації для
подальшої обробки та побудови статистики.
Окрім основних відповідей, важливо також передавати додаткові дані,
що стосуються поведінки користувача на формі. Це можуть бути такі
параметри, як:
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 30
а
 час, витрачений на заповнення кожного питання або всієї форми
загалом;
 порядок проходження питань (якщо передбачена довільна навігація);
 повернення до попередніх запитань або зміна вже введених відповідей;
 тип пристрою та браузера, з якого виконується опитування;
 геолокаційна інформація (за згодою користувача);
 технічні метрики, наприклад, розмір екрану або швидкість з’єднання.
Збір таких метаданих дозволяє глибше аналізувати поведінку
респондентів, виявляти закономірності, потенційні проблеми з UX (user
experience), а також забезпечити більш надійну та об’єктивну аналітику.
Отримані дані можуть бути використані для покращення як самої форми, так
і способу проведення опитувань у майбутньому.
Важливо також дотримуватись вимог щодо конфіденційності та
обробки персональних даних, зокрема забезпечити інформування
користувача про збір додаткової інформації та отримання його згоди на це,
відповідно до чинного законодавства (наприклад, GDPR).
У випадку розробки платформи для громадського опитування та збору
аналітичних даних вибір backend-технологій не є критично важливим
фактором для успішної реалізації проєкту. Основні завдання серверної
частини — це прийом, збереження та обробка даних, а також забезпечення
API для взаємодії з клієнтською частиною. Ці функції можуть бути
реалізовані на будь-якій сучасній серверній платформі.
З огляду на це, доцільно орієнтуватися не лише на технічні
характеристики, а й на популярність та поширеність серед розробників.
Вибір поширеної технології спрощує процес розробки, полегшує пошук
фахівців, знижує витрати на підтримку проєкту та відкриває доступ до
великої кількості готових рішень і бібліотек.
Одним із найбільш популярних варіантів є Node.js — JavaScript-
платформа для серверної розробки. Її перевагою є те, що і клієнтська, і
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 31
а
серверна частина можуть бути написані однією мовою — JavaScript, що
значно спрощує розробку, обмін даними між фронтендом і бекендом, а також
дозволяє ефективно використовувати спільні бібліотеки та модулі.
Для збереження структурованих даних, таких як відповіді користувачів
або аналітична інформація, цілком підходить реляційна база даних MySQL.
Вона добре себе зарекомендувала як стабільне, продуктивне та зручне у
використанні рішення для роботи з даними. MySQL легко інтегрується з
Node.js завдяки численним бібліотекам і має широкий набір інструментів для
адміністрування.
Таким чином, комбінація Node.js + MySQL є оптимальним вибором для
такого типу платформи — вона забезпечує достатню продуктивність,
масштабованість та зручність розробки, при цьому залишаючись доступною
як для досвідчених, так і для менш досвідчених команд розробників.
Для повноцінного функціонування платформи адміністратор повинен
мати можливість переглядати результати опитувань, аналізувати зібрані дані,
відстежувати активність користувачів і, за потреби, експортувати
інформацію для подальшого використання. Щоб реалізувати ці функції,
доцільно створити панель адміністратора — окремий інтерфейс, який надає
доступ до аналітичної та керуючої частини системи.
Для розробки такої адмінпанелі логічно використати React, оскільки
він уже може бути використаний на стороні клієнтського інтерфейсу
опитувальника. Це дозволяє значно зменшити кількість різних технологій,
що використовуються в проєкті, і тим самим спростити процес розробки,
тестування та подальшої підтримки.
Використання єдиної технології на фронтенді як для користувачів, так і
для адміністратора спрощує командну роботу та дозволяє ефективніше
використовувати наявні ресурси. Крім того, це зменшує поріг входу для
нових розробників, оскільки їм не доведеться вивчати додаткові фреймворки
для окремих частин системи. Таким чином, React-панель адміністратора —
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 32
а
це практичне, масштабоване та технічно ефективне рішення для керування
платформою опитувань.
2.3 Висновки до розділу
У даному розділі було обґрунтовано доцільність використання веб
технологій для створення платформи громадського опитування. Визначено,
що HTML, CSS і JavaScript є фундаментальними інструментами для
побудови доступного, адаптивного та функціонального інтерфейсу форми,
який коректно працює в більшості браузерів і на різних пристроях. Завдяки
цим технологіям опитувальник може забезпечити привабливий дизайн,
зручність користування та високу інтерактивність.
Протоколи HTTP(S) розглянуто як надійне рішення для безпечної та
стабільної передачі даних між клієнтом і сервером, що є критично важливим
при роботі з особистою інформацією респондентів. HTTPS забезпечує
шифрування даних, підвищує довіру користувачів і відповідає сучасним
стандартам захисту.
Також проаналізовано варіанти серверних технологій — Node.js, PHP,
Java, C#, Python — з точки зору їхньої придатності для реалізації бекенд-
частини платформи. Кожна з них має свої переваги залежно від масштабу,
складності проєкту та доступних ресурсів.
Окрему увагу приділено вибору систем управління базами даних.
MySQL, PostgreSQL, MongoDB, SQLite та Microsoft SQL Server дозволяють
надійно зберігати результати опитувань, забезпечуючи гнучкість,
продуктивність і безпеку обробки інформації.
Таким чином, аналіз показав, що використання сучасних вебтехнологій
у поєднанні з відповідними серверними рішеннями та СУБД є обґрунтованим
і ефективним підходом до реалізації масштабованої, безпечної та зручної
платформи для проведення та аналізу громадських опитувань.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 33
а
3 РОЗРОБКА ПЛАТФОРМИ ДЛЯ ГРОМАДСЬКОГО ОПИТУВАННЯ
ТА АНАЛІЗУ ДАНИХ ІЗ ВІЗУАЛІЗАЦІЄЮ РЕЗУЛЬТАТІВ
3.1 Структура платформи
Розроблена система складається з трьох основних модулів, які тісно
взаємодіють між собою, забезпечуючи повний цикл роботи платформи від
збору даних до їх аналізу та управління опитуваннями. Перший модуль — це
серверне програмне забезпечення, яке відповідає за прийом даних, їх
обробку, збереження у базі даних і забезпечення безпечної комунікації між
клієнтською частиною та адміністративною панеллю. Серверна частина
виконує роль центрального хаба, який координує роботу всієї системи,
обробляє запити, контролює доступ та гарантує цілісність і конфіденційність
інформації.
Другий модуль — клієнтська частина, що безпосередньо взаємодіє з
користувачами платформи. Вона реалізує адаптивний інтерфейс для
проведення опитувань, який забезпечує комфортний доступ з будь-яких
пристроїв — від десктопів до мобільних телефонів. Клієнтська частина не
лише відображає форму опитування, а й може демонструвати узагальнені
результати або аналітичні звіти, що допомагає користувачам отримувати
оперативний зворотний зв’язок і розуміння поточного стану опитування.
Третій модуль — панель адміністратора, що надає функціонал для
створення, редагування та управління формами опитувань, а також для
детального перегляду зібраних результатів. Завдяки цій панелі
адміністратори можуть ефективно налаштовувати структуру опитувань,
контролювати активність респондентів і проводити глибокий аналіз
отриманих даних. Використання єдиного фреймворка для розробки
клієнтської частини і панелі адміністратора дозволяє оптимізувати процес
розробки, зменшити кількість необхідних технологій і підвищити
узгодженість інтерфейсів.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 34
а
Така модульна архітектура забезпечує не лише розподіл функцій і
відповідальності між частинами системи, а й створює гнучку, масштабовану і
зручну у підтримці платформу, що легко адаптується до нових вимог і
дозволяє оперативно реагувати на потреби користувачів і адміністраторів. -
Структура розробленої системи зображено на рисунку 3.1.
Рисунок 3.1 – Структура розробленої системи
Серверне програмне забезпечення відіграє ключову роль у
функціонуванні платформи, забезпечуючи надійний збір, обробку та
збереження даних, які надходять безпосередньо з форми опитування. Воно
приймає відповіді респондентів, перевіряє їх коректність, зберігає у базі
даних та виконує первинну обробку для подальшого аналізу. Однак
функціонал серверної частини не обмежується лише прийомом даних.
Для забезпечення повноцінної роботи платформи сервер надає набір
спеціалізованих кінцевих точок (API), через які панель адміністратора може
взаємодіяти із системою. За допомогою цих кінцевих точок адміністратори
отримують можливість створювати нові опитування, налаштовувати їхню
структуру — додавати або змінювати питання, визначати типи відповідей,
задавати правила логіки переходів між питаннями. Крім того, через сервер
можна управляти параметрами опитувань, наприклад, встановлювати часові
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 35
а
рамки проведення, налаштовувати обмеження доступу чи визначати цільову
аудиторію.
Сервер також надає кінцеві точки для отримання зібраних результатів,
що дозволяє панелі адміністратора в реальному часі переглядати відповіді,
формувати аналітичні звіти та експортувати дані для подальшого
використання. Вся взаємодія між клієнтською частиною, панеллю
адміністратора та сервером відбувається через стандартизовані протоколи
обміну даними, зазвичай у форматі JSON через HTTP(S), що гарантує
надійність і безпеку.
Серверне ПЗ виступає центральним компонентом платформи, що
підтримує двонаправлену комунікацію: приймає дані від користувачів, які
проходять опитування, і одночасно надає адміністраторам повний контроль
над створенням, налаштуванням та аналізом опитувань. Такий підхід
забезпечує гнучкість, масштабованість і високу ефективність роботи всієї
системи.
Вся комунікація між клієнтською частиною, панеллю адміністратора та
серверним програмним забезпеченням побудована на основі стандарту REST
API. Використання REST API забезпечує чітку, структуровану та зрозумілу
організацію обміну даними через HTTP(S)-запити, що дозволяє клієнтам і
серверу ефективно взаємодіяти незалежно від платформи чи технології.
Такий підхід спрощує масштабування системи, полегшує інтеграцію з
іншими сервісами та гарантує гнучкість у розробці як фронтенд, так і бекенд-
модулів.
Серверне програмне забезпечення платформи тісно інтегровано з
реляційною базою даних MySQL, яка виступає основним сховищем для всієї
інформації, пов’язаної з опитуваннями. У цій базі зберігаються не лише
результати, отримані від користувачів, а й повний набір налаштувань, які
визначають структуру та логіку опитувань — включно з питаннями, типами
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 36
а
відповідей, варіантами вибору, а також параметрами, що регулюють
відображення форми і правила навігації між питаннями.
Використання MySQL забезпечує надійне та послідовне збереження
даних, завдяки підтримці транзакцій та суворих механізмів цілісності, що є
особливо важливим для уникнення втрати інформації або неконсистентності
при одночасній роботі великої кількості користувачів. Крім того, MySQL
дозволяє ефективно виконувати складні запити для отримання статистики та
аналітики, що є ключовою складовою платформи.
Завдяки структурованій організації даних у MySQL, серверне
програмне забезпечення має можливість швидко отримувати потрібну
інформацію, фільтрувати результати за різними критеріями, а також
здійснювати агрегацію даних для побудови звітів і візуалізацій. Це підвищує
загальну продуктивність системи і дозволяє забезпечити швидкий та
інтуїтивно зрозумілий інтерфейс як для респондентів, так і для
адміністраторів.
Форма опитування реалізована у двох основних варіантах, що
забезпечує гнучкість у її використанні та інтеграції з різними платформами.
Перший варіант — це вбудовуваний елемент у вигляді iframe, який дозволяє
легко інтегрувати форму опитування в будь-які існуючі вебсайти без
необхідності значної адаптації чи змін у їхній структурі. Використання iframe
забезпечує ізоляцію форми від основного сайту, що підвищує безпеку та
стабільність роботи, а також спрощує процес оновлення та підтримки
опитувальника.
Другий варіант реалізації — це форма у вигляді React-компоненту, що
дає змогу більш гнучко та ефективно інтегрувати опитування безпосередньо
у React-додатки. Такий підхід дозволяє безпосередньо управляти станом
форми, легко кастомізувати її зовнішній вигляд і функціонал, а також
інтегрувати з іншими частинами інтерфейсу, що створює більш цілісний і
зручний для користувача досвід. Використання React-компоненту також
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 37
а
полегшує підтримку та розширення функціональності форми, оскільки React
широко використовується і має велику екосистему.
Завдяки наявності цих двох варіантів розробники та адміністратори
платформи отримують максимальну свободу вибору, що дозволяє адаптувати
форму опитування під різні потреби та умови використання, забезпечуючи
при цьому надійність, зручність і масштабованість системи.
Окрім двох основних варіантів інтеграції форми опитування — через
iframe або як React-компонент, платформа також передбачає можливість
прямого відкриття форми опитування у браузері будь-якого пристрою. Це
означає, що користувачі можуть отримати доступ до опитування
безпосередньо за посиланням, що робить процес проходження опитування
максимально простим і зручним.
Такий підхід забезпечує повну адаптивність форми, яка коректно
відображається на різних типах пристроїв — від стаціонарних комп’ютерів
до смартфонів і планшетів — без необхідності додаткових налаштувань або
встановлення додаткового програмного забезпечення. Це суттєво розширює
аудиторію опитування і сприяє збільшенню кількості респондентів, адже
користувачі можуть швидко та легко долучитися до опитування у будь-який
зручний для них час і з будь-якого місця.
Таким чином, наявність можливості прямого відкриття форми у
браузері робить платформу більш доступною і універсальною, що є
важливим фактором для успішного проведення громадських опитувань та
збору якісних даних.
Панель адміністратора також побудована на React, що дозволяє
створити сучасний, інтерактивний та зручний інтерфейс для управління
опитуваннями. Використання React для розробки як клієнтської частини
форми опитування, так і панелі адміністратора дає змогу уніфікувати
технології, спростити підтримку коду та покращити користувацький досвід.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 38
а
Цікаво, що панель адміністратора та сама форма опитування можуть
зберігатися у вигляді статичних файлів на CDN (ContentDeliveryNetwork). Це
означає, що обидва компоненти можуть бути розміщені як звичайні статичні
вебресурси, доступні через інтернет без необхідності наявності складного
серверного бекенду для їхнього розгортання. Такий підхід дозволяє
реалізувати платформу як staticwebsite, що значно спрощує інфраструктуру,
підвищує швидкість завантаження та покращує масштабованість.
Завдяки зберіганню на CDN, форма опитування та панель
адміністратора можуть бути миттєво доставлені користувачам у будь-якому
куточку світу, а також легко оновлюватися без простоїв або складних
процесів розгортання. Водночас серверне програмне забезпечення зберігає
роль централізованого сховища даних і API для взаємодії з клієнтськими
модулями, забезпечуючи безпеку, обробку та аналіз інформації. Така
архітектура поєднує в собі швидкість і простоту статичних сайтів з
потужністю серверної логіки, що робить платформу гнучкою і ефективною.
3.2 Опис функцій платформи
Функція розробленої системи полягає в організації та проведенні
опитувань громадської думки з подальшим збором, збереженням і аналізом
отриманих результатів. Система надає можливість швидко створювати
опитувальні форми, розповсюджувати їх через веб-технології, збирати
відповіді з різних пристроїв та візуалізувати результати для прийняття
обґрунтованих рішень.
Важливість такої системи складно переоцінити, особливо в умовах,
коли ефективна комунікація між громадськістю та органами управління,
бізнесом або громадськими ініціативами стає все більш необхідною.
Платформа дозволяє оперативно дізнаватися позицію людей щодо
актуальних питань, виявляти настрої в суспільстві, оцінювати ефективність
впроваджених змін або ініціатив.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 39
а
Система підвищує прозорість і підзвітність процесів прийняття рішень,
адже її використання демонструє відкритість до думки громадян. Також вона
створює можливості для інклюзивності — кожен охочий може висловити
свою точку зору, незалежно від місця перебування чи типу пристрою, яким
користується. Використання цифрових технологій дає змогу охопити широку
аудиторію, зменшити витрати на проведення опитувань та скоротити час від
збору даних до аналізу результатів.
Перед тим як розпочати створення нового опитування, адміністратор
системи повинен спочатку задати структуру форми, тобто створити опис
самого опитувальника. Це виконується шляхом завантаження файлу у
форматі JSON, який містить повну інформацію про поля форми, їх типи,
назви, варіанти відповідей, а також додаткові параметри, такі як
обов’язковість заповнення чи логіка переходу між питаннями. Структура
файлу для створення опитування зображено на рисунку 3.2.
Рисунок 3.2 – Структура файлу для створення опитування
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 40
а
Такий підхід дозволяє зберігати чітку і стандартизовану структуру
опитувань, а також дає можливість адміністратору швидко оновлювати чи
створювати нові форми без необхідності ручного налаштування кожного
елементу через інтерфейс. JSON-файл може бути підготовлений заздалегідь
або згенерований іншими системами, що додає гнучкості при інтеграції
платформи з зовнішніми інструментами.
Цей файл виступає як своєрідна "інструкція" для генератора форми на
клієнтському боці: при завантаженні такого JSON, система автоматично
створює відповідну структуру опитувальника з усіма необхідними полями.
Така схема дозволяє забезпечити швидкий запуск нових опитувань,
автоматизацію процесу та мінімізує ризик помилок при ручному введенні
даних. Водночас адміністратор зберігає повний контроль над форматом і
змістом опитувань.
Після створення нового опитування адміністратор отримує можливість
переглянути всі наявні опитування у зручному списку через панель
керування. Цей список формується автоматично на основі збережених у
системі записів і містить основну інформацію про кожне опитування —
зокрема його назву, дату створення, статус активності, а також кількість
отриманих відповідей.
Інтерфейс перегляду списку опитувань дозволяє адміністратору
швидко орієнтуватися в наявних опитуваннях, знаходити потрібне за назвою
або датою, редагувати параметри, переглядати детальну аналітику чи
динаміку відповідей, а також змінювати статус (наприклад, активувати чи
деактивувати). Завдяки цьому адміністратор має постійний доступ до всієї
інформації, що стосується активних і завершених опитувань, та може
ефективно керувати процесом їх проведення.
Наявність централізованого списку значно полегшує навігацію та
організацію роботи в системі, особливо коли мова йде про управління
великою кількістю опитувань одночасно. Це також забезпечує кращу
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 41
а
прозорість і контроль за всіма етапами збору даних. Робота з опитуваннями в
панелі адміністрування зображено на рисунку 3.3.
Рисунок 3.3 – Робота з опитуваннями в панелі адміністрування
Для кожного створеного опитування система надає можливість
перегляду звіту з відповідями, що значно підвищує цінність зібраних даних
для подальшого аналізу. Адміністратор або уповноважений користувач може
відкрити детальний звіт, у якому відображається, які саме відповіді були
надані на кожне з питань опитування.
Звіт може бути представлений у вигляді таблиці, де кожен рядок
відповідає окремому респонденту, а стовпці — це питання опитувальника. У
випадку вибіркових або рейтингових питань система агрегує дані та
виводить статистику (наприклад, кількість виборів кожного варіанту або
середнє значення для оцінок), а для відкритих відповідей — показує
текстовий вміст.
Такий формат звітності дозволяє швидко оцінити загальні тенденції,
виявити популярні або проблемні аспекти, а також, при необхідності,
провести глибший аналіз з використанням зовнішніх інструментів. Звітність
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 42
а
може оновлюватися в реальному часі, що дає змогу відстежувати перебіг
опитування та приймати рішення оперативно, навіть до його завершення.
Завдяки наявності детальних звітів, платформа перетворюється не
просто на інструмент збору думок, а на повноцінну систему для аналізу
громадської активності та прийняття обґрунтованих управлінських рішень.
Форму опитування, створену в системі, користувач може легко
поширити серед аудиторії декількома зручними способами, залежно від
потреб і технічних умов використання. Приклад форми опитування на
рисунку 3.4.
Рисунок 3.4 – Приклад форми опитування
Найпростішим варіантом є передача форми через пряме посилання —
кожне опитування генерує унікальну URL-адресу, за якою будь-який
користувач може відкрити форму у своєму браузері на комп’ютері чи
мобільному пристрої. Цей метод ідеально підходить для розсилки в
електронних листах, публікації в соціальних мережах або месенджерах.
Також форма може бути вбудована на будь-який вебсайт за допомогою
iframe. Це дозволяє інтегрувати опитування в структуру вже існуючих веб-
ресурсів без необхідності глибокого втручання в їхній код. Достатньо
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 43
а
вставити кілька рядків HTML з посиланням на форму, і вона буде
відображатися безпосередньо на сторінці.
Для більш гнучкої інтеграції, особливо у випадках, коли сайт або
додаток побудований на React, доступна можливість вставити форму як
React-компонент. Такий підхід дозволяє розробникам мати повний контроль
над виглядом і поведінкою форми, взаємодіяти з нею через пропси та хуки,
адаптувати її під свій UI та легко інтегрувати з іншими модулями застосунку.
Таким чином, система підтримує різні канали розповсюдження
опитувальника, що забезпечує зручність у використанні, максимальне
охоплення аудиторії та простоту інтеграції у найрізноманітніші платформи.
3.3 Технічні вимоги для роботи з платформою
Система для проведення громадських опитувань вимагає певних
технічних умов для коректного запуску, функціонування та інтеграції. В
першу чергу, необхідна інфраструктура, здатна обслуговувати статичні
файли, зокрема файли форми опитування та адміністративної панелі. Ці
файли мають бути розміщені на CDN або іншому сервері, що підтримує
обслуговування через HTTPS, оскільки уся комунікація між клієнтською
частиною та сервером здійснюється за цим протоколом.
Для серверної частини потрібен сервер з підтримкою запуску веб-
додатків та доступом до реляційної бази даних. Система передбачає обробку
HTTP-запитів, що передбачає наявність API-шлюзу або веб-сервера, здатного
приймати запити та маршрутизувати їх до обробника. Сервер має бути
налаштований таким чином, щоб підтримувати з’єднання з базою даних та
мати стабільне з’єднання з мережею. Також важливо забезпечити механізми
авторизації для обмеження доступу до адміністративного інтерфейсу.
База даних, яка використовується системою, повинна бути доступна
для читання та запису з боку серверної частини. Вона має підтримувати
зберігання структурованих даних, включаючи опис форм, поля, типи
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 44
а
відповідей, а також зібрані результати. Важливо, щоб база даних
функціонувала у захищеному середовищі та була захищена від
несанкціонованого доступу, з можливістю резервного копіювання.
Оскільки система підтримує роботу з великою кількістю одночасних
запитів, рекомендовано використовувати середовище з можливістю
масштабування, особливо у разі масових опитувань або публічного
розповсюдження форм. Інфраструктура повинна забезпечувати безперервну
доступність сервісів, обробку пікових навантажень та захист від основних
атак типу DDoS або спроб втручання через API.
З точки зору доступу кінцевого користувача, необхідно, щоб пристрої
мали сучасний веб-браузер з підтримкою JavaScript та можливістю відкриття
зовнішніх ресурсів через HTTPS. Це стосується як безпосереднього відкриття
форм у браузері, так і їхнього вбудовування у сторонні веб-сайти через
iframe. У випадку інтеграції через компонент, середовище, в якому
вбудовується форма, має дозволяти підключення сторонніх модулів і
забезпечувати підтримку стандартних web API[18].
Усі клієнтські та серверні з’єднання мають бути захищені SSL-
сертифікатом, що гарантує конфіденційність даних. Також система повинна
мати доступ до стабільного поштового сервісу, якщо планується реалізація
сповіщень або підтвердження участі. Для аналітики необхідно забезпечити
збереження журналів активності та поведінкових подій користувачів, що
може вимагати додаткового сховища або лог-сервісу.
Таким чином, успішне розгортання та експлуатація системи можливе
лише за умови наявності середовища з належним рівнем безпеки,
продуктивності та підтримки сучасних веб-стандартів.
Для використання форми опитування кінцевим користувачем
встановлені технічні вимоги, що забезпечують її коректне відображення,
функціональність та передачу даних. Оскільки форма розроблена як
сучасний веб-додаток, вона призначена для використання у веб-браузері і не
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 45
а
потребує встановлення додаткового програмного забезпечення на пристрій
користувача.
Для взаємодії з формою користувач повинен мати пристрій з доступом
до інтернету та сучасний браузер, який підтримує HTML5, JavaScript, CSS та
роботу з API через HTTPS. Підтримка JavaScript є обов’язковою, оскільки
форма використовує динамічну логіку рендерингу, перевірки даних та
взаємодії з сервером. Браузер має бути у актуальній або хоча б у стабільній
підтримуваній версії – наприклад, GoogleChrome, MozillaFirefox, Microsoft
Edge, Safari чи інший сучасний браузер. Форму можна проходити як з
комп’ютера, так і з мобільного телефону чи планшета — вона повністю
адаптована до екранів різного розміру, що гарантує зручність використання.
Користувач може відкрити форму опитування одним із доступних
способів: безпосередньо за посиланням, наданим організатором; у вигляді
вбудованого блоку на іншому сайті через iframe; або у випадку, якщо сайт
використовує React, форма може бути вбудована у вигляді компонента. В
усіх трьох випадках для користувача інтерфейс та логіка залишаються
незмінними — заповнення полів, натискання кнопки надсилання і отримання
повідомлення про успішну відправку.
Під час заповнення форма автоматично збирає та готує дані для
відправки, включаючи не лише прямі відповіді користувача, але й допоміжну
інформацію для подальшої аналітики: наприклад, часові затримки при
відповіді на кожне питання або загальну тривалість сесії. Усі дані
надсилаються через захищений HTTPS-запит до серверної частини
платформи. Важливо, щоб браузер користувача дозволяв здійснювати такі
запити і не блокував завантаження ресурсів через політику змішаного вмісту
(тобто коли форма завантажується по HTTPS, усі ресурси також мають бути
доступні по HTTPS).
Для забезпечення конфіденційності даних рекомендується
використовувати індивідуальне посилання на форму, якщо йдеться про
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 46
а
закриті або персоналізовані опитування. У загальнодоступних випадках
користувач може перейти за відкритим посиланням, не проходячи
авторизацію. Однак технічно система може бути сконфігурована на
обмеження доступу — наприклад, за допомогою токена, сесійного ключа або
перевірки IP.
3.4 Оцінка ефективності
Оцінка ефективності розробленої системи громадського опитування
базується на її здатності вирішувати практичні завдання, які постають перед
організаторами опитувань, а також на її гнучкості, масштабованості, простоті
інтеграції та рівні контролю над даними. У порівнянні з традиційними
сервісами, такими як GoogleForms, дана система пропонує низку унікальних
переваг, які роблять її ефективним інструментом для організації збору
громадської думки у публічному, науковому або адміністративному
середовищі.
Насамперед, одним з ключових аспектів ефективності є повний
контроль над процесом опитування. У той час як GoogleForms дозволяє
створювати лише базові форми із фіксованим інтерфейсом, розроблена
система надає можливість гнучко конфігурувати структуру опитування через
JSON-опис, що значно полегшує автоматизоване або шаблонне створення
великої кількості опитувальників. Такий підхід особливо ефективний у
випадках, коли потрібно формувати серії схожих анкет для різних груп або
регіонів.
Ще однією суттєвою перевагою є універсальність способів інтеграції
форми з іншими платформами. Розроблена система дозволяє вбудовувати
форму безпосередньо в існуючі сайти за допомогою iframe або React-
компонентів. Це забезпечує нативну інтеграцію в зовнішні веб-середовища
без втрати функціональності та стилістики. На противагу цьому,
GoogleForms не дозволяє вбудовувати свої форми як компоненти у React-
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 47
а
додатки, а iframe-інтеграція може бути обмеженою через політику безпеки та
відсутність кастомізації.
Важливим аспектом ефективності є також аналітика та збір
поведінкових даних. Розроблена система передбачає можливість збору
додаткової інформації під час проходження опитування: час відповіді,
навігацію користувача між питаннями, поведінкові метрики. Це дозволяє
отримати глибший контекст для аналізу даних та виявлення неочевидних
закономірностей у відповідях. GoogleForms, у свою чергу, обмежується лише
статичним збором відповідей і не надає розширеної аналітики без
використання сторонніх сервісів або GoogleAppsScript, що знижує загальну
ефективність при проведенні глибокого аналізу.
Не менш важливою перевагою є розміщення системи на власній
інфраструктурі або в приватному хмарному середовищі, що забезпечує повну
незалежність від сторонніх сервісів. Це має критичне значення в умовах,
коли дані мають зберігатися виключно у національному або захищеному
середовищі, або коли необхідна відповідність локальним стандартам
збереження та обробки персональних даних. GoogleForms зберігає всі дані на
серверах Google, що у певних організаціях може бути юридично або
політично неприйнятним.
Також слід відзначити уніфікацію технологій у системі, де як форма,
так і панель адміністратора побудовані за єдиними принципами, що спрощує
розгортання, підтримку та оновлення. Усі компоненти можуть працювати як
частини статичного сайту, що дозволяє масштабувати систему практично без
додаткових витрат на інфраструктуру. GoogleForms, хоча і є хмарним
сервісом, не дозволяє адаптувати свою логіку чи поведінку під потреби
конкретного проєкту, тому гнучкість у цьому випадку значно нижча.
Оцінюючи швидкодію системи, можна відзначити, що використання
кешованих статичних ресурсів на CDN та REST API з оптимізованими
відповідями дозволяє забезпечити високу продуктивність при великій
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 48
а
кількості користувачів. Завдяки розділенню навантаження між фронтендом і
бекендом система здатна обслуговувати одночасно десятки тисяч
користувачів без критичних затримок. У випадку з Google Forms
продуктивність також висока, але відсутність можливості оптимізації під
власні потреби може обмежити ефективність при спеціалізованих або
масштабних опитуваннях.
У результаті можна сказати, що запропонована система ефективна не
лише з точки зору базового збору даних, але й як платформа для широкого
спектра аналітичних і дослідницьких завдань. Вона краще підходить для
ситуацій, де потрібен високий рівень кастомізації, гнучкість у розгортанні,
контроль над збереженням даних і можливість інтеграції в більші
інформаційні системи. У той час як GoogleForms залишається зручним
варіантом для простих випадків, ця система є більш професійним та
масштабованим рішенням, орієнтованим на організації з конкретними
вимогами до безпеки, аналітики та дизайну процесів опитування.
3.5 Висновки до розділу
У результаті розробки було створено трикомпонентну систему для
проведення громадських опитувань, що включає серверну частину,
клієнтський інтерфейс та панель адміністратора. Кожен модуль виконує
чітко визначені функції, що забезпечують повний цикл роботи платформи —
від створення опитувань до збору й аналізу результатів.
Серверна частина відповідає за обробку, збереження та захист даних, а
також реалізує REST API для взаємодії з іншими модулями. Клієнтська
частина забезпечує адаптивне проходження опитувань з різних пристроїв.
Панель адміністратора дозволяє створювати, редагувати форми, переглядати
відповіді та експортувати дані.
Форми можуть бути інтегровані у вебсайти через iframe, React-
компонент або відкриватися напряму в браузері, що забезпечує гнучкість і
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 49
а
широку доступність. Завдяки використанню єдиної технології для
клієнтської частини й адмінпанелі (React), система є простою в
обслуговуванні та масштабуванні. Такаархітектураробить платформу
зручною, гнучкою й ефективною для різних сценаріїв використання.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 50
а
4 ЗАХИСТ ПЛАТФОРМИ ДЛЯ ГРОМАДСЬКОГО ОПИТУВАННЯ ТА
З АНАЛІЗУ ДАНИХ ІЗ ВІЗУАЛІЗАЦІЄЮ РЕЗУЛЬТАТІВ
4.1 Огляд існуючих рішень
Під час збору зворотного зв’язку через онлайн-форми часто
обробляються персональні або чутливі дані — імена, електронні адреси,
номери телефонів, іноді навіть соціально важлива інформація про думки,
уподобання чи оцінку певних рішень. Незахищене зберігання або передача
таких даних може призвести до витоку інформації, порушення
конфіденційності або навіть юридичної відповідальності відповідно до
законодавства (наприклад, GDPR або Закону України “Про захист
персональних даних”) [19].
Одним із перших і базових методів захисту є використання захищеного
протоколу передачі даних HTTPS. Це забезпечує шифрування трафіку між
користувачем і сервером, запобігаючи перехопленню даних третіми особами.
Усі запити до форми, а також відправка відповідей, мають проходити
виключно через HTTPS. Крім того, сертифікати SSL/TLS мають бути
оновлені та дійсні [20].
Щоб не допустити несанкціонованого доступу до адміністративної
частини системи, слід реалізувати надійну систему аутентифікації. Це може
включати парольний захист, двофакторну автентифікацію (2FA) або
інтеграцію з корпоративними обліковими записами (OAuth, LDAP тощо)
[21]. Крім того, важливо впровадити рівні доступу: користувачі, модератори,
аналітики і адміністратори мають мати доступ лише до тих частин даних, які
їм дозволено бачити.
Для запобігання маніпуляціям із результатами опитування варто
реалізувати механізми обмеження повторного заповнення форм. Це можуть
бути унікальні токени доступу, збереження IP-адрес, обмеження за cookie або
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 51
а
перевірка через SMS-код. Також доцільно використовувати CAPTCHA для
фільтрації автоматичних ботів.
Навіть якщо дані передані безпечно, важливо також забезпечити їх
захист на сервері. Це включає використання баз даних з обмеженим
доступом, шифрування чутливих полів (наприклад, номерів телефонів або
адрес електронної пошти) та регулярне створення резервних копій. Сервери,
на яких зберігаються дані, повинні мати сучасний захист: фаєрволи,
обмеження доступу по IP, оновлене програмне забезпечення та журнали дій.
Крім технічного захисту, система повинна відповідати юридичним
нормам щодо захисту персональних даних. Користувачів слід інформувати
про мету збору, термін зберігання, права на доступ і видалення своїх даних.
Важливо мати чітко сформульовану політику конфіденційності, яка публічно
доступна на сайті форми.
Захист інформації — це не просто технічна вимога, а основа довіри до
платформи опитувань. Якщо громадяни знають, що їхні відповіді захищені, а
персональні дані не будуть використані неправомірно, вони з більшою
ймовірністю братимуть участь у таких опитуваннях [22]. Високий рівень
інформаційної безпеки — необхідна умова для сучасних цифрових сервісів у
сфері взаємодії між владою, бізнесом та суспільством.
Захист інформації при роботі з платформами для опитування
починається зі забезпечення надійного доступу до самої системи. Оскільки
платформа зберігає потенційно чутливу інформацію (відповіді користувачів,
персональні дані, аналітичні звіти тощо), надзвичайно важливо обмежити
доступ до неї лише для авторизованих користувачів. Будь-який витік доступу
може призвести до несанкціонованих змін у даних, порушення
конфіденційності або компрометації системи.
Автентифікація (authentication) — це процес перевірки особи
користувача. На базовому рівні вона реалізується через введення логіна та
пароля [23]. Однак сучасні вимоги безпеки рекомендують використовувати
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 52
а
двофакторну автентифікацію (2FA), яка передбачає підтвердження входу за
допомогою другого елемента: SMS-коду, додатку-генератора (наприклад,
Google Authenticator), або фізичного ключа. Це значно знижує ризик
несанкціонованого доступу навіть у випадку викрадення пароля.
Авторизація (authorization) — це процес перевірки прав користувача
після його автентифікації. Іншими словами, навіть якщо користувач пройшов
перевірку особи, система має перевірити, які саме дії йому дозволені:
перегляд звітів, редагування форм, надсилання опитувань тощо. Це
реалізується через рольову модель доступу — наприклад, адміністратор,
модератор, аналітик, звичайний користувач. Такий підхід дозволяє гнучко
керувати безпекою системи, не відкриваючи надмірних прав.
Після успішної автентифікації користувач отримує сесію, яка повинна
бути захищеною. Рекомендовано використовувати JWT-токени (JSON Web
Token) або захищені cookie з атрибутами HttpOnly, Secure, SameSite, щоб
уникнути атак типу XSS або CSRF [24]. Також варто встановлювати тайм-
аути сесій, які автоматично виходять після певного періоду неактивності.
Паролі користувачів повинні зберігатися в хешованому вигляді (наприклад, з
використанням алгоритму bcrypt або Argon2), без можливості відновлення у
відкритому вигляді.
Ще одним важливим аспектом безпеки є логування всіх дій, повʼязаних
з авторизацією та змінами в системі. Це дозволяє у випадку інциденту
швидко визначити, хто і коли виконав певну дію. Журнали подій мають бути
захищеними від несанкціонованого доступу, регулярно перевірятися та
зберігатися протягом встановленого терміну відповідно до політики безпеки.
Захист інформації на рівні автентифікації та авторизації — це не лише
вимога часу, а необхідна умова довіри до платформи. Надійна система
доступу запобігає зловживанням, захищає персональні дані та дозволяє
ефективно управляти правами користувачів. Особливо це важливо у
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 53
а
системах, пов’язаних із збором громадської думки, де довіра до процесу —
ключовий фактор участі користувачів.
Першим кроком до захисту інформації є обмеження фізичного та
логічного доступу до бази даних. База даних не повинна бути відкритою для
загального доступу через інтернет. Доступ до неї мають мати лише ті сервери
або сервіси, які безпосередньо працюють з даними. Всі з’єднання повинні
проходити через захищені канали, наприклад VPN або SSH-тунелі, щоб
виключити перехоплення даних на мережевому рівні.
Кожна служба або користувач, який взаємодіє з базою даних, повинен
мати свій обліковий запис з мінімально необхідними правами доступу.
Наприклад, служба, яка лише читає дані, не повинна мати права на їх зміну
або видалення. Таким чином, навіть якщо хтось отримає доступ до цього
акаунта, збитки будуть мінімальними. Паролі доступу до бази даних мають
зберігатися в зашифрованому вигляді або в секретних сховищах (наприклад,
Vault, AWS Secrets Manager).
Зберігання чутливої інформації, такої як електронні адреси, імена, IP-
адреси або відповіді на опитування, повинно здійснюватися з використанням
шифрування. Є два основні підходи: шифрування на рівні поля (дані
шифруються перед збереженням) та шифрування на рівні диску (наприклад,
за допомогою технологій TDE — Transparent Data Encryption) [25]. Обидва
підходи мають свої переваги, але найкращі результати дає їх поєднання.
Щоб своєчасно виявляти підозрілу активність, потрібно впровадити
систему аудиту. Це означає, що всі запити до бази (особливо ті, що змінюють
або видаляють дані) мають логуватись із зазначенням часу, користувача та
дії. У разі інциденту це допоможе швидко встановити причину та джерело
проблеми. Логи мають бути захищені від змін і зберігатися в окремих,
недоступних ззовні місцях.
Навіть при максимальному захисті від несанкціонованого доступу
існує ризик втрати даних через технічні збої або людські помилки. Тому
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 54
а
важливо організувати регулярне резервне копіювання бази даних, яке
дозволить швидко відновити систему в разі аварії. Копії мають зберігатися в
шифрованому вигляді, у безпечному місці, з обмеженим доступом і
перевіреною процедурою відновлення.
Для зберігання даних варто обирати надійні системи керування базами
даних (СУБД), які мають вбудовані механізми безпеки. До таких належать:
1. PostgreSQL — має підтримку ролей, шифрування, аудитів;
2. MySQL — забезпечує шифрування з’єднання, обмеження прав
доступу;
3. MongoDB — підтримує SSL-з’єднання, контроль доступу і
шифрування;
4. Microsoft SQL Server — має підтримку TDE, аудитів, політик доступу.
Ці системи дозволяють налаштовувати багаторівневий захист даних,
адаптуючи його до потреб конкретного проєкту.
Захист інформації у базі даних — це не лише питання
конфіденційності, а й основа стабільної та довіреної роботи всієї системи.
Комплексний підхід, що включає обмеження доступу, шифрування, аудит і
резервне копіювання, дозволяє мінімізувати ризики і забезпечити високий
рівень безпеки. Надійний захист даних — це обов’язкова умова для будь-якої
платформи, що працює з громадською думкою або персональними даними
користувачів.
Передача даних через мережу Інтернет завжди пов’язана з ризиками:
інформація може бути перехоплена, змінена або підроблена зловмисниками.
Особливо це критично, коли йдеться про персональні дані громадян,
результати опитувань, паролі або службову інформацію. Тому системи, що
обробляють такі дані, повинні мати надійні механізми захисту саме під час
їхньої передачі від користувача до сервера або між сервісами.
Найбільш базовим і обов’язковим засобом захисту є використання
протоколу HTTPS (HyperText Transfer Protocol Secure). На відміну від
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 55
а
звичайного HTTP, він забезпечує шифрування всього трафіку за допомогою
протоколу TLS (Transport Layer Security). Це означає, що навіть якщо трафік
буде перехоплений, зловмисник не зможе розшифрувати вміст повідомлень.
Для цього потрібно мати сертифікат SSL/TLS, виданий авторитетним
центром сертифікації, який повинен бути встановлений на сервері.
TLS не лише шифрує трафік, а й гарантує цілісність даних, тобто
захист від зміни вмісту під час передачі. Усі дані, що передаються,
підписуються цифровими підписами, які перевіряються одержувачем. Якщо
під час передачі щось було змінено, система зможе це виявити та відкинути
небезпечні пакети. Це особливо важливо для форм опитування, де результати
повинні зберігати свою достовірність.
Окрім HTTPS, деякі системи реалізовують власне шифрування даних
на стороні клієнта — наприклад, перед відправкою форми дані шифруються
за допомогою публічного ключа сервера. Це створює додатковий рівень
безпеки: навіть у разі зламу HTTPS-каналу (теоретично), вміст все одно
залишиться зашифрованим. Такий підхід особливо доцільний у системах, які
працюють з чутливою або конфіденційною інформацією.
Однією з найпоширеніших загроз під час передачі даних є атака
“людина посередині” (Man-In-The-Middle). Вона полягає в тому, що
зловмисник перехоплює дані між користувачем і сервером. HTTPS із
правильним сертифікатом і налаштуванням дозволяє перевіряти справжність
сервера, до якого відправляються дані, та запобігати підробленню з’єднання.
Для повного захисту важливо використовувати лише надійні сертифікати та
регулярно перевіряти їхню чинність.
Якщо форма використовує API-запити (наприклад, для відправки даних
на бекенд), усі ці запити також мають проходити через HTTPS і бути
захищені токенами автентифікації (наприклад, JWT або OAuth2). Це
запобігає несанкціонованому доступу до API сторонніми особами, навіть
якщо вони дізнаються адреси ендпоінтів.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 56
а
Захист при передачі даних через Інтернет є критично важливим
компонентом безпеки інформаційної системи. Використання HTTPS,
сучасних методів шифрування, автентифікації сервера і підписування
повідомлень гарантує збереження конфіденційності, цілісності та
достовірності інформації. Особливо це актуально для систем опитування
громадськості, де точність і надійність даних мають безпосередній вплив на
прийняття рішень на рівні міста чи держави.
4.2 Реалізація захисту користувачів
Захист користувачів у розробленій системі громадських опитувань
реалізовано комплексно, з урахуванням сучасних вимог до безпеки даних та
конфіденційності. По-перше, усі взаємодії між клієнтською частиною та
сервером здійснюються через захищений протокол HTTPS, що забезпечує
шифрування переданих даних і захищає від перехоплення чи підміни
інформації зловмисниками під час передачі.
Для запобігання несанкціонованому доступу до адміністративної
панелі та управління опитуваннями система реалізує механізми
автентифікації та авторизації. Адміністратори зобов’язані проходити
процедуру входу з використанням надійних паролів або інших методів
підтвердження особи. При цьому можуть застосовуватися додаткові рівні
захисту, такі як двофакторнааутентифікація, що значно ускладнює
можливість злому облікового запису.
Дані користувачів, які беруть участь в опитуваннях, зберігаються у базі
даних із застосуванням стандартних методів захисту, таких як обмеження
прав доступу, регулярне резервне копіювання, а також ізоляція середовища, в
якому працює серверна частина. Це допомагає мінімізувати ризики
випадкової втрати або несанкціонованого розголошення інформації.
Ще одним важливим елементом є контроль цілісності та достовірності
даних. Форма опитування перевіряє коректність введених відповідей на
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 57
а
клієнтському рівні, а сервер додатково валідовує отримані дані, що знижує
ризики ін’єкційних атак чи передачі шкідливого коду. Всі запити до серверу
проходять через REST API із застосуванням перевірки прав доступу, що
запобігає виконанню несанкціонованих дій.
Крім того, система передбачає захист від автоматизованих ботів, які
можуть намагатися масово заповнювати форми. Для цього можуть
використовуватися капчі або інші механізми верифікації користувачів, що
проходять опитування, що допомагає зберегти якість і достовірність зібраних
даних.
Важливою частиною захисту є також забезпечення конфіденційності
поведінкових даних, які збираються для аналітики. Вся інформація
агрегується та зберігається з дотриманням принципів анонімності, що
виключає можливість ідентифікації конкретного респондента за його
поведінковими патернами.
Таким чином, система використовує комплексний підхід до захисту
користувачів, що включає шифрування даних, автентифікацію, валідацію
інформації, захист від ботів та забезпечення конфіденційності, що робить її
надійним інструментом для проведення опитувань із високими стандартами
безпеки.
Відмінність розробленої системи від багатьох існуючих платформ для
проведення опитувань, зокрема таких популярних, як GoogleForms, полягає в
тому, що ця система не збирає особисті дані користувачів, які проходять
опитування. Інформація, що надходить до системи, обмежується виключно
відповідями на питання та анонімними поведінковими метриками, які не
ідентифікують конкретну людину. Це принципове рішення має низку
важливих переваг і є ключовим елементом, що підвищує довіру до системи
та сприяє етичному використанню зібраних даних.
По-перше, уникнення збору персональних даних значно знижує ризики
порушення приватності та конфіденційності респондентів. У сучасному світі,
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 58
а
де тема захисту персональних даних набирає все більшого значення,
забезпечення анонімності стає не лише етичним обов’язком, але й
відповідністю нормам законодавства, таким як GDPR в Європейському
Союзі або інші подібні регуляції в різних країнах. Відсутність необхідності
збирати і зберігати особисту інформацію звільняє організаторів опитування
від багатьох складних юридичних зобов’язань і зменшує відповідальність за
можливі витоки даних.
По-друге, анонімність сприяє більш чесним і відкритим відповідям з
боку користувачів. Коли люди знають, що їх особисті дані не фіксуються і не
пов’язуються з їхніми відповідями, вони почуваються більш вільно у
вираженні своїх думок, що підвищує якість і достовірність отриманих
результатів. Це особливо важливо у випадках, коли опитування стосуються
чутливих тем або потребують від респондентів максимальної відвертості.
По-третє, відмова від збору персональних даних дозволяє знизити
складність системи з точки зору безпеки. Відсутність інформації, яка могла б
ідентифікувати користувачів, зменшує потенційні втрати у разі кібератаки чи
витоку, а також спрощує впровадження технічних заходів захисту.
Дотримання принципу збирання особистих даних є важливим не лише
з точки зору технічної реалізації, але і з позиції формування довіри між
організаторами опитувань і їх аудиторією. Такий підхід сприяє підвищенню
репутації системи як прозорого та відповідального інструменту збору
громадської думки, що особливо актуально у суспільстві, де все більше
людей усвідомлюють цінність приватності.
Навіть у випадку збереження відповідей у базі даних система реалізує
принципи максимальної анонімності та безпеки, які виключають можливість
ідентифікації користувачів. Всі отримані результати проходять через процес
шифрування перед тим, як бути збереженими у базі даних. Завдяки цьому
механізму, дані зберігаються у зашифрованому вигляді, що робить їх
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 59
а
абсолютно недоступними для сторонніх осіб або навіть для адміністраторів
системи без відповідного ключа дешифрування.
Це означає, що навіть якщо хтось отримує доступ до бази даних, він не
зможе встановити жодного зв’язку між відповідями і конкретними особами,
які їх надали. Відповіді не містять жодної персональної інформації, а
поведінкові метрики, які можуть збиратися для аналітики, також
обробляються у вигляді анонімних даних без можливості відновлення
ідентичності респондента. Таким чином, вся інформація, що зберігається, є
виключно агрегованими та зашифрованими даними, що забезпечує високий
рівень конфіденційності.
Таке рішення є надзвичайно важливим у контексті сучасних вимог до
захисту даних і приватності, оскільки воно знижує ризики потенційних
витоків інформації або її неправомірного використання. Крім того,
шифрування збережених відповідей захищає систему від внутрішніх загроз,
наприклад, випадкових помилок або зловмисних дій з боку персоналу, який
має доступ до бази даних.
Забезпечення такого рівня безпеки також підвищує довіру користувачів
до платформи, адже вони можуть бути впевнені, що їх відповіді не будуть
використані для ідентифікації або відстеження їхніх дій. Відсутність
можливості розкрити особу респондента стимулює більш відверті та чесні
відповіді, що підвищує якість і достовірність отриманих результатів.
Крім того, шифрування даних сприяє дотриманню вимог міжнародних
стандартів захисту інформації, таких як GDPR, що регламентують обробку та
зберігання персональних даних. Хоча сама система не збирає персональну
інформацію, додатковий захист у вигляді шифрування робить її відповідною
до найвищих стандартів безпеки, що є важливою перевагою при
використанні у державних чи корпоративних середовищах з підвищеними
вимогами до конфіденційності.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 60
а
4.3 Висновки до розділу
Захист даних у системах громадського опитування є критично
важливим для збереження довіри користувачів та відповідності юридичним
вимогам. Комплексна реалізація безпеки охоплює шифрування передавання
інформації через HTTPS, обмеження доступу через автентифікацію та
авторизацію, захист бази даних, аудит дій, а також шифрування і резервне
копіювання чутливої інформації. Дотримання цих принципів гарантує
конфіденційність, цілісність і доступність даних, що є основою надійної та
безпечної платформи для збору громадської думки.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 61
а
ВИСНОВКИ
У сучасному цифровому суспільстві ефективна комунікація між
владою та громадянами стає невіддільною складовою демократичного
управління. Збір зворотного зв’язку через зручні, доступні та технологічно
досконалі платформи дає змогу формувати обґрунтовану та прозору
політику, що відповідає реальним потребам суспільства. Розробка
універсальної системи для проведення громадських опитувань є актуальним
викликом, що передбачає створення багатокомпонентного рішення:
інтуїтивно зрозумілої клієнтської частини, функціональної панелі
адміністратора та захищеного серверного середовища з надійною базою
даних.
Аналіз сучасних технологій показав, що поєднання HTML, CSS,
JavaScript і React забезпечує адаптивний інтерфейс, а використання
протоколу HTTPS — безпеку передавання даних. Різноманіття серверних
технологій і СУБД, таких як Node.js, PHP, Python, MySQL, PostgreSQL або
MongoDB, дозволяє гнучко підбирати оптимальне рішення залежно від
масштабів і завдань проєкту.
Практична реалізація платформи включає підтримку інтеграції з веб
сайтами, можливість розсилки посилань на анкети через email або SMS,
захист особистих даних через авторизацію та шифрування, а також
інструменти аналізу результатів. Такий підхід забезпечує масштабованість,
інклюзивність і простоту використання як для організаторів опитувань, так і
для респондентів. У підсумку, створена платформа не лише сприяє активній
участі громадян у прийнятті рішень, а й підвищує ефективність, надійність і
прозорість процесу громадських консультацій.
Лист
ЧДТУ.252182.008 ПЗ т
Зм. Лист № докум. Підпис Дат 62
а
ДОДАТОК А
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор Віра БАБЕНКО
__________________
«___» ____________ 2025 року
Розробка платформи для громадського опитування та аналізу
даних із візуалізацією результатів
Специфікація
482.ЧДТУ.52182-01
Листів 2
Розробник ______________ Владислав ОРЕЛ
Керівник ______________ Світлана СИСОЄНКО
Черкаси 2025
2
482.ЧДТУ.52182-01
Позначення Найменування Примітка
Документація
482.ЧДТУ.52182-01 12 01 Текст програми
482.ЧДТУ.52182-01 34 01 Інструкція користувача
ДОДАТОК Б
Розробка платформи для громадського опитування та аналізу
даних із візуалізацією результатів
Текст програми
482.ЧДТУ.52182-01 12 01
Листів 11
Розробник: ____________ Владислав ОРЕЛ
Черкаси 2025
2
482.ЧДТУ.52182-01 12 01
constmysql = require('mysql2/promise');
constdbConfig = {
host: process.env.DB_HOST || 'localhost',
user: process.env.DB_USER || 'root',
password: process.env.DB_PASSWORD || 'password',
database: process.env.DB_NAME || 'questionnaire_db',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
};
constpool = mysql.createPool(dbConfig);
module.exports = pool;
module.exports = {
JWT_SECRET: process.env.JWT_SECRET || 'your-secret-key',
JWT_EXPIRES_IN: '24h',
SALT_ROUNDS: 10,
PASSWORD_MIN_LENGTH: 8,
MAX_FILE_SIZE: 5 * 1024 * 1024,
ALLOWED_FILE_TYPES: ['image/jpeg', 'image/png', 'application/pdf'],
PAGINATION_LIMIT: 10
};
constjwt = require('jsonwebtoken');
const { JWT_SECRET } = require('../config/constants');
constauthenticateToken = async (req, res, next) => {
constauthHeader = req.headers['authorization'];
consttoken = authHeader&&authHeader.split(' ')[1];
if (!token) {
returnres.status(401).json({ error: 'Authenticationtokenrequired' });
}
try {
constuser = jwt.verify(token, JWT_SECRET);
req.user = user;
next();
} catch (err) {
returnres.status(403).json({ error: 'Invalidorexpiredtoken' });
3
482.ЧДТУ.52182-01 12 01
}
};
constisAdmin = async (req, res, next) => {
if (!req.user.isAdmin) {
returnres.status(403).json({ error: 'Adminaccessrequired' });
}
next();
};
module.exports = { authenticateToken, isAdmin };
const { body, param, query } = require('express-validator');
constvalidateQuestionnaire = [
body('title').trim().notEmpty().withMessage('Titleisrequired'),
body('questions').isArray().withMessage('Questionsmustbeanarray'),
body('questions.*.text').trim().notEmpty().withMessage('Question
textisrequired'),
body('questions.*.type').isIn(['text', 'multiple_choice', 'checkbox', 'rating'])
.withMessage('Invalidquestiontype')
];
constvalidateResponse = [
body('questionnaire_id').isInt().withMessage('Validquestionnaire ID required'),
body('answers').isArray().withMessage('Answersmustbeanarray'),
body('answers.*.question_id').isInt().withMessage('Validquestion ID required'),
body('answers.*.text').trim().notEmpty().withMessage('Answertextisrequired')
];
constvalidateLogin = [
body('username').trim().notEmpty().withMessage('Usernameisrequired'),
body('password').trim().notEmpty().withMessage('Passwordisrequired')
];
module.exports = {
validateQuestionnaire,
validateResponse,
validateLogin
};
classAppErrorextendsError {
constructor(message, statusCode) {
4
482.ЧДТУ.52182-01 12 01
super(message);
this.statusCode = statusCode;
this.status = `${statusCode}`.startsWith('4') ? 'fail' : 'error';
this.isOperational = true;
Error.captureStackTrace(this, this.constructor);
}
}
consterrorHandler = (err, req, res, next) => {
err.statusCode = err.statusCode || 500;
err.status = err.status || 'error';
if (process.env.NODE_ENV === 'development') {
res.status(err.statusCode).json({
status: err.status,
error: err,
message: err.message,
stack: err.stack
});
} else {
if (err.isOperational) {
res.status(err.statusCode).json({
status: err.status,
message: err.message
});
} else {
res.status(500).json({
status: 'error',
message: 'Somethingwentwrong!'
});
}
}
};
module.exports = { AppError, errorHandler };
constpool = require('../config/database');
const { AppError } = require('../utils/errorHandler');
classQuestionnaireService {
asynccreate(title, questions, userId) {
constconnection = awaitpool.getConnection();
5
482.ЧДТУ.52182-01 12 01
try {
awaitconnection.beginTransaction();
const [result] = awaitconnection.execute(
'INSERT INTO questionnaires (title, created_by) VALUES (?, ?)',
[title, userId]
);
constquestionnaireId = result.insertId;
for (constquestionofquestions) {
awaitconnection.execute(
'INSERT INTO questions (questionnaire_id, question_text, question_type,
options) VALUES (?, ?, ?, ?)',
[questionnaireId, question.text, question.type,
JSON.stringify(question.options || [])]
);
}
awaitconnection.commit();
returnquestionnaireId;
} catch (err) {
awaitconnection.rollback();
thrownewAppError('Failedtocreatequestionnaire', 500);
} finally {
connection.release();
}
}
asyncgetAll(page = 1, limit = 10) {
constoffset = (page - 1) * limit;
try {
const [rows] = awaitpool.execute(`
SELECT q.*, COUNT(r.id) asresponse_count
FROM questionnaires q
LEFT JOIN responses r ON q.id = r.questionnaire_id
GROUP BY q.id
LIMIT ? OFFSET ?
`, [limit, offset]);
const [total] = awaitpool.execute('SELECT COUNT(*) ascount FROM
questionnaires');
6
482.ЧДТУ.52182-01 12 01
return {
questionnaires: rows,
pagination: {
total: total[0].count,
page,
pages: Math.ceil(total[0].count / limit)
}
};
} catch (err) {
thrownewAppError('Failedtofetchquestionnaires', 500);
}
}
asyncgetById(id) {
try {
const [questionnaire] = awaitpool.execute(
'SELECT * FROM questionnaires WHERE id = ?',
[id]
);
if (questionnaire.length === 0) {
thrownewAppError('Questionnairenotfound', 404);
}
const [questions] = awaitpool.execute(
'SELECT * FROM questions WHERE questionnaire_id = ?',
[id]
);
return { ...questionnaire[0], questions };
} catch (err) {
thrownewAppError(err.message, err.statusCode || 500);
}
}
}
module.exports = newQuestionnaireService();
constpool = require('../config/database');
const { AppError } = require('../utils/errorHandler');
classResponseService {
7
482.ЧДТУ.52182-01 12 01
asynccreate(questionnaireId, answers) {
constconnection = awaitpool.getConnection();
try {
awaitconnection.beginTransaction();
const [result] = awaitconnection.execute(
'INSERT INTO responses (questionnaire_id) VALUES (?)',
[questionnaireId]
);
constresponseId = result.insertId;
for (constanswerofanswers) {
awaitconnection.execute(
'INSERT INTO answers (response_id, question_id, answer_text) VALUES
(?, ?, ?)',
[responseId, answer.question_id, answer.text]
);
}
awaitconnection.commit();
returnresponseId;
} catch (err) {
awaitconnection.rollback();
thrownewAppError('Failedtosaveresponse', 500);
} finally {
connection.release();
}
}
asyncgetAnalytics(questionnaireId) {
try {
const [responses] = awaitpool.execute(`
SELECT
q.question_text,
q.question_type,
COUNT(DISTINCT r.id) asresponse_count,
JSON_ARRAYAGG(a.answer_text) asanswers
FROM questions q
LEFT JOIN answers a ON q.id = a.question_id
LEFT JOIN responses r ON a.response_id = r.id
WHERE q.questionnaire_id = ?
8
482.ЧДТУ.52182-01 12 01
GROUP BY q.id
`, [questionnaireId]);
returnresponses.map(response => ({
...response,
answers: JSON.parse(response.answers)
}));
} catch (err) {
thrownewAppError('Failedtofetchanalytics', 500);
}
}
}
module.exports = newResponseService();
constexpress = require('express');
constrouter = express.Router();
const { authenticateToken, isAdmin } = require('../middleware/auth');
const { validateLogin } = require('../middleware/validation');
constAdminController = require('../controllers/adminController');
router.post('/login', validateLogin, AdminController.login);
router.get('/dashboard', authenticateToken, isAdmin,
AdminController.getDashboard);
router.get('/users', authenticateToken, isAdmin, AdminController.getUsers);
router.post('/users', authenticateToken, isAdmin, AdminController.createUser);
router.delete('/users/:id', authenticateToken, isAdmin,
AdminController.deleteUser);
module.exports = router;
onstexpress = require('express');
constrouter = express.Router();
const { authenticateToken } = require('../middleware/auth');
const { validateQuestionnaire } = require('../middleware/validation');
constQuestionnaireController = require('../controllers/questionnaireController');
router.post('/', authenticateToken, validateQuestionnaire,
QuestionnaireController.create);
router.get('/', QuestionnaireController.getAll);
router.get('/:id', QuestionnaireController.getById);
9
482.ЧДТУ.52182-01 12 01
router.put('/:id', authenticateToken, validateQuestionnaire,
QuestionnaireController.update);
router.delete('/:id', authenticateToken, QuestionnaireController.delete);
router.get('/:id/analytics', authenticateToken,
QuestionnaireController.getAnalytics);
module.exports = router;
constexpress = require('express');
constcors = require('cors');
consthelmet = require('helmet');
constrateLimit = require('express-rate-limit');
constmorgan = require('morgan');
const { errorHandler } = require('./utils/errorHandler');
constadminRoutes = require('./routes/admin');
constquestionnaireRoutes = require('./routes/questionnaire');
constresponseRoutes = require('./routes/response');
constapp = express();
app.use(helmet());
app.use(cors());
app.use(express.json());
app.use(morgan('dev'));
constlimiter = rateLimit({
windowMs: 15 * 60 * 1000,
max: 100
});
app.use('/api/', limiter);
app.use('/api/admin', adminRoutes);
app.use('/api/questionnaires', questionnaireRoutes);
app.use('/api/responses', responseRoutes);
app.use(errorHandler);
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server runningonport ${PORT}`);
});
10
482.ЧДТУ.52182-01 12 01
module.exports = app;
constbcrypt = require('bcrypt');
constjwt = require('jsonwebtoken');
constpool = require('../config/database');
const { JWT_SECRET, SALT_ROUNDS } = require('../config/constants');
const { AppError } = require('../utils/errorHandler');
classAdminController {
asynclogin(req, res, next) {
try {
const { username, password } = req.body;
const [admins] = awaitpool.execute(
'SELECT * FROM admins WHERE username = ?',
[username]
);
if (admins.length === 0) {
thrownewAppError('Invalidcredentials', 401);
}
constadmin = admins[0];
constvalidPassword = awaitbcrypt.compare(password, admin.password);
if (!validPassword) {
thrownewAppError('Invalidcredentials', 401);
}
consttoken = jwt.sign(
{ id: admin.id, username: admin.username, isAdmin: true },
JWT_SECRET,
{ expiresIn: '24h' }
);
res.json({ token });
} catch (err) {
next(err);
}
}
asyncgetDashboard(req, res, next) {
try {
11
482.ЧДТУ.52182-01 12 01
const [stats] = awaitpool.execute(`
SELECT
(SELECT COUNT(*) FROM questionnaires) astotal_questionnaires,
(SELECT COUNT(*) FROM responses) astotal_responses,
(SELECT COUNT(*) FROM questions) astotal_questions
`);
const [recentResponses] = awaitpool.execute(`
SELECT r.*, q.title
FROM responses r
JOIN questionnaires q ON r.questionnaire_id = q.id
ORDER BY r.created_at DESC
LIMIT 5
`);
res.json({ stats: stats[0], recentResponses });
} catch (err) {
next(err);
}
}
}
module.exports = newAdminController();
ДОДАТОК В
Розробка платформи для громадського опитування та аналізу
даних із візуалізацією результатів
Інструкція користувача
482.ЧДТУ.52182-01 34 01
Листів 4
Розробник: ____________ Владислав ОРЕЛ
Черкаси 2025
2
482.ЧДТУ.52182-01 34 01
Перед початком роботи необхідно переконатися, що на сервері
встановлені всі необхідні компоненти: Node.js для запуску серверної частини
та MySQL як система управління базами даних. Важливо мати доступ до
середовища, де буде розгортатися сервіс, з правами адміністратора для
налаштування бази даних і запуску серверного додатку.
Спершу потрібно створити базу даних у MySQL. Для цього слід увійти
в консоль MySQL і виконати команду створення нової бази даних,
наприклад, з іменем survey_db. Після створення бази необхідно налаштувати
користувача з відповідними правами доступу до цієї бази, забезпечивши
безпечний пароль. Ці дані будуть використовуватися для підключення
серверного додатку до бази.
Далі слід підготувати середовище для запуску Node.js додатку. Для
цього потрібно скопіювати файли серверної частини на сервер, де буде
здійснюватися запуск. У кореневій теці проекту необхідно відредагувати
файл конфігурації, вказавши параметри підключення до бази даних, такі як
хост, порт, ім’я бази, користувач та пароль. Також тут можна налаштувати
інші параметри сервісу, наприклад, порт для прослуховування HTTP-запитів.
Після налаштування конфігурації, в командному рядку слід перейти до
кореневої теки проекту і виконати команду для встановлення залежностей
через npm, наприклад, npminstall. Це дозволить завантажити всі необхідні
бібліотеки та пакети, необхідні для роботи сервера.
Коли залежності будуть встановлені, можна запустити серверний
додаток командою npmstart або іншим відповідним скриптом, який
передбачено в проекті. Після запуску сервер почне прослуховувати вказаний
порт і приймати запити від клієнтської частини.
Окремої налаштування потребує клієнтська частина, яка у цій системі
розміщується на CDN AWS CloudFront. Для адміністратора це означає, що
3
482.ЧДТУ.52182-01 34 01
форми опитувань та панель адміністратора завантажуються з хмарного
сервісу, що забезпечує високу швидкість доступу і стабільність роботи. Для
інтеграції клієнтських компонентів у власні сайти або системи адміністратор
може використовувати посилання на відповідні ресурси CDN.
Для першого запуску слід також переконатися, що серверна частина
має доступ до інтернету, щоб коректно працювати з CDN, а також має
налаштований доступ до бази даних MySQL. Важливо перевірити, що всі
необхідні порти відкриті і немає блокувань, які можуть завадити роботі
сервісу.
Після запуску сервера та перевірки доступності клієнтських
компонентів, адміністратор може увійти до панелі адміністратора через веб-
браузер, перейшовши за відповідною URL-адресою. Тут необхідно виконати
початкову конфігурацію системи, створити перші опитування, завантаживши
JSON-файли з описом структур форм, та налаштувати параметри збору і
аналізу даних.
Для подальшої роботи слід регулярно моніторити стан сервера,
оновлювати компоненти системи та забезпечувати безпеку середовища.
Резервне копіювання бази даних є обов’язковим для запобігання втраті
важливої інформації. Адміністратор також повинен стежити за оновленнями
клієнтських компонентів на CDN і при необхідності оновлювати посилання у
власних проектах.
Таким чином, послідовне виконання цих кроків дозволить
адміністраторам успішно розгорнути і запустити сервіс громадських
опитувань, забезпечуючи стабільну роботу та зручність використання як для
організаторів опитувань, так і для респондентів.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Ковальчук І. В., Петренко О. С. Електронне врядування в Україні: стан та
перспективи розвитку. — Київ : Наукова думка, 2020. — 212 с.
2. Мельник А. Ф., Сидоренко В. П. Інформаційна безпека: навч. посіб. —
Львів : ЛНУ імені Івана Франка, 2019. — 256 с.
3. Олійник Т. І. Захист персональних даних в інформаційних системах:
правові та технічні аспекти. — Харків : Право, 2021. — 198 с.
4. Романенко Л. М., Бондаренко Н. В. Веб-технології та веб-дизайн: навч.
посіб. — Одеса : ОНУ імені І. І. Мечникова, 2018. — 174 с.
5. Шевченко Д. О. Системи управління базами даних: теорія та практика. —
Дніпро : ДНУ імені Олеся Гончара, 2022. — 220 с.
6. Anderson R., Barton C., Bohm N. Security Engineering: A Guide to Building
Dependable Distributed Systems. — 3rd ed. — New York : Wiley, 2020. —
1184 p.
7. Bertino E., Sandhu R. Database Security: Concepts, Approaches, and
Challenges. // IEEE Transactions on Dependable and Secure Computing. —
2019. — Vol. 16, No. 1. — P. 2–17.
8. Fielding R. T., Reschke J. Hypertext Transfer Protocol (HTTP/1.1): Semantics
and Content. — RFC 7231, IETF, 2014. — 84 p.
9. Flanagan D. JavaScript: The Definitive Guide. — 7th ed. — Sebastopol :
O’Reilly Media, 2020. — 706 p.
10.Fowler M. Patterns of Enterprise Application Architecture. — Boston :
Addison-Wesley, 2003. — 560 p.
11.Garfinkel S., Spafford G., Schwartz A. Practical UNIX and Internet Security. —
3rd ed. — Sebastopol : O’Reilly Media, 2003. — 1000 p.
12.Gonzalez J. Web Development with Node and Express: Leveraging the
JavaScript Stack. — 2nd ed. — Sebastopol : O’Reilly Media, 2018. — 330 p.
Арк.
ЧДТУ.252182.008 ПЗ 79
Змн. Арк. № докум. Підпис Дата
13.Huang Y., Fox A. Web Application Security: A Beginner’s Guide. — New
York : McGraw-Hill Education, 2011. — 384 p.
14.Klein D. CSS: The Definitive Guide. — 4th ed. — Sebastopol : O’Reilly Media,
2017. — 1020 p.
15.Kumar S., Singh R. Data Privacy and Security: A Practical Guide for Engineers
and Scientists. — Boca Raton : CRC Press, 2019. — 320 p.
16.Lindstrom G. Secure Coding in C and C++. — Boston : Addison-Wesley, 2012.
— 384 p.
17.Martin R. C. Clean Code: A Handbook of Agile Software Craftsmanship. —
Boston : Prentice Hall, 2008. — 464 p.
18.Mitchell B. Web Security Testing Cookbook: Systematic Techniques to Find
Problems Fast. — Sebastopol : O’Reilly Media, 2008. — 312 p.
19.Myers G. J., Sandler C., Badgett T. The Art of Software Testing. — 3rd ed. —
Hoboken : Wiley, 2011. — 256 p.
20.Nielsen J. Usability Engineering. — San Francisco : Morgan Kaufmann, 1994.
— 362 p.
21.Owen G. Introduction to Cryptography with Java Applets. — New York :
Springer, 2013. — 276 p.
22.Pfleeger C. P., Pfleeger S. L. Security in Computing. — 5th ed. — Upper
Saddle River : Prentice Hall, 2015. — 944 p.
23.Schneier B. Applied Cryptography: Protocols, Algorithms, and Source Code in
C. — 20th Anniversary ed. — Hoboken : Wiley, 2015. — 784 p.
24.Shostack A. Threat Modeling: Designing for Security. — Indianapolis : Wiley,
2014. — 624 p.
25.Stallings W. Network Security Essentials: Applications and Standards. — 6th
ed. — Boston : Pearson, 2017. — 480 p.
Арк.
ЧДТУ.252182.008 ПЗ 80
Змн. Арк. № докум. Підпис Дата