Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/6197
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorОксамитна, Любов Павлівна-
dc.contributor.authorТкачук, Сергій Вікторович-
dc.date.accessioned2025-11-25T16:53:51Z-
dc.date.available2025-11-25T16:53:51Z-
dc.date.issued2023-06-14-
dc.identifier.urihttps://er.chdtu.edu.ua/handle/ChSTU/6197-
dc.description.abstractСьогодні в сучасній мережі інтернет існує безліч інформаційних веб-орієнтованих ресурсів, що присвячені роботі різного спрямування ресторанів чи то закладів харчування. Проблема створення якісних ресурсів цікавить завжди широке коло замовників, та все ж не дивлячись на значну зацікавленість саме цим питанням, єдиного підходу до створення такого інформаційного веб-орієнтованого ресурсу немає. Тому виникає необхідність в аналізі вже наявних інформаційних веб-ресурсів, аналітики для проектування і розробки інформаційного веб-ресурсу ресторану закладів суспільного харчування із застосуванням сучасних веб-технологій. Актуальність кваліфікаційної роботи бакалавра обумовлена необхідністю створення подібного веб-орієнтованого ресурсу, що надає можливість користувачам пришвидшити пошук необхідної інформації про продукцію та познайомитись основним меню ресторану. Мета кваліфікаційної роботи бакалавра – розробка веб-орієнтованого інформаційного ресурсу для автоматизації процесу замовлення продукції ресторану. Об’єкт дослідження: процес автоматизації замовлення продукції ресторану з використанням веб-технологій. Предмет дослідження: веб-орієнтований інформаційний ресурс для замовлення продукції ресторану.uk_UA
dc.language.isoukuk_UA
dc.subjectПРЕДМЕТНА ОБЛАСТЬuk_UA
dc.subjectВЕБ-ОРІЄНТОВАНИЙ ІНФОРМАЦІЙНИЙ РЕСУРСuk_UA
dc.subjectРЕСТОРАНuk_UA
dc.subjectЗАКЛАД ХАРЧУВАННЯuk_UA
dc.subjectПРОГРАМНІ ЗАСОБИ РЕАЛІЗАЦІЇ.uk_UA
dc.titleВеб-орієнтований інформаційний ресурс для замовлення продукції ресторануuk_UA
dc.typeBachelor Thesisuk_UA
Appears in Collections:122 Комп’ютерні науки (Комп’ютерні науки та прикладне програмування)

Files in This Item:
File Description SizeFormat 
Пояснювальна записка_Ткачук Сергій_КН-1901_2022-2023.pdf
  Restricted Access
3.13 MBAdobe PDFView/Open Request a copy


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

Extracted text
 
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
 
Факультет інформаційних технологій і систем 
 
Кафедра комп’ютерних наук та системного аналізу 
 
 
 
 
 
 
Пояснювальна записка 
до кваліфікаційної роботи 
бакалавра 
(освітньо-кваліфікаційний рівень) 
 
на тему: «Веб-орієнтований інформаційний ресурс для замовлення продукції 
ресторану» 
 
 
 
 
 
    Виконав: студент 4 курсу, групи КН-1901 
                                                              
спеціальності  122  «Комп’ютерні науки» 
                                                                         (шифр і назва спеціальності) 
  
освітня програма «Комп’ютерні науки та                                                                                                                             
(назва освітньої програми) 
прикладне програмування                                                                                                                                                              
                                                                       
 
Ткачук Сергій Вікторович 
 
Керівник __________   Оксамитна Л.П.     
                                                                          (прізвище та ініціали) 
 
Рецензент __________  Колесніков Д.В.             
                                                                          (прізвище та ініціали) 
    
 
 
 
 
 
 
 
 
Черкаси 2023 року 
 
Бланк завдання на кваліфікаційну роботу бакалавра студенту 
 
Черкаський державний технологічний університет 
Факультет Інформаційних технологій і систем 
Кафедра Комп’ютерних наук та системного аналізу 
Освітньо-кваліфікаційний рівень Бакалавр 
Спеціальність 122  – Комп’ютерні науки 
Освітня програма Комп’ютерні науки та прикладне програмування 
 
 
 
ЗАТВЕРДЖУЮ 
Завідувач кафедри КНСА  
_______________ Юрій ТРИУС 
«____» _____________ 2023 р. 
 
 
ЗАВДАННЯ 
на кваліфікаційну роботу бакалавра студенту 
Ткачуку Сергію Вікторовичу 
(прізвище, ім’я, по батькові) 
Веб-орієнтований інформаційний ресурс для замовлення продукції 
1. Тема роботи  ресторану 
                                  
 
Керівник роботи     Оксамитна Л.П., к.т.н., доцент                    
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання) 
затверджені наказом університету від «24» лютого 2023 р. №43/04. 
 
2. Строк подання студентом роботи до 12 червня 2023 року 
3. Вихідні дані до роботи:  
Практичні навики роботи з інформаційними ресурсами. Робота з базами даних. 
Звіт з виробничої практики. Звіт з переддипломної практики. 
4. Зміст пояснювальної записки (перелік питань, що їх належить розробити): 
Вступ 
4.1. Аналіз предметної області та постановка задачі. 
4.2. Проектування веб-ресурсу для замовлення продукції ресторану «Bakery».  
 
4.3. Створення веб-орієнтованого інформаційного ресурсу для замовлення продукції ресторану. 
4.4. Тестування веб-ресурсу.  
Висновки.  
 5. Перелік додатків (з точним зазначенням назв додатків): 
5.1. Додаток А. Специфікація 482.ЧДТУ. 31925-01. 
 5.2. Додаток Б. Текст програми. 
5.3. Додаток В. Інструкція користувача. 
 5.4. Презентація у вигляді 28 слайдів. 
 
 
6. Консультанти розділів роботи 
Прізвище, ініціали та Підпис, дата 
Розділ посада 
завдання видав завдання прийняв 
консультанта 
    
    
 
7. Дата видачі завдання 11.01.2023 
  
 
КАЛЕНДАРНИЙ ПЛАН 
Строк виконання 
№ з/п Назва етапів кваліфікаційної роботи бакалавра Примітка 
етапів роботи 
1 Видача завдання на кваліфікаційну роботу 
11.01.2023 Виконано 
бакалавра. 
2 Аналіз літературних джерел, об’єкту та 
до 13.02.2023 Виконано 
предмету дослідження. 
3 Написання теоретичного розділу 
до 15.03.2023 Виконано 
кваліфікаційної роботи бакалавра. 
4 Написання аналітичного розділу кваліфікаційної 
до 01.04.2023 Виконано 
роботи бакалавра. 
5 Написання практичних розділів й висновків до 
до 01.05.2023 Виконано 
кваліфікаційної роботи бакалавра. 
6 Передзахист кваліфікаційної роботи бакалавра 
01.06.2023 Виконано 
на засіданні кафедри КНСА. 
7 Подання роботи завідувачу кафедри КНСА. до 12.06.2023 Виконано 
8 Захист кваліфікаційної роботи бакалавра. 14.06.2023 Виконано 
    
    
    
 
 
Студент                                   _____________________________     Ткачук С. В. 
(підпис)                                                                     
 
Керівник роботи                     ____________________________       Оксамитна Л. П. 
                                           (підпис)      
 
 
                                                               
 
РЕФЕРАТ 
Кваліфікаційна робота бакалавра містить: 84 с., 31 рис., 1 таблицю, 20 
використаних джерел, 3 додатки. 
Актуальність теми. Сьогодні в сучасній мережі інтернет існує безліч 
інформаційних веб-орієнтованих ресурсів, що присвячені роботі різного 
спрямування ресторанів чи то закладів харчування. Проблема створення якісних 
ресурсів цікавить завжди широке коло замовників, та все ж не дивлячись на значну 
зацікавленість саме цим питанням, єдиного підходу до створення такого 
інформаційного веб-орієнтованого ресурсу немає. Тому виникає необхідність в 
аналізі вже наявних інформаційних веб-ресурсів, аналітики для проектування і 
розробки інформаційного веб-ресурсу ресторану закладів суспільного харчування із 
застосуванням сучасних веб-технологій. Актуальність кваліфікаційної роботи 
бакалавра обумовлена необхідністю створення подібного веб-орієнтованого 
ресурсу, що надає можливість користувачам пришвидшити пошук необхідної 
інформації про продукцію та познайомитись основним меню ресторану.  
Мета роботи і задачі дослідження. Мета кваліфікаційної роботи бакалавра – 
розробка веб-орієнтованого інформаційного ресурсу для автоматизації процесу 
замовлення продукції ресторану.  
Для досягнення поставленої мети були поставлені такі завдання: 
 дослідити предметну область ресторанного бізнесу; 
 здійснити аналіз існуючих програмних рішень у ресторанному бізнесі; 
 визначити вимоги до веб-орієнтованого інформаційного ресурсу; 
 побудувати концептуальні моделі веб-ресурсу для замовлення продукції 
ресторану та його бази даних; 
 створити веб-орієнтований інформаційний ресурс «Bakery» для замовлення 
продукції ресторану; 
 провести тестування веб-ресурсу «Bakery». 
 Об’єкт дослідження: процес автоматизації замовлення продукції ресторану з 
використанням веб-технологій. 
 
Предмет дослідження: веб-орієнтований інформаційний ресурс  для 
замовлення продукції ресторану.  
Методи дослідження. Для вирішення поставлених завдань були застосовані 
наступні методи дослідження: теоретичний (аналіз літератури з проблеми 
дослідження); емпіричний – полягав у спостереженні та налаштуванні веб-
орієнтованого інформаційного ресурсу для автоматизації процесу замовлення 
продукції ресторану;  порівняльний – для здійснення порівнянь існуючих 
програмних рішень у ресторанному бізнесі. 
Перелік ключових слів: ПРЕДМЕТНА ОБЛАСТЬ, ВЕБ-ОРІЄНТОВАНИЙ 
ІНФОРМАЦІЙНИЙ РЕСУРС, РЕСТОРАН, ЗАКЛАД ХАРЧУВАННЯ, ПРОГРАМНІ 
ЗАСОБИ РЕАЛІЗАЦІЇ.  
ABSTRACT 
Master’s work contains. 84 pages, 31 figures, 1 table, 20 sources used, 3 
attachments. 
Actuality of theme. Today, in the modern Internet network, there are many 
informational web-oriented resources dedicated to the work of various directions of 
restaurants or catering establishments. The problem of creating high-quality resources is 
always of interest to a wide range of customers, but despite the significant interest in this 
very issue, there is no single approach to creating such an informational Web-oriented 
resource. Therefore, there is a need to analyze already existing informational Web 
resources, analytics for designing and developing an informational web resource of 
restaurants and public catering establishments using modern web technologies. The 
relevance of the bachelor's qualification work is due to the need to create a similar web-
oriented resource, which allows users to speed up the search for necessary information 
about products and get acquainted with the main menu of the restaurant. 
Purpose and tasks of the research. The purpose of the bachelor's thesis is to 
develop a web-oriented information resource for automating the process of ordering 
restaurant products. 
 
To achieve this goal, the following tasks were set: 
 research the subject area of the restaurant business; 
 analyze existing software solutions in the restaurant business; 
 determine the requirements for a web-oriented information resource; 
 build conceptual models of the web resource for ordering restaurant products and its 
database; 
 create a web-oriented information resource «Bakery» for ordering restaurant 
products; 
 conduct testing of the «Bakery» web resource. 
The object of research: the process of automating the ordering of restaurant 
products using web technologies. 
The subject of research: web-based information resource for ordering restaurant 
products. 
Research methods: The following research methods were used to solve the tasks: 
theoretical (analysis of the literature on the research problem); empirical - consisted in 
observing and setting up a web-based information resource for automating the process of 
ordering restaurant products; comparative – for making comparisons of existing software 
solutions in the restaurant business. 
The list of keywords: SUBJECT FIELD, WEB-ORIENTED INFORMATION 
RESOURCE, RESTAURANT, FOOD ESTABLISHMENT, SOFTWARE. 
 7 
ЗМІСТ 
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, СКОРОЧЕНЬ І ТЕРМІНІВ ........ 9 
ВСТУП ................................................................................................................................ 10 
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ  .......................... 13 
1.1 Аналіз та опис предметної області …………………… ....................................... 13 
1.2 Аналіз існуючих сайтів різних видів ресторанів .................................................. 22 
1.3 Визначення основних вимог до програмного забезпечення та розробка 
технічного завдання ……………….. ............................................................................ 27 
Висновки до розділу 1 ................................................................................................... 28 
2 ПРОЕКТУВАННЯ ВЕБ-РЕСУРСУ ДЛЯ ЗАМОВЛЕННЯ ПРОДУКЦІЇ 
РЕСТОРАНУ «BAKERY»  ............................................................................................... 29 
2.1 Проектування архітектури програмного забезпечення ....................................... 29 
2.2 Детальне проектування програмного забезпечення ............................................. 35 
2.3 Проектування логічної моделі бази даних ............................................................ 36 
2.4 Проектування інтерфейсу користувача ................................................................. 37 
2.5 Аналіз та вибір технологій й методів реалізації інформаційного ресурсу…….40 
Висновки до розділу 2 ................................................................................................... 43 
3 СТВОРЕННЯ ВЕБ-ОРІЄНТОВАНОГО ІНФОРМАЦІЙНОГО РЕСУРСУ ДЛЯ 
ЗАМОВЛЕННЯ ПРОДУКЦІЇ РЕСТОРАНУ «BAKERY»  ........................................... 44 
3.1 Структура та функціональне призначення модулів ресурсу, їх взаємозв’язок . 44 
3.2 Інструкція користувача ........................................................................................... 48 
3.3 Технічні характеристики програмного забезпечення …………………………..53 
Висновки до розділу 3 ................................................................................................... 53 
4 ТЕСТУВАННЯ ВЕБ-РЕСУРСУ  .................................................................................. 55 
4.1 Вибір та обґрунтування методів тестування веб-ресурсу ................................... 55 
4.2 Розробка тестових наборів даних ........................................................................... 58 
Висновки до розділу 4 ................................................................................................... 61 
ВИСНОВКИ ....................................................................................................................... 62 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ......................................................................... 63 
 8 
Додаток А. Специфікація 482.ЧДТУ. 31925-01 ……………………………………… 65 
Додаток Б. Текст програми............................................................................................... 67 
Додаток В. Опис технічного завдання ............................................................................ 79 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 9 
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, СКОРОЧЕНЬ І ТЕРМІНІВ 
БД – база даних; 
ПЗ – програмне забезпечення; 
ОС – операційна система; 
HTML – Hyper Text Markup Language. 
 
 10 
ВСТУП 
На даний час доволі актуальною є тема створення веб-сторінок та веб-сайтів. 
Безумовно, розроблено багато веб-сайтів з різноманітними тематиками та 
напрямками. Сьогодні людство не може обійтися без використання сучасних веб-
ресурсів, які навкруги полегшують життя, забезпечують мінімальний час для 
пошуку необхідної інформації, дозволяють швидко здійснювати онлайн-покупки та 
різні замовлення і т.д. Неменш важливим є створення веб-ресурсів для ресторанного 
бізнесу. 
Актуальність кваліфікаційної роботи бакалавра. Сьогодні в сучасній мережі 
інтернет існує безліч інформаційних веб-орієнтованих ресурсів, що присвячені 
роботі різного спрямування ресторанів чи то закладів харчування. Проблема 
створення якісних ресурсів цікавить завжди широке коло замовників. Не дивлячись 
на значну зацікавленість саме цим питанням, єдиного підходу до створення такого 
інформаційного веб-орієнтованого ресурсу немає. Тому виникає необхідність в 
аналізі вже наявних інформаційних веб-ресурсів, аналітики для проектування та 
розробки інформаційного веб-ресурсу ресторану закладів суспільного харчування із 
використанням новітніх веб-технологій. Актуальність кваліфікаційної роботи 
бакалавра обумовлена необхідністю проектування та розробки такого веб-
орієнтованого ресурсу, що дозволить користувачам пришвидшити пошук необхідної 
інформації про бажану продукцію та познайомитись основним меню ресторану.  
Потреба в автоматизації процесів управління необхідна всюди, діяльності, в 
тому числі і для сфери обслуговування. Це обгрунтовано необхідністю врахування 
досить великої кількості різних можливих деталей. Зручність автоматизації таких 
процесів у закладах громадського харчування цілком очевидна, як з погляду 
власника, так і з позиції клієнтів. Тому, веб-орієнтовані  інформаційні ресурси дають 
змогу для персоналу закладу виконувати всі розрахунки з відвідувачами більш 
оперативно. 
Процес керування у ресторанному бізнесі завжди є досить складним та 
вимагає:  
 11 
 контролю за всім процесом обліку та поведінкою персоналу закладу;  
 обліку надходження продуктів;  
 аналізу всіх транзакцій;  
 процедур списання прострочених продуктів;  
 формування вартості страв та деяких напівфабрикатів;  
 дотримання санітарних та технологічних норм.  
Мета кваліфікаційної роботи бакалавра – розробка веб-орієнтованого 
інформаційного ресурсу для автоматизації процесу замовлення продукції ресторану.  
Для досягнення поставленої мети були поставлені такі завдання: 
 дослідити предметну область ресторанного бізнесу; 
 здійснити аналіз існуючих програмних рішень у ресторанному бізнесі; 
 визначити вимоги до веб-орієнтованого інформаційного ресурсу; 
 побудувати концептуальні моделі веб-ресурсу для замовлення продукції 
ресторану та його бази даних; 
 створити веб-орієнтований інформаційний ресурс «Bakery» для замовлення 
продукції ресторану; 
 провести тестування веб-ресурсу «Bakery». 
Об’єкт і предмет дослідження.  
Об’єктом дослідження є процес автоматизації замовлення продукції 
ресторану з використанням веб-технологій. 
Предметом дослідження є веб-орієнтований інформаційний ресурс  для 
замовлення продукції ресторану.  
Для вирішення поставлених завдань були застосовані наступні методи 
дослідження: теоретичний (аналіз літератури з проблеми дослідження); емпіричний 
– полягав у спостереженні та налаштуванні веб-орієнтованого інформаційного 
ресурсу для автоматизації процесу замовлення продукції ресторану;  порівняльний – 
для здійснення порівнянь існуючих програмних рішень у ресторанному бізнесі. 
 12 
Практична  значимість  полягає в можливості використання спроектованого 
веб-ресурсу для інформаційної підтримки діяльності ресторану «Bakery», в першу 
чергу, для завоювання лояльності відвідувачів ресторану.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 13 
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ 
1.1 Аналіз та опис предметної області 
Виходячи із ситуації, що на даний момент склалася на ринку прогресуючого 
ресторанного бізнесу, де власне конкуренція з кожним роком все більше зростають 
та збільшуються додаткові вимоги клієнтів до якості отримуваних послуг, що 
надаються, потрібно приділяти особливу увагу заходам по залученню і всілякому 
утриманню клієнтів організацій громадського харчування. Просування можливих 
послуг ресторану розглядаються саме як комплекс необхідних заходів по доведенню 
такої інформації до кінцевого клієнта про ресторан та його особливі переваги. Тому 
необхідно всіляко привернути увагу клієнта і можливо переконати його 
скористатися запропонованими закладом послугами. 
Робота ресторану на даний момент пов'язана з наявністю достатньо великої 
кількості інформації про наявні меню, особисті данні про співробітників, рахунки 
закладу тощо. Крім того, закладам громадського харчування необхідно вирішувати 
важливі завдання, такі як збільшення прогнозованого доходу та управління 
можливими змінами в ресторані/пекарні, аж до наступної зміни концептуальної 
спрямованості, на підставі результатів попереднього опитування клієнтів даного 
закладу, ресторану. 
Актуальність даної роботи викликана тим, що переважна більшість закладів 
громадського харчування в якості інформаційної підтримки певної діяльності 
застосовує веб-сайти, основним завданням яких є надання інформації про концепцію 
закладів, відповідне меню, реально діючі суттєві пропозиції й т.п. Разом з цим 
керівництво та адміністрація ресторану має вплив на ступінь лояльності клієнтів, 
завдяки впровадженню на сайті додаткових сервісів.  
Отже, що наявність власної візитної картки в мережі Інтернет дозволить 
забезпечити якісну інформаційну підтримку для кожного закладу громадського 
харчування.  
 14 
Ресторанний бізнес – це сфера підприємницької діяльності, що грунтується на 
наданні послуг, метою яких є задоволення потреб в харчуванні на сервісній основі і 
як наслідок – отримання прогнозованого та очікуваного прибутку [1]. 
Громадське харчування – це власне сфера надання послуг, а значить і головна 
задача цього сектора – зробити клієнтів задоволеними на той час, що вони 
знаходяться в даному ресторані (пекарні, кафе, барі або іншому типі закладу).  
Присутність конкурентної боротьби на існуючому ринку ресторанних послуг 
змушує менеджмент закладів виконувати деякі вимоги, наприклад, такі як пряму 
необхідність збільшення продуктивності і також посилення конкурентної позиції, а 
це неминуче пов'язане з запровадженням в повсякденне життя нових сучасних форм 
в обслуговуванні. Основою таких форм є – анімаційні програми, за допомогою яких 
може збільшитися кількість постійних відвідувачів в залі пекарні громадського 
харчування чи пекарні. 
Підприємництво в ресторані є досить успішним, якщо головною метою його є 
задоволення основних потреб відвідувачів. Тож власник ресторану і колектив 
зацікавлені саме у формуванні сприятливих умов перебування у своєму закладі для 
підвищення популярності. Адже при досить великій конверсії відвідуваності значно 
збільшиться і сама сума середнього чека на кожного відвідувача, що вплине на 
збільшення обсягу подальших продажів. Діяльність ресторану / пекарні можна 
представити у вигляді деякої системи, що складається з двох основних підрозділів: 
виробництво і подальший збут готової продукції. Головні цілі – задовольнити всі 
потреби конкретних споживачів, а також отримати прибуток на основі проведеного 
дослідження й прогнозування ринку. Для досягнення поставлених задач вивчається 
внутрішнє і зовнішнє середовище всього закладу, розробляється подальша стратегія 
і тактика наступної поведінки на ринку за допомогою використаних маркетингових 
технологій. 
В основі використання даних технологій лежить певний комплекс необхідних 
заходів щодо поліпшення якості створюваної продукції, по подальшому 
розширенню асортименту товарів та послуг, вивчення споживачів і конкурентів, по 
 15 
забезпеченню встановленої цінової політики, щодо формування, оптимізації, 
рекламування, каналів подальшого руху товару і створення організації збуту.  
Вся виробнича діяльність з продажу товарів ресторану починається з 
сегментування всього ринку, тобто з розбивки його на деякі групи споживачів, для 
кожної з яких все ж повинні бути запропоновані різні види готової продукції і 
наданих послуг. Від того, наскільки були правильно обрані сегменти самого ринку, 
так багато в чому залежить весь успіх ресторану в конкурентній боротьбі. 
Організації сфери ресторанного бізнесу повинні вирішити, скільки сегментів 
ринку вони зможуть охопити, і зосередитися там на найбільш вигідних. 
Зараз в індустрії громадського харчування України знаходиться багато 
закладів з різним рівнем сервісу, належною якістю продукції та різноманітністю 
відповідного обладнання.  
На передодні 50-х років XX століття галузь взагалі не отримувала такого 
розвитку, тому як увага всієї України була спрямована на більш загальну 
індустріалізацію та організацію колгоспного господарства. У наступні повоєнні 
роки мережа закладів громадського харчування стрімко почала розширюватися: тож 
збільшився асортимент основних страв, покращилося забезпечення закладів 
технологічним та холодильним новим устаткуванням, підвищилася взагалі культура 
під час обслуговування відвідувачів. Певною особливістю тої системи громадського 
харчування було саме швидке обслуговування населення в промисловості та в 
різних галузях господарства. Саме у цей період заклад громадського харчування 
досить активно займався виїзною реалізацією вже готової продукції, що також 
створювало деякі труднощі В кінці 80-х років XX століття більшість закладів 
громадського харчування почали працювати лише на основі господарського 
розрахунку, тобто вони все ж мали самостійний баланс. Почали відкривати 
поширені на той час, кооперативні закладу громадського харчування, хоч велика їх 
частина з них все ще залишилася в складі державних торгових організацій. 
В період переходу на ринкові відносини, а саме в 90-х роках 20  століття 
розпочали формуватися досить невеликі, добре самоокупні компанії з високим 
рівнем їх сервісу та якістю приготування їжі. Основною характерною особливістю 
 16 
таких закладів харчування є поєднання в ньому функцій виготовлення, а також 
головним є споживання продукції. 
Якщо ж переважна більшість закладів суміжних галузей раніше обмежували 
себе виконанням тільки однієї або ж двох функцій, то заклади громадського 
харчування можуть виконувати основні три взаємопов'язані поміж собою функції, 
наприклад такі як: виробництво кулінарної продукції, продаж виготовленої 
продукції, організація та її споживання.  
Функція виробництва вважається вихідною, витрати праці якої складають 70-
90% всіх можливих витрат в цій галузі. Так в процесі виробництва створюється 
новий продукт. Продукція власного виробництва відразу надходить в реалізацію до 
кожного нового споживача з новими якостями, характеристиками і збільшеною 
вартістю. Харчування – це така форма споживання. В основі різноманіття всіх 
закладів харчування лежить власне їх класифікація, в основу якої закладено і такі 
ознаки: асортимент реалізованого товару та види послуг для всього населення, обсяг 
та різновид наданих послуг, ступінь в зручності і якості всього обслуговування, 
форми для організації виробництва, циклічність всього функціонування протягом 12 
місяців роботи, рівень мобільності (та місце дислокації), спосіб особливості 
розміщення закладів в різних будівлях. 
Заклади громадського харчування найчастіше розрізняються за певним 
характером виробництва, та наведеним асортиментом виготовлення продукції, що 
випускається, за обсягом і видом послуг, що надаються. Найбільш поширеними 
закладами харчування вважаються саме ресторани, пекарні, кафе, бари, їдальні, 
заклади швидкого обслуговування. Вони можуть постійно працювати на різній 
сировині чи напівфабрикатах, бути постійно в системі мережі або незалежними, та з 
різною формою власності. Закладам для такого типу пред'являють все ж досить 
жорсткі вимоги. Вони також відносяться до зовнішнього вигляду самого закладу та 
оформлення залів обслуговування і приміщень для власне споживачів, наявності 
сцени і танцювального майданчика, бажано банкетного залу або ж навіть закритих 
(окремих) залів, організованого мікроклімату, особливих меблів, нового столового 
посуду і сучасних приладів, завжди чистої столової білизни, меню продукції і 
 17 
асортименту всієї своєї продукції та покупних товарів, переліку методів 
обслуговування своїх споживачів, індивідуального одягу і взуття обслуговуючого 
персоналу, та музичного супроводу. 
У вітчизняній та зарубіжній літературі все ж можна наштовхнутися на 
найрізноманітніші різні думки про роль веб-сайту в діяльності кожної компанії. 
Будь-який сучасний комерційний заклад, що прагне до отримання максимального 
прибутку, воно повинно мати власний індивідуальний веб-сайт, який завжди є 
ефективним інструментом не тільки для збільшення можливих обсягів продаж, але і 
з метою основних маркетингових досліджень в споживчому середовищі, а також 
організації та налаштуванні зворотного зв'язку з власними покупцями. Це 
нематеріальний актив всієї компанії, який відрізняє весь сучасний бізнес.  
Компанія без сайту – це те саме, що ділова людина сьогодні без візитної 
картки. Щоб скористуватися можливостями веб-сайту з максимальною 
ефективністю, то необхідно чітко розуміти, які завдання сформовані та вирішуються 
за допомогою сайту. В основі веб-сайту повинна лежати певна бізнес-модель, яка є 
ключовою моделлю існуючого бізнесу, моделлю створення новітнього сучасного 
бізнесу в Інтернет. 
Веб-сайт можна порівняти з деякими традиційними виставками. Його можна 
представити, як досить великий міжнародний виставковий зал, де у потенційних 
замовників є шанс вступити в безпосередній контакт з потенційним продавцем і 
відвідати презентовану онлайн експозицію. Веб-сайт виконує роль не тільки 
рекламного інструменту, але також інструменту особистих продажів. Крім цього, 
веб-сайт – це щось середнє між основними прямими продажами (підтримання 
діалогу зі споживачем) і створеною рекламою (підвищення інформованості, надання 
інформації без інтерактивної участі і демонстрація продукту ). 
Таким чином, всі рекламні комунікації, які також створюють потік нових 
відвідувачів на сайті, повинні не тільки містити в собі деякі активні і пасивні 
комунікації, а й залучати всілякі он-лайн та офлайн-інструменти. 
За рахунок персонального веб-сайту зростає значна ефективність проведених в 
мережі всіх рекламних заходів. Інформація про залишені відгуки відвідувачів на 
 18 
сайті може також відразу потрапляти в створену інформаційну систему компанії і 
служити для все більш якісного обслуговування. Варто зробити деякий висновок, 
що сайт є основою всієї системи комунікацій в Інтернеті. 
В цілому ж всі перераховані маркетингові завдання, які виконуються сайтом, 
зводяться до деяких наступних основних завдань: здійснення і збільшення рівня 
продаж, формування та всіляку підтримку іміджу, надання різного роду збереженої 
інформації, формування каналу зворотного зв'язку з кожним споживачем. 
Сайт компанії – один з самих головних комунікативних рекламних 
інструментів, що застосовані в Інтернет. Споживачі компанії є основною цільовою 
аудиторією створеного веб-сайту, але не єдиною. За допомогою веб-сайту компанія 
має можливість взаємодіяти з своїми партнерами, акціонерами, ЗМІ та іншими 
можливими контактними аудиторіями.  
Офіційний веб-сайт являє собою досить потужний механізм з розвитку і 
підтримки іміджу товарів, сприяє зростанню популярність бренду. Сайт повинен 
розміщувати всю потрібну інформацію про компанію, а також про сферу її 
діяльності, вироблені  продукти, товари і пропоновані послуги.  
Веб-сайт може бути основним майданчиком для необхідного забезпечення 
зворотного зв'язку з споживачами закладу. 
Головні характеристики веб-сайту можна також охарактеризувати моделлю, 
яка містить наступні елементи [1]: 
1) Контекст (Context): баланс між функціональним і естетичним змістом сайту, 
його оформленням та дизайном. Сайт може бути: 
 Естетично-орієнтованим, коли вигляд його веб-сторінки є в пріоритеті; 
 функціонально-орієнтованим; 
 гібридним, якщо сайт ефективний естетично. 
2) Зміст (Content): тексти, зображення, фотографії, музика і також відео.  
3) Ступінь об'єднання (Community): способи, які забезпечують 
користувачам веб-орієнтованого ресурсу підтримувати зв'язок між собою. За 
здатністю солідних корпоративних сайтів забезпечити підтримку. У цьому випадку 
їх все ж можна умовно розділити на три основні види: 
 19 
 сайти, які не забезпечують своїм користувачам можливість взаємодії між 
собою; 
 обмежені сайти, які не пропонують нічого, окрім читання та розміщення 
відгуків про наявні товари й послуги компанії;  
 сайти, які пропонують інтерактивні функції, месенджери як чати і дошки 
швидких оголошень.  
4)  Комунікації (Communication): здатність сайту здійснювати двосторонній 
зв'язок між представником компанії і споживачем.  
5) Зв'язок (Connection): ступінь взаємозв'язку конкретного ресурсу з 
іншими сайтами за допомогою розміщення посилань, партнерських програм.  
6) Комерція (Commerce): можливості корпоративних сайтів по здійсненню 
комерційних угод. Так, сайти компаній, які здійснюють електронну торгівлю, мають 
можливість зареєструвати клієнтів, зберігати інформацію про переваги, контакти 
замовника і параметри доставки зробленого замовлення.  
7) Кастомізація (Customization): здатність ресурсу надавати інформацію та 
додаткові можливості різних сегментів споживачів, можливість персоналізації. 
Серед ключових компонентів корпоративного ресурсу можна виділити:  
 наявність зручних контактних даних (адреса, телефон та ін.);  
 зрозумілий всім інтерфейс (логічна структура, читабельність  текстів);  
 зовнішня та внутрішня привабливість; 
 наявність корпоративної інформації (звіти, посередники і точки продажів, 
можливості працевлаштування);  
 відстеження знаходження товару по трек-номеру;  
 можливості персоналізації і збереження персональних налаштувань;  
 можливості вибору та здійснення онлайн-покупки (можливість оплати, 
особливості утворення ціни).  
Веб-орієнтований ресурс повинен включати деяку характеристику, таку як 
демонстрація надійності ресурсу, і бути заснованим на корпоративному іміджі та 
покращення репутації, які існують за межами мережі Інтернет [1]. 
 20 
Крім цієї загальної характеристики до головної складової такого ресурсу 
відносять: 
 тип доменного імені;  
 інформацію про продукт;  
 можливості персоналізації;  
 контактна інформація; 
 мовні можливості. 
Тому, існує перелік деяких характеристик веб-орієнтованого ресурсу 
комерційної компанії.  
Основні характеристики веб-ресурсу комерційної компанії представлені в 
описаних характеристиках таблиці 1.1.  
Таблиця 1.1 – Основні виділені характеристики ресурсу  
Пункт Характеристика 
 Інформація  
1 Наявність інформації про наявні функції, властивості, ціни товару  
2 Наявність деякої корпоративної інформації (фінансові звіти, вакансії, 
мета)  
3 Наявність контактної інформації відвідувача (телефон, адреса)  
4 Наявність інформації про деякі тенденції галузі, галузеві огляди  
5 Наявність підрозділу «Питання які найчастіше можуть задавати»  
6 Наявність позитивних відгуків про компанію і страви  
7 Історія компанії  
 Привабливість  
8 Наявність якісного фото товару та відео про товар  
9 Оформлення і привабливість самого ресурсу  
10 Фотографії щасливих клієнтів  
11 Фотографії всього персоналу компанії та її керівника  
 Простота  
12 Простота навігації  
 21 
13 Ясність та зрозумілість тексту  
 Додаткові можливості  
14 Наявність основних інструкцій по використанню, поради по підбору 
моделей, розміру, кольору  
15 Можливість збереження персональних налаштувань  
16 Наявність реклами від інших компаній  
17 Наявність онлайн гри та інших можливих розваг  
18 Можливість безкоштовного завантажування додаткових програм  
 Зворотній зв'язок  
19 Можливість здійснити онлайн-покупку  
20 Онлайн-діагностика виникаючих проблем при використанні товару  
21 Можливість відстежувати статус замовлення і його місце знаходження  
Компанія – це цільова аудиторія споживачів, які отримують фірмовий товар і 
як правило, не потребують додаткових вкладень коштів в розвиток. Основним 
завданням такої компанії буде використання свого веб-орієнтованого сайту, як 
додаткового інструменту подальшого формування іміджу.  
Головними вимогами до подібних веб-ресурсів є: зовнішня привабливість та 
дизайн, інформація про товар і та спеціальні пропозиції [1]. 
Контент – це найважливіша складова, яка приваблює нових відвідувачів, 
гарантує ефективну монетизацію відповідних послуг.  
Зараз медіа-контент – це вже не тільки певна інформація, представлена у 
вигляді деяких текстів та інших форм передачі деякої інформації: зображення, 
музика, відео, а також безліч інших надсучасних рішень, включаючи карти й 
матеріали.  
Класифікація інформації за формою її подачі:  
1) Текст. Це поняття сьогодні включає в себе різноманітну кількість 
рішень: вбудовані музика зображення, відеоролики, та інше. Будь-який текст в 
інтернеті представлений у вигляді HTML, отже, елементом контенту буде і 
вбудоване форматування, яке включає в себе виділення заголовків (жирний і 
курсив), а також вбудовані гіперпосилання.  
 22 
2) Фотографії. Вони виступають найбільш популярним видом графічного 
контенту. Більшість створених веб-сайтів використовують цей контент не як окрему 
складову, а в сукупності з текстом, який добре доповнює його. В час, коли цифрові 
фотоапарати та мобільні телефони з якісними вбудованими камерами зайняли своє 
місце в житті кожної сучасної людини, стрімко зросли і об’єми фото-хостингів, що 
представляють собою найбільші сховища даних фото-контенту в мережі.  
3) Відео. Даний вид контенту набув свого розвитку набагато пізніше 
фотографій. Він вимагає значно ширших каналів доступу до Інтернету для 
перегляду і завантаження та цифрових відеокамер чи мобільних телефонів з 
можливістю запису відео. Першим місце для розміщення відеофайлів посідає 
YouTube, а після стали з'являтися інші відео-сервіси.  
4) Аудіо. Певний ряд існуючих хостингів, які дають змогу завантажити 
власні підкасти або треки та прослухати їх. Досить часто аудіо-файли стають 
частиною текстового контенту електронних ЗМІ. 
5) Інші деякі види контенту. Сучасні інформаційні технології пропонують 
багато цікавих та різноманітних рішень для створення й доставки контенту, 
включаючи відео-трансляції в реальному часі, інтерактивні карти. Звісно, цей 
перелік видів контенту буде постійно зростати відповідно існуючих веб-технологій 
та потреб.  
1.2 Аналіз існуючих сайтів різних видів ресторанів 
На ринку сьогодення існує безліч веб-орієнтованих інформаційних ресурсів та 
сайтів, які представляють різні види ресторанів. Розглянемо деякі з них. 
Сайт ресторану «Цукерня-Потоцьких» (рис. 1.1). Даний веб-орієнтований 
сайт не дає повної інформації про цей ресторан. Він більше підходить для 
користувачів соціальної мережі Instagram або Facebook, бо саме тут здійснюється 
обмін фотографіями та відео.  
Серед недоліків сайту також можна зазначити відсутнє меню та короткий опис 
страв. На сайті не відображено можливість зробити замовлення. На перший погляд 
 23 
сайт виглядає привабливо, але не зовсім зрозуміла тут головна концепція цього 
ресторану.  
 
Рисунок 1.1 – Загальний вигляд сайту ресторану «Цукерня-Потоцьких» 
На рис. 1.2 можна побачити фрагмент сайту ресторану «Цукерня-Потоцьких».  
 
Рисунок 1.2 – Фрагмент сайту ресторану «Цукерня-Потоцьких» 
 24 
Розглянемо сторінку ще одного ресторану – ресторан «Діоскурі» (рис. 1.3). 
 
Рисунок 1.3 – Фрагмент сайту ресторану «Діоскурі» 
Ресторан «Діоскурі» має сайт, на якому розміщено досить багато фотографій, 
але довідкова інформація що потрібна користувачам займає не основне місце і 
написана досить малим шрифтом, що ускладнює її перегляд користувача.  
Також проаналізовано веб-орієнтований сайт ресторану «Sobkoff» (рис. 1.4).  
 
Рисунок 1.4 – Загальний вигляд сайту ресторану «Sobkoff» 
 25 
Це ресторан, який позиціонує себе як привабливий ресторан сімейного типу. 
Тут є для дітей ігровий майданчик та місце для прогулянок. На жаль про це на сайті 
не заявлено. 
Дивлячись на рис. 1.5 видно, що це повноцінний сайт, який містить контактну 
інформацію та наявність відгуків про ресторан. Він задовольняє всі характеристики, 
які притаманні веб-орієнтованим сайтам. 
Можна змінити мову, написати відгук. На сайті є: фото та відео залів, блюд та 
номерів; привабливе оформлення. Привабливим у цьому сайті його зручна і проста 
навігація.  Серед позитивних моментів є те, що текст в наповненні сайту доступний, 
зрозумілий, із картою його місця розташування.  
 
Рисунок 1.5 – Фрагмент сайту ресторану «Sobkoff» 
Отже,  сайту ресторану «Sobkoff» є привабливим із досить зручним 
інтерфейсом, зрозумілою та привабливою навігацією, наявністю зворотного зв’язку. 
Прикро те, що не вся інформація про ресторан розміщена на сайті. 
 26 
Також в ході написання роботи проаналізовано веб-орієнтований сайт 
ресторану «Bakerstreet» (рис. 1.6).  
 
Рисунок 1.6 – Загальний вигляд сайту ресторану «Bakerstreet» 
Це ресторан, який позиціонує себе як привабливий ресторан сімейного типу. 
Особливо він приваблює людей, які мають дітей та полюбляють солодощі. Тут є 
великий спектр пропозицій різноманітних смаколиків, що приваблює клієнтів. 
На рис. 1.7 представлено фрагмент сайту ресторану «Bakerstreet».  
 
Рисунок 1.7 – Фрагмент сайту ресторану «Bakerstreet» 
 27 
Варто зазначити, що сайт привабливий також з точки зору гами кольорів та 
висвітлення фото запропонованої продукції. На мою думку тут дещо можна 
використати для власної розробки. 
В кваліфікаційній роботі бакалавра на основі проведеного аналізу сформовано 
таблицю порівнянь існуючих рішень розглянутих реалізацій (табл. 1.1). У якості 
критеріїв для порівняння було обрано: дизайн; зручність; функціональність; 
атмосфера; можливість замовлення. 
Таблиця 1.1 – Таблиця порівнянь існуючих рішень розглянутих реалізацій 
Назва сайту 
Критерії порівняння 
«Цукерня-
сайтів «Діоскурі» «Sobkoff» «Bakerstreet» 
Потоцьких» 
Дизайн 
2 2 4 5 
(0-5) 
Зручність 
3 3 4 5 
 (0-5) 
Функціональність 
3 2 3 4 
(0-5) 
Атмосфера 
2 2 5 4 
(0-5) 
Можливість замовлення так ні ні так 
 
1.3 Визначення основних вимог до програмного забезпечення та розробка 
технічного завдання  
Основною метою кваліфікаційної роботи бакалавра є створення веб-
орієнтованого інформаційного ресурсу «Bakery». Розроблений ресурс повинен мати 
зручний та зрозумілий інтерфейс, де розглянуто розділи:  
 меню; 
 відгуки;  
 страва дня;  
 контактна інформація; 
 28 
 можливість замовити он-лайн з доставкою;  
 опис блюда з фото;  
 здійснення оплати платіжною карткою;  
 зміна мови;  
 години роботи.  
У додатку В представлено опис технічного завдання, яке розроблено згідно 
проведеного аналізу.  
Висновки до розділу 1 
В цьому розділі проведено дослідження предметної області й визначено 
основні функціональні та нефункціональні вимоги до розроблюваного веб-
орієнтованого інформаційного ресурсу для замовлення продукції ресторану. Також 
описано постановку задачі та проведено аналіз існуючих веб-орієнтованих 
інформаційних сайтів ресторанів з їх характеристикою.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 29 
2 ПРОЕКТУВАННЯ ВЕБ-РЕСУРСУ ДЛЯ ЗАМОВЛЕННЯ ПРОДУКЦІЇ 
РЕСТОРАНУ «BAKERY» 
2.1 Проектування архітектури програмного забезпечення 
Архітектура веб-орієнтованого інформаційного ресурсу визначає концепцію, 
що створює структуру і взаємозв’язки між компонентами інформаційного ресурсу. 
Найбільш вживаними та вдалими в наш час вважаються інформаційні веб-
ресурси із застосуванням CMS. Цим обгрунтовано її вибір. 
Даний веб-орієнтований інформаційний ресурс містить такі компоненти, як: 
плагіни, шаблони, теми, веб-сторінки та базу даних. Його архітектуру можна 
розглянути на рис. 2.1. 
  
 
Рисунок 2.1 – Архітектура інформаційного веб-ресурсу 
 
 30 
Шаблони та стандартні теми включають в себе відповідний набір файлів, що 
відповідають за зовнішній вигляд розроблюваного ресурсу. Такі дані зберігаються в 
папці wpcontent / themes.  
Плагіни є деяким доповненнями, які розширюють значно функціональність і 
допомагають у даній розробці. Вони зберігаються у папці wp- content / plugins. 
В створеній базі даних (БД) зберігається вся існуюча інформація, що 
представлена у веб-орієнтованому інформаційному ресурсі. Тут є інформація про 
зареєстрованих користувачів, різні додаткові налаштування, інформація про 
послуги, меню, склад блюд тощо [2]. 
Сторінки переважно становлять статичні елементи, на яких розміщується вся 
інформація, що призначена для відображення користувачам. Відображення вмісту 
файлів веб-ресурсу зображено на рисунку 2.2. 
  
  
Рисунок 2.2 – Вміст файлів проекту 
 31 
Пройшовши етап основного дослідження всіх складових, що мають 
відношення до веб-ресурсу для замовлення продукції ресторану, визначено ціль 
його проведення та задачі для виконання. Для цього сформовано певний перелік 
вибраних функцій, які будуть включені в розроблюванийвеб-ресурс та способи їх 
втілення.  
Наступний етап – це етап створення веб-ресурсу. Це свідчить про те, що буде 
використано розробку новітніх ІТ-технологій, які ще не достатньо відомі широкому 
загалу, але необхідні для задоволення основних потреби користувачів.  
Початком розробки веб-ресурсу є створення контекстної діаграми. Діаграма 
містить досить короткі, місткі та лаконічні дані, які відображають особливості 
взаємодії веб-орієнтованого інформаційного ресурсу та всього оточення і описують 
їх зміст [19].  
Визначимо важливі складові даної діаграми: 
 інформація та матеріали, які належать частині ідентифікації ресурсу та 
вважаються вхідними даними; 
 дані, які є інструментами – персонал закладу, технічне забезпечення, програми 
які проводять аналіз найбільш важливих елементів діаграми; 
 результати, до яких призведе втілення ресурсу в повсякденне життя та які 
виступають вихідними даними; 
 інформаційні дані та дані матеріального характеру, які забезпечують 
реалізацію веб-ресурсу; 
 замовлення клієнта на веб-ресурсі це і є вхідні дані; 
 вихідні дані – замовлення, що вже готове із відповідним чеком;  
 правила сервісу, офіційні закони та положення України, умови оплати для 
клієнта відносяться до управління;  
 механізми – це адміністратор закладу та його ресторатор.  
Контекстна діаграма розробки веб-ресурсу для замовлення продукції 
ресторану має такий вигляд, як зображено на рисунку 2.3 [19].  
 
 32 
 
Рисунок 2.3 – Контекстна діаграма розробки веб-орієнтованого 
інформаційного ресурсу для замовлення продукції ресторану 
Загальна властивість контекстної діаграми полягає в зображенні головної суті 
веб-орієнтованого інформаційного ресурсу, що потребує необхідності створення 
декомпозиції.  
Декомпозиція відображає дані про особливості роботи веб-ресурсу.  
Принципи декомпозиції:  
 обрання страви з меню;  
 клієнтське замовлення;  
 звіт по оплаті – здійснена оплата чи не відбулась. 
Якщо проведена оплата, то здійснюється видача чеку, а в противному випадку 
потрібно звернутись до служби підтримки. Декомпозиція діаграми представлена на 
рис. 2.4. 
В діаграмі варіантів використання неменш важливим є планування розробки 
веб-ресурсу. Така діаграма є найпростішою з поведінкових діаграм та відображає 
 33 
результат взаємодії між акторами та прецендентами,  дозволяючи отримати 
інформацію про функціонал веб-ресурсу та показує взаємодію актора [3, 14, 19]. 
 
Рисунок 2.4 – Декомпозиція діаграми 
В створеній та представленій діаграмі є такі користувачі, як User Customer. Це 
користувачі, які обирають необхідну систему та збираються взаємодіяти з нею. Коли 
відібрано всіх потенційних користувачів системи, то формується перелік всіх 
варіантів взаємодії з нею. Відповідно до вимог вибираються варіанти, яким 
відповідає веб-ресурс для замовлення продукції ресторану.  
Діаграма Use Case розроблена завдяки інформації що надається, про 
користувачів веб-ресурсу та наявних варіантів взаємодії з ними [14].  
В діаграмі представлено три типи користувачів (юзерів).  
Фіолетовим кольором визначається загальні дії. Решта відповідно до кольору 
кожного юзера.  
Варіанти використання веб-ресурсу:  
 реєстрація;  
 перегляд ресторанів та меню;  
 авторизація;  
 перегляд історії оплати та замовлень;  
 34 
 залишати відгуки; 
 розміщення ресторану та меню;  
 перегляд заробітку та витрат  ресторану;  
 пошук по веб-ресурсу;  
 онлайн-оплата;  
 додавати в улюблене;  
 підтримка юзерів;  
 підтримка веб-ресурсу;  
 налаштування влассного профілю в особистому кабінеті.  
На основі зібраних даних про існуючих користувачів та всіх варіантів 
використання веб-орієнтованого інформаційного ресурсу для замовлення продукції 
ресторану розроблена Use Case діаграма (рис. 2.5).  
  
 
Рисунок 2.5 – Діаграма варіантів використання 
 35 
2.2 Детальне проектування програмного забезпечення 
Для кращого розуміння всього того, як саме буде виглядати власний веб-
ресурс для замовлення продукції ресторану в роботі представлено його архітектуру. 
Тут також виконано проектування логіки та певного розуміння про роботу веб-
ресурсу та що виконано для його роботи.  
Головним елементом веб-ресурсу є власне сервер, за допомогою якого 
функціонує весь ресурс та підключається база даних (за допомогою неї проходить 
обмін даними). Всі компоненти, плагіни та модулі це саме ті складові, які 
приймають участь у створенні веб-ресурсу [2].  
 
  
Рисунок 2.6 – Архітектура веб-додатку 
 36 
2.3  Проектування логічної моделі бази даних 
Основою будь-якого сучасного інформаційного ресурсу є його база даних. 
Моделлю бази даних називається графічне або ж текстове представлення БД, де 
виділяються основні сутності, атрибути та зв’язки між ними [3]. 
Згідно побудованої моделі варіантів використання веб-орієнтований 
інформаційний ресурс, що розробляється в кваліфікаційній роботі бакалавра,  має 
зберігати всю необхідну інформацію в базі даних. 
База даних складається з 11 основних таблиць, необхідних для роботи 
програмного продукту. 
  
 
Рисунок 2.7 – База даних веб-орієнтованого інформаційного ресурсу 
  
Розглянемо більш детально назви та вміст всіх цих таблиць.  
 37 
 Таблиця wp_commentmeta зберігає метадані всіх написаних коментарів на 
сторінках та в записах. 
 Таблиця wp_comments зберігає всі існуючі коментарі, які опубліковані та вже 
схвалені, отриманий спам та ті, які ще очікують перевірки документу. 
 Таблиця wp_links зберігає інформацію про всі посилання в менеджері. 
 Таблиця wp_options включає в себе налаштування та зберігає дані із 
встановленних тем та плагінів. 
 Таблиця wp_postsmeta зберігає метадані постів та сторінок. 
 Таблиця wp_posts включає контент постів, а також сторінок, і дані що є в 
меню навігації. 
 Таблиця wp_terms зберігає категорії всіх постів, посилань та тегів.  
 Таблиця wp_term_relationships зберігає дані, які можуть бути пов’язані з 
категоріями та тегами в таблиці wp_terms. 
 Таблиця wp_term_taxonomy – тут зберігаються таксономія категорій, 
посилань, тегів для записів в таблиці wp_terms. 
 Таблиця wp_usermeta зберігає всі можливі метадані користувачів.  
 Таблиця wp_users зберігає дані про всіх зареєстрованих користувачів.  
2.4  Проектування інтерфейсу користувача  
Оскільки якість всього процесу інтерактивної взаємодії зареєстрованого 
користувача із системою, а саме його зручність та низький рівень втоми, швидкість, 
пов’язана з короткостроковою та середньостроковою пам’ятюь кожної людини, 
часом реакції та можливостями сприйняття візуальної інформації нею. При розробці 
інтерфейсу необхідно пам’ятати про те, що: 
 інтерфейс – одна з самих важливих частин веб-орієнтованого інформаційного 
ресурсу;   
 інтерфейс впливає на весь характер прийняття рішень потенційним 
відвідувачем ресторану. Він може прискорювати для себе час прийняття рішення та 
покращувати або погіршувати цю якість. 
 38 
Розглянемо властивості, яким повинен задовольняти кожен інтерфейс [2]: 
1) Адаптованість, це означає, що даний інтерфейс повинен бути: сумісним 
з більшістю потреб та можливостей користувача й забезпечувати йому простий 
перехід від виконання однієї функції до іншої; мати можливість надавати 
користувачу відповідні вказівки згідно його можливих дій та створювати зворотний 
зв’язок на його запити; надати можливість вважати користувача в ролі повноцінного 
керівника при розв’язанні всіх діючих типів задач. Інтерфейс повинен забезпечувати 
користувача різними, взаємодоповнюючими формами для представлення 
результатів залежно від основного  типу запиту чи від його характеру отриманого 
рішення.  
2) Достатність інтерфейсу означає про зрозумілість та однозначність 
допустимих запитів для користувача всіх рівнів. 
Дружній інтерфейс – це найбільша простота у використанні та готовності 
максимально задовольнити запити користувача в процесі розв’язання визначеного 
класу задач. 
3) Гнучкість інтерфейсу – це можливість його пристосування до 
розв’язання конкретної задачі. Якщо задача, що розв’язується, є досить складною, то 
цей інтерфейс повинен максимально полегшувати формулювання запитів та 
надавати точні результати у тій формі, що доступніша користувачу. Інтерфейс 
повинен бути максимально простим.  
Згідно розглянутих характеристик, в кваліфікаційній роботі бакалавра було 
сформовано інтерфейс веб-орієнтованого інформаційного ресурсу для замовлення 
продукції ресторану.  
Головна сторінка веб-ресурсу відображає майже всю інформацію про 
відповідний ресторан: меню, місце знаходження, перелік запропонованих страв, 
обмеження.  
Кожен з відвідувачів зможе ознайомитись із пропонованими стравами 
відповідного дня та складом блюд, розглянувши фото та їх опис.  
Фрагмент головної сторінки веб-орієнтованого інформаційного ресурсу для 
замовлення продукції ресторану представлено на рис. 2.8. 
 39 
Меню ресторану сформовано по категоріям та типам страв. Так, як і в інших 
ресурсах, тут наявна реєстрація, власні замовлення, вибір оплати та типу 
розрахунку.  
Також тут можна прочитати всі відгуки відвідувачів.  
На рис. 2.9 відображено сторінку відгуків відвідувачів. 
 
  
 
Рисунок 2.8 – Фрагмент головної сторінки веб-орієнтованого інформаційного 
ресурсу для замовлення продукції ресторану 
  
 
Рисунок 2.9 – Сторінка «Відгуки відвідувачів» 
  
 40 
Інтерфейс веб-орієнтованого інформаційного ресурсу для замовлення 
продукції ресторану досить привабливий завдяки зручності, доступності до 
користувача. 
Кольорова гама завжди спокійна та сприяє позитивним емоціям, а головне не 
відволікає від роботи та інформаційної складової веб-орієнтованого інформаційного 
ресурсу.  
 2.5  Аналіз та вибір технологій й методів реалізації інформаційного 
ресурсу 
Розвиток мережі Інтернет призвів до появи зовсім нової категорії програм – 
веб-додатків. До веб-ресурсів відносять набір веб-сторінок, сценаріїв й інших ПЗ, 
розташованих на одному, чи або декількох комп'ютерах (клієнтських і серверних) 
об'єднаних для виконання прикладної задачі. При цьому веб-додатки, ті що 
публікують бази даних в Інтернет, являють собою цілий окремий клас. Сучасні 
інформаційні системи, побудовані саме на основі веб-сайтів, що використовують 
бази даних, базуються на багаторівневій клієнт-серверній архітектурі і загальних 
принципах функціонування Інтернету. Веб-додатки представляють собою такий тип 
програм, які побудовані за архітектурою «клієнт-сервер». Особливість їх полягає 
саме в тому, що саме веб-додаток знаходиться і виконується на сервері, а клієнт при 
цьому отримує тільки результати проробленої роботи. Робота програми базується на 
отриманні запитів від клієнта, їх обробці й видачі результату. Передача запитів і 
результатів їх обробки відбувається через мережу Інтернет [12].  
Варто зазначити про складність логіки сучасних веб-додатків. Відомо, що 
раніше їх продуктивність визначалася швидкістю роботи SQL-сервера. Сьогодні для 
створення веб-ресурсів єіснує безліч різних мов програмування. Найвідоміші з них – 
PHP, Java, Perl.  
Для реалізації функціональних можливостей веб-орієнтованого 
інформаційного ресурсу «Bakery» обрана мова РНР. Саме завдяки її гнучкості по 
 41 
відношенню до потреб розробника та безкоштовності, підтримці відомих платформ 
вона підходить для розробки. 
Ця мова є досить універсальною мовою для розробки будь-яких сценаріїв, яку 
постійно використовують. Спочатку вона була створена для розробки лише веб-
ресурсів. Розроблена Расмусом Лердофом (Rasmus Lerdof), PHP фактично 
використовувалася саме як засіб створення користувачами своїх веб-сторінок 
(Personal Home Page). Мова РНР виявилася корисною і популярною, а вже потім ще 
й повноцінною мовою програмування [20]. 
Розглянемо переваги використання РНР [20]: 
 швидкодія веб-вузлів – оскільки код РНР вбудовується у XTML, час, який 
потрібний для його використання, обробки і подальшого завантаження веб-сторінок 
суттєво зменшується; 
 відкритість – РНР є підтвердженням саме того, що безкоштовні версії все ж 
існують; 
 синтаксис – РНР достатньо простий для його розуміння та забезпечує 
доступність свого використання. При цьому РНР розроблений саме так, щоб мати 
змогу бути досить легко вбудованим в HTML-сторінки; 
 PHP може застосовуватися під управлінням різноманітних операційних систем 
(ОС), які забезпечують його достатню універсальність, в тому числі й  Windows, 
Linux та Mac. 
РНР забезпечує достатній контроль над всім оточенням, дозволяючи 
зменшити ймовірність виникнення помилок. РНР – є універсальним засобом 
розробки різних сценаріїв загального призначення [20]. Сценарії на мові РНР 
представляють собою комп'ютерні файли, які містять створені на мові РНР 
інструкції, що виконують відповідні дії. Безліч таких сценаріїв включають 
послідовності інструкцій, що виконуються, які дозволяють виконувати поставлене 
завдання від розробки веб-сторінок до повної навігації по файловій системі.  
Також при розробці веб-ресурсу використана мова розмітки гіпертексту Hyper 
Text Markup Language (HTML). Вона призначена для написання гіпертекстових 
документів, які публікуються в World Wide Wеb.  
 42 
HTML – стандартна мова розмітки веб-сторінок в Інтернеті. Більшість веб-
сторінок створюються за допомогою мови HTML (або XHTML) [20]. Документ 
HTML оброблюється браузером та відтворюється на екрані у звичному для людини 
вигляді. HTML є похідною мовою від SGML, успадкувавши від неї визначення типу 
документа та ідеологію структурної розмітки тексту. Попри те, що HTML – штучна 
комп'ютерна мова, вона не є мовою програмування. HTML разом із каскадними 
таблицями стилів та вбудованими скриптами – це три основні технології побудови 
веб-сторінок [20]. 
При здійсненні програмної реалізації інтерфейсів додатків користувачів веб-
орієнтованого інформаційного ресурсу «Bakery» використовувалась мова розмітки 
HTML-сторінок. 
CSS верстка сайтів користується широким попитом у сучасних веб-
розробників. Тому вона має застосування також при власній розробці. 
CSS (Каскадні таблиці стилів – каскадні таблиці стилів) – одна з основних 
технологій у сучасному Інтернеті. Нечасто можна зустріти сайт, зверстаний без CSS 
[20]. CSS-код – це список інструкцій для браузера, які відображають елементи веб-
сторінки. Під «елементами» зазвичай маються на увазі теги XHTML / HTML і їх 
вміст.  
Розглянемо деякі переваги CSS [20]: 
 більш чистий код; 
 він швидше завантажується; 
 такий код легше підтримувати; 
 більш оптимізований при використанні в пошукових системах; 
 модульний код; 
 можливість застосування правил стилю до багатьох сторінок; 
 однаковий дизайн. 
CSS верстка сайтів досить часто може застосовуватися для самих різних за 
тематикою і структурою сайтів, вона сумісна з більшістю сучасних браузерів. CSS 
верстка сайтів дозволяє досить гнучко управляти зміною властивостей цих 
елементів при взаємодії з користувачами сайтів. 
 43 
Для реалізації веб-орієнтованого інформаційного ресурсу «Bakery» та 
зберігання всієї потрібної інформації була обрана система управління базою даних 
MySQL [20].  
СУБД MySQL – це невеликий  та компактний багатопотоковий сервер баз 
даних, що характеризується великою швидкістю, стійкістю та легкістю у 
використанні. MySql є прекрасним вибором для малих і середніх додатків.  
Переваги в застосуванні СУБД MySQL [20]: 
 підтримується необмежена кількість різних користувачів, які одночасно 
працюють з базою даних; 
 кількість рядків в таблицях може бути 50 мільйонів; 
 виконується досить швидке опрацювання команд; 
 проста та ефективна задіяна система безпеки. 
Висновки до розділу 2 
У цьому розділі проведено проектування веб-орієнтованого інформаційного 
ресурсу для замовлення продукції ресторану, а саме його архітектури. Розроблено 
його структуру та спроектовано базу даних й розроблено інтерфейс користувача. 
Проведено аналіз і вибір технологій для реалізації веб-ресурсу.  
 
 44 
3 СТВОРЕННЯ ВЕБ-ОРІЄНТОВАНОГО ІНФОРМАЦІЙНОГО 
РЕСУРСУ ДЛЯ ЗАМОВЛЕННЯ ПРОДУКЦІЇ РЕСТОРАНУ «BAKERY» 
3.1  Структура та функціональне призначення модулів ресурсу, їх 
взаємозв’язок 
Розглянемо наповнення веб-ресурсу для замовлення продукції ресторану. 
Всі дані веб-ресурсу зберігаються в таблицях бази даних. Деякі з них 
представимо більш детальніше. Спочатку наведемо опис самих створених таблиць 
БД (табл. 3.1).  
Таблиця 3.1 – Опис таблиць бази даних 
Ім’я таблиці Опис 
posts  Головна таблиця, де зберігаються всі статі та необхідна деяка 
службова інформація. 
postmeta  Додаткові дані до публікацій, що відсутні в стандартних 
полях у таблиці posts.  
users  Відомості користувачів, що є авторами статей.  
usermeta  Додаткові поля, необхідні для повного опису користувачів та 
доповнення до таблиці users.  
comments  Зберігаються коментарі для створених додаткових статей.  
terms  Перелік рубрик, до яких відноситься та чи інша стаття.  
term_taxonomy  Таблиця призначена для систематизації різних рубрик.  
term_relationships  Вказується відповідність статті до рубрики. 
links  Зберігається інформація про посилання.  
options  Всі налаштування движка.  
  
Розглянемо зміст таблиці «Збереження записів, чернеток та бібліотеки медіа 
файлів» (табл. 3.2). 
 
 
 45 
Таблиця 3.2 – Зміст таблиці «Збереження записів, чернеток, медіа файлів»  
Поле Опис 
ID Ідентифікатор запису, який є первинним ключем. Значення – 
від 1 до 263-1. max значення комірки може бути 20-
розрядним числом.  
post_author Автор статті, що визначається за ID таблиці users.  
post_date Оголошення дати публікації, час – місцевий.  
post_date_gmt Оголошення дати публікації, час – за Гринвічем.  
post_content Наповнення статті. При збереженні і виведенні цей вміст 
проходить через фільтр замін, отже на екрані можна 
побачити зовсім не те, що вводилось.  
post_title Заголовок статті або ім'я для відображення в бібліотеці 
медіафайлів. 
post_category Постійно дорівнює 0.  
post_excerpt Цитата. Записується самостійно, тому що за замовчуванням 
відсутня.  
post_status Рівень запису.  
Publish – опублікована, draft – чернетка, inherit – пов'язана.  
post_password Чи існує можливість коментування: open – можна 
коментувати, closed – не дозволяєя.  
post_name Чи існує дозвіл на зворотні посилання і повідомлення. 
Терміни – open і closed.  
post_modified Не прихований пароль, коли стаття з паролем. В іншому 
випадку – значення ні.  
post_modified_gmt Статичне посилання для сторінки. Записи та зміни 
зберігаються автоматично.  
 
 
 
 46 
Ідентифікатор запису є первинним ключем.  
Значення – від 1 до 263 – 1. Максимальне значення комірки може бути 20-
розрядним числом. Автор статті, що визначається за ID таблиці users.  
Оголошення дати публікації, час – місцевий.  
Оголошення дати публікації, час – за Гринвічем.  
Наповнення статті. При збереженні та виведенні даний вміст проходить через 
фільтр замін. Тому на екрані відображено зовсім не те, що вводилось.  
Заголовок статті або ім'я для відображення в бібліотеці медіафайлів постійно 
дорівнює 0. 
Цитата. Записується самостійно, тому що за замовчуванням відсутня.  
Рівень запису. Publish – опублікована, draft – чернетка, inherit – пов'язана.  
Чи існує можливість коментування: open – можливість коментувати, closed – 
не дозволено коментарі. 
Чи існує дозвіл на зворотні посилання та повідомлення. Терміни – open і 
closed не прихований пароль, коли стаття з паролем. В іншому випадку – значення 
буде ні.  
Статичне посилання для сторінки. Записи та зміни зберігаються автоматично.  
Розглянемо опис таблиці posts (табл. 3.3).  
Таблиця 3.3 – Опис таблиці posts  
Поле Опис 
meta_id  Первинний ключ.  
post_id  До якої таблиці відносяться метадані.  
meta_key  Назва додаткового параметру.   
meta_value  Значення додаткового параметру. Його зміст залежить від імені 
параметру.  
Розглянемо опис таблиці users (табл. 3.4).  
Таблиця 3.4 – Вміст таблиці users  
Поле Опис 
ID  Ідентифікатор, первинний ключ.  
 47 
user_login  Назва користувача для здійснення  входу.  
 
user_pass  Пароль користувача вповністю закодованому вигляді.  
user_nicename  Ім’я для звернення до користувача, яке збігається з ім'ям 
входу.  
user_email  Електронна пошта для зв’язку.  
user_url  Адреса сайту користувача.   
user_registered  Час реєстрації користувача.  
user_activation_key  Ключ для активації.   
display_name  Ім’я для відображення.  
Вміст таблиці usermeta описаний в таблиці 3.5.  
Таблиця 3.5 – Вміст таблиці usermeta  
Поле Опис 
umeta_id  Ідентифікатор метазапису, первинний ключ.  
user_id  Ідентифікатор користувача, що відноситься до запису.  
meta_key  Запасний параметр.  
meta_value  Значення запасного параметру.  
 Переглянемо вміст наступної таблиці comments (табл. 3.6). 
Таблиця 3.6 – Вміст таблиці comments  
Поле Опис 
comment_ID  Ідентифікатор коментарів та  первинний ключ.  
comment_post_ID  Ідентифікатор коментарів.  
comment_author  Автор, береться з реєстраційних даних або потрібно 
вводити вручну.  
comment_author Пошта.   
comment_author_url  Сайт автору коментарів.   
comment_author_IP IP-адреса тих, хто дає  
коментар.  
 48 
comment_date Час і дата.  
comment_date_gmt Час і дата – по Гринвічу.   
comment_content Коментарі.   
comment_approved Чи дозволено коментар для  
показу. 
comment_agent Браузер, з якого заходили.  
comment_parent Батьківський комент, що  
потрібен для деревовидної 
структури.  
user_id Ідентифікатор зареєстрованого користувача.  
Опис рубрик подано в таблиці 3.7.   
Таблиця 3.7 – Вміст таблиці terms terms  
Поле Опис 
term_id  Ідентифікатор.  
name  Назва рубрики для записів або в віджетах рубрик.  
slug  Ярлик рубрики. Переважно містить лише латинські букви.  
  
При створенні веб-ресурсу важливу роль відіграє створення сторінок. 
Редагувати сторінку та її вміст можна у вікні для звичайного текстового 
редактора, який вбудовано в саму систему, або у вікні для редагування html-коду.  
Навіть новачок-користувач має можливість створити надто легку сторінки. 
Більшість людей зможе вручну редагувати код. Також існує можливість кодування 
материнської сторінки, додавати каталоги на головну сторінку та інше. 
3.2  Інструкція користувача 
Розглянемо покрокову інструкцію з того, як користуватись веб-орієнтованим 
інформаційним ресурсом «Bakery» та на які блоки він розбитий. Перш за все, після 
того, як користувач заходить на  веб-орієнтований інформаційний ресурс «Bakery», 
він бачить її головну сторінку (рис. 3.1).  На ній розташована повна назва 
 49 
відповідної страви, страви дня, можливість переходу з метою перегляду, замовлення 
за допомогою певної кнопки.  
 
Рисунок 3.1 – Головне меню веб-орієнтованого інформаційного ресурсу «Bakery» 
Головна сторінка надає можливість проходження реєстрації та авторизації. 
Вікно реєстрації представлено на рис. 3.2.  
 
Рисунок 3.2 – Вікно «Реєстрація» 
Якщо скористатись кнопкою прокрутки, що збоку, то далі на основній 
сторінці користувач побачить інформацію про сам «Bakery». Можна також побачити 
фото ресторану, представлено перелік статей про концепцію та переваги ресторану в 
порівнянні  з іншими закладами харчування.  
Головна особливість даної частини сторінки в тому, що розміщення 
інформації ніби «накладається» на різні гарні фото з ресторану. Саме це сприяє 
гарному сприйняттю інформації про ресторан, збільшенню його відвідувачів, 
популяризації. Фрагмент основної та головної сторінок розробленого 
 50 
інформаційного веб-ресурсу представлено на рис. 3.3-3.4, а головного меню – на 
рис. 3.5. 
 
Рисунок 3.3 – Фрагмент основної сторінки 
 
Рисунок 3.4 – Фрагмент головної сторінки 
 51 
  
Рисунок 3.5 – Фрагмент головного меню 
 Рухаючись по вкладці «Наше меню» можна здійснити вибір будь-яких страв 
для замовлення: м’ясне, рибне, вегетаріанське меню, а також переглянути 
представлену карту вин, коктейлів та вибрати смачний десерт. Після того, як все це 
корстувач додає у кошик, можна перейти туди. Фрагмент сторінки «Кошик» 
представлено на рис. 3.6. 
 
Рисунок 3.6 – Фрагмент сторінки «Кошик» 
 52 
 На сторінці «Кошик» завжди можна переглянути вибрані страви, їх кількість 
та загальну суму замовлення, а також застосувати купон на знижку при його 
наявності. 
Потім при натисненні кнопки «Перейти до оформлення» переходимо на 
сторінку «Оформлення».  
Додатково кожне з блюд описується окремо та додається відгук від усіх 
зареєстрованих користувачів. Фрагмент сторінки «Оформлення» показано на рис. 
3.7. 
 
Рисунок 3.7 – Фрагмент сторінки «Оформлення» 
На цій сторінці користувач заповнює всі свої відомі контактні дані, якщо 
користувач не зареєстрований і відразу проводить оплату.  
Якщо клієнт ресторану має власний купон на знижку, то варто його показати. 
Також можна додати коментар по замовленню згідно своїх побажань. Ту  
передбачено групові замовлення, здешевлення доставки продукції. Завдяки цьому 
кількість клієнтів збільшується. Фрагмент вікна «Салат Рікота» показано на рис. 3.8. 
 53 
 
Рисунок 3.8 – Фрагмент вікна «Салат Рікота» 
 Зручним є те, що одночасно можна з цієї сторінки зайти в будь-які інші 
категорії страв, такі як: «Перші страви», «Салати», «Десерти», «Закуски», «Основні 
страви». Не має потреби кожного разу відкривати на головну сторінку для вибору 
потрібної категорії.  
3.3  Технічні характеристики програмного забезпечення 
Для того, щоб веб-орієнтований інформаційний ресурс «Bakery» правильно та 
якісно працював, потрібно, щоб комп’ютер відповідав необхідним характеристикам. 
Також для запуску на персональному комп’ютері (ПК) потрібно наявність 
Framework 4.5 або вище для забезпечення функціонування Windows додатків, 
створених на Microsoft Visual Studio. Такий пакет постачається із багатьма 
сучасними версіями Windows та є стандартним набором, але в окремих випадках 
потрібно встановлювати цю версію.  
Висновки до розділу 3 
В цьому розділі була проведена реалізація бази даних та модулів 
створюваного веб-орієнтованого інформаційного ресурсу «Bakery» для замовлення 
 54 
продукції ресторану. Розроблена інструкція для користувача. Детальний код 
програми описаний в додатку Б.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 55 
4 ТЕСТУВАННЯ ВЕБ-РЕСУРСУ 
4.1  Вибір та обґрунтування методів тестування веб-ресурсу 
Тестування сайту дозволяє перевірити працездатність всіх функцій згідно з 
технічним завданням, швидкість і стабільність роботи, читабельність інформації, 
зручність переходів по сайту, захищеність від веб-атак і багато іншого. 
Тестування сайту дозволяє перевірити працездатність всіх функцій згідно з 
технічним завданням, швидкість і стабільність роботи, читабельність інформації, 
зручність переходів по сайту, захищеність від веб-атак і багато іншого.  
Кількість розробок, які доступні сьогодні збільшується досить швидко, тому з 
метою економії часу та людських ресурсів, може виникнути також необхідність 
тестувати такі проекти автоматично. Такий засіб тестування є найбільш точним, 
тому що виключає людський фактор, є фактично значно швидшим та має ширші 
можливості, аніж ручне тестування. Основне мета автоматизованого веб-тестування 
– емуляція дій користувача, пошук помилок, використання різних вхідних даних, 
спостереження за поведінкою системи коли збільшується навантаження на неї. 
Тестування програмного забезпечення – це складний процес, в якому 
проводиться перевірка якості програмного забезпечення на відповідність до 
заявлених вимог [10]. 
Сервіси і методи тестування можуть бути різними. Перш за все потрібно 
визначитеся зі стратегією порядку дій та виконувати їх. 
Основні роботи при тестуванні: 
− співвіднесення фактичного дизайну затвердженим в ТЗ; 
− перевірка верстки на валідність; 
− функціональне тестування; 
− тестування навантаження; 
− тестування безпеки сайту; 
− тестування сумісності. 
 
 56 
Тест – це спеціальна, штучно створена ситуація, яка обрана певним чином, та 
подальший опис того, які спостереження за роботою програми потрібно зробити для 
перевірки її відповідності деяким вимогам [10]. 
Тест-кейс є найменшим компонентом тест-сценарію, але при цьому він також 
часто включає в себе декілька кроків. Наприклад, при тестуванні продуктивності 
штучно створена подія може проходити протягом тривалого часу навантаження на 
систему. Спостереження, які при цьому роблять – це набір різних графіків або 
метрик, за допомогою яких тестувальник робить певні висновки [10, 11]. Таким 
чином, можна зрозуміти, що тестувальник робить в процесі тестування дві дії: 
 по-перше, керує виконанням програми та створює штучні тестові ситуації, за 
допомогою яких перевіряється поведінка програми; 
 по-друге, спостерігає за поведінкою програми і проводить порівняння 
дійсного результату з очікуваним. 
Під час створення автоматизації тестування особа-тестувальник не спостерігає 
сам за поведінкою програми, а делегує це завдання спеціальному інструменту або 
спеціальній, до цього написаній програмі. В такому випадку програма проводить 
спостереження, як відбувається порівняння поведінки з очікуваним, а сам 
тестувальник проводить аналіз лише деякого кінцевого результату – чи збігається 
поведінка, що спостерігається з очікуванням, або ні. 
Виділяють такі основні методи тестування: модульне тестування, інтеграційне 
тестування, прийомне тестування та тестування системи в цілому [11]. 
Програмне забезпечення піддається випробуванню в такому порядку:  
 модульне тестування; 
 системне тестування; 
 інтеграційне тестування; 
 прийомні випробування. 
В першу чергу проводиться модульний тест. Це метод випробування на 
об'єктному рівні. Відомі програмні компоненти тестуються на наявність помилок. 
Для цього тесту необхідно знання програми та кожного встановленого модуля. 
Таким чином, ця перевірка здійснюється програмістами, а не тестувальниками. Для 
 57 
цього створюються тест-коди, які перевіряють поведінку програмного забезпечення 
так, як очікувалось. Під час інтеграційного тестування відомі модулі, які вже були 
протестовані модульно, інтегруються один з одним, перевіряються на наявність 
несправностей. Таке тестування в першу чергу виявляє помилки інтерфейсу. В 
системному тестуванні вся система перевіряється на наявність помилок і багів. Цей 
тест здійснюється шляхом сполучення апаратних та програмних компонентів всієї 
системи, а потім виконується її перевірка. Це тестування відоме також під методом 
тестування "чорної скриньки", де перевіряються очікувані для користувача умови 
роботи програмного забезпечення. Прийомні випробування – це останній тест, який 
проводиться перед передачею програмного забезпечення клієнту. Він проводиться, 
щоб гарантувати, що програмне забезпечення, яке було розроблено, відповідає всім 
вимогам замовника [10, 11]. 
Розглянемо основні переваги автоматизованого тестування. Автоматизація 
тестування відкриває багато можливостей, і, зокрема, дозволяє створювати якісні 
програми з меншими зусиллями. Але багато компаній все ще віддають перевагу 
ручному тестуванню, через брак знань та спеціалістів, які могли б краще інтегрувати 
автоматизацію тестування в процес розробки.  
Автоматизація тестування передбачає, що машина буде виконувати те, що 
робила людина, при цьому набагато швидше, з меншою ймовірністю помилки і 
безперервно. Люди схильні швидко втрачати концентрацію, роблячи таку роботу, і 
упускати наявні помилки і недоліки. В цьому відношенні машини набагато швидші і 
надійніші. 
Звичайно, у автоматизації є і недоліки. Цей процес не усуне специфічні 
проблеми, з якими можуть зіткнутися користувачі. Ще один недолік – обмежене 
число тестових сценаріїв. Головне завдання автоматизації – знайти баги в простих 
операціях, наприклад, вхід в додаток, створення аккаунту або відправка 
електронного листа, коли користувач забуває пароль. Недоліки додатку, що 
виявляються при специфічних обставинах, все ще повинні тестуватися вручну. Як 
відомо, машини мають більші можливості, але, на жаль, вони не можуть думати 
самостійно. Крім того, автоматизація не дозволяє провести ефективне тестування 
 58 
дизайну, наприклад, положення кнопки, і, в цілому, наскільки зручний додаток у 
використанні. Для з'ясування всього цього все ще застосовується ручне тестування. 
Сьогодні тестування може бути автоматизоване практично для всіх видів 
програмного забезпечення, яке розробляється. Тестування веб-ресурсів стало 
важливою і великою частиною процесу автоматизації тестування. Різні веб-додатки 
потрібно тестувати. 
Функціональне тестування – це досить тривалий етап перевірки 
інформаційного ресурсу. Сутність цього процесу полягає в перевірці всього 
описаного функціоналу [10]: 
 перевірки роботи всіх обов'язкових функцій сайту;  
 тестування роботоздатності користувацьких форм на сайті (наприклад,   
зворотний зв'язок, додавання коментарів в блог);  
  перевірки роботи пошуку (включаючи релевантність результатів);  
  перевірки гіперпосилань, пошук неробочих посилань;  
  перевірки підгрузки файлів на сервер;  
  перевірки роботоздатності лічильників, установлених на сторінках  сайту; 
 перегляд на відповідність вмісту сторінки сайту вихідного контенту, наданого 
замовником. 
Для забезпечення якості створених веб-ресурсів, тестувальниками 
розробляється цілий набір різноманітних тестів, включаючи функціональне 
тестування, юзабіліті-тестування, крос-браузерне тестування а також 
навантажувальне та стрес-тестування [10].  
4.2 Розробка тестових наборів даних 
До більш актуальних та нетривіальних задач тестування слід віднести 
складання деяких тестових сценаріїв, які брали б до уваги специфічні вимоги до 
Веб-ресурсів та дозволяли б ефективно виявляти помилки в розроблених кодах. 
Одним з різновидів автоматичного тестування є тестування на основі моделей, при 
якому варіанти тестування будуються із певної деякої моделі самого веб-додатку, 
 59 
що тестується. Рисунок 4.1 відображає загальне представлення процесу тестування 
на основі моделей [10].  
 
Рисунок 4.1 – Тестування на основі моделі веб-ресурсу 
Згідно з вимогами до будь-якого веб-ресурсу, здійснюється розроблення 
моделі, яка відображає ті особливості системи, що підлягають тестуванню. Ця 
модель дозволяє генерувати набори різних варіантів сценаріїв тестування, які 
визначають умови, вхідні дані, очікувані результати роботи системи та оцінювання 
результатів тестування з використанням компаратора. 
Порівняння в компараторі очікуваних та реальних результатів дає можливість 
зробити висновок про наявність помилок в системі, надійність та відповідність 
системи моделі згідно з вимогами до неї. Крім того, може бути зроблено висновок 
про необхідність модифікації існуючої моделі чи додаткової генерації варіантів 
тестування.  
Ще однією особливістю тестування веб-ресурсів є необхідність зберігати 
інформацію про стан сесії користувача. В результаті цього тестовий сценарій має 
враховувати послідовність тестових випадків, тобто декількох дій в системі.  
В табл. 4.1 представлено сценарій для тестування інтерфейсу користувача.   
 60 
Таблиця 4.1 – Сценарій для тестування інтерфейсу користувача   
Дія Реакція програми Результат 
1. Натиснути на кнопку  З'являється  опис інгредієнтів Вірно. 
«Салати». салату та їх фото. 
2. У діалоговому вікні Вікно-«Вхід» повинно закритися і  Вірно.  
ввести ім’я користувача з’явиться «Привіт, Ткачук».  
Ткачук та пароль 11111. 
Далі натиснути кнопку 
«Вхід».  
3. Зайти в головному Повинна відкритись сторінка з Не вірно.  
меню, вкладка «Супи».  переліком супів.  Відкрилась  
сторінка 
«Салати».  
  
З метою відображення роботи під час великого напливу людей для замовлень 
та перегляду розробленого веб-орієнтованого інформаційного ресурсу проведено 
навантажувальне тестування.  
Отже, веб-орієнтований інформаційний ресурс «Bakery» для замовлення 
продукції ресторану був протестований за допомогою спеціальної програми. 
Навантажувальне тестування програма успішно пройшла. На рис. 4.2 представлені 
результати проведеного тестування. 
 61 
 
Рисунок 4.2 – Результати навантажувального тесту 
Висновки до розділу 4 
В цьому розділі описано вибір та обґрунтування методів тестування 
розробленого веб-ресурсу. Налагодження та тестування веб-орієнтованого 
інформаційного ресурсу «Bakery» для замовлення продукції ресторану проведено з 
вибором та обґрунтуванням методів тестування, аналізу результатів тестування. 
 
 
 
 
 
 
 
 
 
 
 62 
ВИСНОВКИ 
Мета кваліфікаційної роботи бакалавра досягнута. В ході її виконання 
спроектовано та розроблено веб-орієнтований інформаційний ресурс «Bakery» для 
замовлення продукції ресторану. 
Для досягнення поставленої мети в роботі розв’язувалися наступні завдання: 
 досліджено предметну область ресторанного бізнесу; 
 проведено аналіз існуючих програмних рішень у ресторанному бізнесі; 
 визначено вимоги до веб-орієнтованого інформаційного ресурсу; 
 побудовано концептуальні моделі веб-ресурсу для замовлення продукції 
ресторану та його бази даних; 
 створено веб-орієнтований інформаційний ресурс «Bakery» для замовлення 
продукції ресторану; 
 проведено тестування веб-ресурсу «Bakery». 
 
 
 
 
 
 
 
 
 
 
 
 
 
 63 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
1. Завдання автоматизації ресторану, кафе, бару: CNews Club // 
http://club.cnews.ua URL: http://club.cnews.ua/blogs/entry/zadachi_a 
vtomatizatsii_restorana_kafe_bara (дата доступу: 16.04.2023). 
2. Архітектура мобільних додатків. URL: 
https://wezom.com.ua/ua/blog/arhitektura-mobilnogo-prilozheniya (дата 
звернення: 21.01.2023). 
3. Проектування бази даних. URL: 
https://stud.com.ua/62415/menedzhment/proektuvannya_bazi_danih (дата 
звернення: 24.01.2023). 
4. Створення програми для Android. URL: https://itproger.com/course/java-
android (дата звернення: 12.04.2023). 
5. Підключення бази даних. URL: https://firebase.google.com/docs/android/setup 
(дата звернення: 01.03.2023). 
6. Програмування для Android.  URL: https://metanit.com/java/android/ (дата 
звернення: 28.04.2023). 
7. Переваги та особливості  Android Studio. URL: 
https://qagroup.com.ua/publications/android-studio-perevagy-ta-osoblyvosti/ (дата 
звернення: 18.04.2023). 
8. Теоретичні відомості  мови програмування Java. URL: 
https://uk.wikipedia.org/wiki/Java (дата звернення: 03.05.2023). 
9. Програмування під Android на Java. URL: https://metanit.com/java/android/ 
(дата звернення: 21.05.2023). 
10. Огляд рішень для тестування сайтів, різні види тестів для веб-додатків і 
вживане. URL: http://hostinfo.ru/articles/442 (дата звернення: 12.05.2023). 
11. Тестування WEB-додатків. URL: http://taac.org.ua/files/a2011/proceedings/UA-1-
Viktoria%20-173.pdf  (дата звернення: 13.05.2023). 
 64 
12. Програмне забезпечення для управління головним офісом ресторану. URL: 
https://www.nfs-hospitality.com/solutions/restaurant-epos/enterprise/ (дата 
доступу: 16.04.2023). 
13. FikoChain: автоматизація ресторанного бізнесу, seti. URL: 
http://www.restouchet.ua/iiko/about-iikochain/ (дата доступу: 16.04.2023). 
14. UML — діаграма прецедентів. URL: https://habrahabr.ua/ post/47940/ (дата 
доступу: 16.04.2023). 
15. Ринок доставки їжі в картинках і цифрах: Міська їжа. URL: 
https://gorodskayaeda.ua/news/25161 -rynok-dostavki-edy-v-kartinkah-i-v-tsifrah/ 
(дата доступу: 16.04.2019). 
16. Мінливий ринок доставки їжі. URL: 
https://www.mckinsey.com/industries/hightech/our-insights/the-changing-
marketfor-food-delivery (дата доступу: 16.04.2023). 
17. Харчові технології. Як і чому зміниться доставка з ресторанів.  URL: 
https://www.forbes.ua/biznes/363613-tehnologii-edy-kak-i-
pochemuizmenitsyadostavka-iz-restoranov (дата доступу: 16.04.2023). 
18. Бойко Н.І. Моделювання web-орієнтованих систем та напрями розвитку web-
ресурсів / Н.І. Бойко. URL: http://vlp.com.ua/node/10125 (дата доступу: 
19.03.2023). 
19. Пелещишин А.М. Принципи формального моделювання інформаційних 
систем на базі Web-технологій / А.М. Пелещишин, Є.В. Буров // Вісник Держ. 
ун-ту «Львівська політехніка». 2013. № 383. С. 178-201. 
20. РНР, HTML, MSQL. URL: https://code.tutsplus.com/uk/tutorials/build-a-shopping-
cart-with-php-and-mysql--net-5144 (дата доступу: 19.03.2023). 
 
 
 
 65 
ДОДАТОК А 
 
 
 
        Затверджую               
Зав. кафедри КНСА, 
______________ Юрій ТРИУС 
«____»____________2023 р.                                                                                                                                                                              
 
 
 
 
 
 
 
ВЕБ-ОРІЄНТОВАНИЙ ІНФОРМАЦІЙНИЙ РЕСУРС ДЛЯ ЗАМОВЛЕННЯ 
ПРОДУКЦІЇ РЕСТОРАНУ 
Специфікація  
482.ЧДТУ. 31925-01  
 
Листів 2 
 
 
 
 
 
 
Розробник                          ____________________                 Ткачук С.В. 
 
Керівник                             ____________________                Оксамитна Л.П. 
 
 
 
 
 
 
 
 
 
 
Черкаси – 2023
 66 
482.ЧДТУ. 31925-01 
Позначення Найменування Примітка 
   
   
 Документація  
   
   
482.ЧДТУ. 31925-01    12 01 Текст програми  
   
482.ЧДТУ. 31925-01    90 01 Опис технічного  
завдання 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 67 
ДОДАТОК Б 
 
 
 
 
 
ВЕБ-ОРІЄНТОВАНИЙ ІНФОРМАЦІЙНИЙ РЕСУРС ДЛЯ ЗАМОВЛЕННЯ 
ПРОДУКЦІЇ РЕСТОРАНУ 
 
 
 
Текст програми 
482.ЧДТУ. 31925-01 12 01 
 
Листів 12 
 
 
 
 
 
 
Розробник    _____________                   Ткачук С.В. 
 
 
 
 
 
 
 
Черкаси – 2023
 68 
 
Фрагмент програми 
<?php class Page  
{  
    protected static $metaKeys = [  
        'end',  
        'first_page_uri',  
        'next_page_uri',  
        'last_page_uri',  
        'page',  
        'page_size',  
        'previous_page_uri',  
        'total',  
        'num_pages',  
        'start',  
        'uri',  
    ];  
  
    protected $version;     protected $payload;     protected $solution;  
    protected $records;  
  
    abstract public function buildInstance(array $payload);  
  
    public function __construct(Version $version, Response $response) {         $payload = $this-
>processResponse($response);  
  
        $this->version = $version;  
        $this->payload = $payload;  
        $this->solution = [];  
        $this->records = new \ArrayIterator($this->loadPage());  
    }  
  
    protected function processResponse(Response $response) {  
        if ($response->getStatusCode() !== 200 && !$this->isPagingEol($response->getContent())) 
{  
            $message = '[HTTP ' . $response->getStatusCode() . '] Не занайдено';             $code = 
$response->getStatusCode();  
  
            $content = $response->getContent();  
            $details = [];  
            $moreInfo = '';  
  
            if (\is_array($content)) {  
                $message .= isset($content['message']) ? ': ' . $content['message'] : '';  
                $code = $content['code'] ?? $code;  
                $moreInfo = $content['more_info'] ?? '';  
                $details = $content['details'] ?? [] ;  
            }  
  
            throw new RestException($message, $code, $response->getStatusCode(), $moreInfo, 
$details);  
 69 
        }  
        return $response->getContent();  
    }  
  
    protected function isPagingEol(?array $content): bool {  
        return $content !== null && \array_key_exists('code', $content) && $content['code'] === 
20006;  
    }  
  
    protected function hasMeta(string $key): bool {  
        return \array_key_exists('meta', $this->payload) && \array_key_exists($key, 
$this>payload['meta']);  
    }  
  
    protected function getMeta(string $key, string $default = null): ?string {         return $this-
>hasMeta($key) ? $this->payload['meta'][$key] : $default;  
    }  
  
    protected function loadPage(): array {         $key = $this->getMeta('key');         if ($key) {  
            return $this->payload[$key];  
        }  
  
        $keys = \array_keys($this->payload);  
        $key = \array_diff($keys, self::$metaKeys);  
        $key = \array_values($key);  
  
        if (\count($key) === 1) {  
            return $this->payload[$key[0]];  
        }  
  
          
        if ($this->isPagingEol($this->payload)) {             return [];  
        }  
  
        throw new DeserializeException('Сторінка не може бути завантажена ');  
    }  
  
    public function getPreviousPageUrl(): ?string {  
        if ($this->hasMeta('previous_page_url')) {             return $this-
>getMeta('previous_page_url');  
        } else if (\array_key_exists('previous_page_uri', $this->payload) && $this- 
>payload['previous_page_uri']) {  
            return $this->getVersion()->getDomain()-
>absoluteUrl($this>payload['previous_page_uri']);  
        }  
        return null;  
    }  
  
    public function getNextPageUrl(): ?string {         if ($this->hasMeta('next_page_url')) {             
return $this->getMeta('next_page_url');  
        } else if (\array_key_exists('next_page_uri', $this->payload) && $this- 
>payload['next_page_uri']) {  
 70 
            return $this->getVersion()->getDomain()->absoluteUrl($this->payload['next_page_uri']);  
        }  
        return null;  
    }  
  
    public function nextPage(): ?Page {         if (!$this->getNextPageUrl()) {  
            return null;  
        }  
  
        $response = $this->getVersion()->getDomain()->getClient()->request('GET', $this- 
>getNextPageUrl());  
        return new static($this->getVersion(), $response, $this->solution);  
    }  
  
    public function previousPage(): ?Page {  
        if (!$this->getPreviousPageUrl()) {  
            return null;  
        }  
  
        $response = $this->getVersion()->getDomain()->getClient()->request('GET', $this- 
>getPreviousPageUrl());  
        return new static($this->getVersion(), $response, $this->solution);  
    }  
  
      
    public function current() {  
        return $this->buildInstance($this->records->current());  
    }  
  
      
    public function next(): void {  
        $this->records->next();  
    }  
  
      
    public function key() {  
        return $this->records->key();  
    }  
  
      
    public function valid(): bool {  
        return $this->records->valid();  
    }  
  
      
    public function rewind(): void {  
        $this->records->rewind();  
    }  
  
  
    public function getVersion(): Version {  
        return $this->version;  
 71 
    }  
  
    public function __toString(): string {  
        return '[Page]';  
    }  
  
}  
  
class AttemptModel  
{  
    const TYPE_FORGOT_PASS = 'FORGOT_PASS';  
    const TYPE_SIGN_IN = 'SIGN_IN';  
    const TYPE_EMAIL_VERIFY = 'TYPE_EMAIL_VERIFY';  
  
    protected static $table = 'attempts';  
  
    protected $queryKey = 'attempt_id';  
  
    public function __construct()  
    {  
        parent::__construct();  
    }  
  
      
    public function logAttempt($type, $time = null, $userIP = null, $userID = 0)  
    {         if (!$time) {             $time = time();  
        }  
  
        if (!$userIP) {  
            $userIP = app()->request->getIp();  
        }  
  
        return $this->create([             'attempt_type' => $type,  
            'attempt_ip' => $userIP,  
            'attempt_time' => $time,  
            'user_id' => (int) $userID  
        ]);  
    }  
  
      
    public function logSignInAttempt($time = null, $userIP = null)  
    {  
        return $this->logAttempt(static::TYPE_SIGN_IN, $time, $userIP);  
    }  
  
      
    public function logForgotPassAttempt($time, $userIP = null, $userID = 0)  
    {  
        return $this->logAttempt(static::TYPE_FORGOT_PASS, $time, $userIP, $userID);  
    }  
  
      
 72 
    public function logEmailVerificationAttempt($time, $userIP = null, $userID = 0)  
    {  
        return $this->logAttempt(static::TYPE_EMAIL_VERIFY, $time, $userIP, $userID);  
    }  
  
      
    public function getLastAttempt(  
        $type,  
        $interval = null,  
        $userIP = null,         $userID = null,         array $fields = ['*']  
    ) {  
        $sql = $this->select($fields)  
               ->where('attempt_type', '=', $type)  
               ->orderBy('attempt_time', 'DESC')  
               ->limit(1, 0);  
  
        if (is_string($userIP)) {  
            $sql = $sql->where('attempt_ip', '=', $userIP);  
        }  
  
        if ($interval) {  
            $sql = $sql->where('attempt_time', '>', $interval);  
        }  
  
        if (is_int($userID)) {  
            $sql = $sql->where('user_id', '=', $userID);  
        }  
  
        $stmt = $sql->execute();  
        return $stmt->fetch();  
    }  
  
      
    public function getAttemptCount($type, $interval, $userIP = null, $userID = null)  
    {  
        $sql = $this->select(["COUNT(*) AS total"])  
               ->where('attempt_type', '=', $type)  
               ->where('attempt_time', '>', $interval);  
  
        if (is_int($userID)) {  
            $sql = $sql->where('user_id', '=', $userID);  
        }  
  
        if (is_string($userIP)) {  
            $sql = $sql->where('attempt_ip', '=', $userIP);  
        }  
  
        $stmt = $sql->execute();  
        $count = $stmt->fetch();  
  
        return (int) $count['total'];  
    }  
 73 
  
      
    public function getForgotPassAttemptCount($interval, $userIP = null, $userID = null)  
    {  
        return $this->getAttemptCount(static::TYPE_FORGOT_PASS, $interval, $userIP, $userID);  
    }  
  
      
    public function getSignInAttemptCount($interval, $userIP = null, $userID = null)  
    {  
        return $this->getAttemptCount(static::TYPE_SIGN_IN, $interval, $userIP, $userID);  
    }  
  
      
    public function getEmailVerificationAttemptCount($interval, $userIP = null, $userID = null)  
    {  
        return $this->getAttemptCount(static::TYPE_EMAIL_VERIFY, $interval, $userIP, 
$userID);  
    }  
}  
  
  
  
class RoleModel  
{  
      
    const TYPE_ADMIN = 1;  
  
      
    const TYPE_MOD   = 2;  
  
      
    const TYPE_USER  = 3;  
  
      
    protected $sortRules = [  
        'protected' => ['is_protected' => 'DESC'],  
        'custom' => ['is_protected' => 'ASC'],  
        'newest' => ['created_at' => 'DESC'],  
        'oldest' => ['created_at' => 'ASC'],  
        'a2z'    => ['role_name'  => 'ASC'],  
        'z2a'    => ['role_name'  => 'DESC'],  
    ];  
  
  
    protected $autoTimestamp = true;  
  
      
    protected static $table = 'roles';  
  
      
    protected $queryKey = 'role_id';  
 74 
  
      
    protected $rolePerms = [];  
  
      
    protected $permissions;  
  
  
      
    public function getAllPermissions()  
    {  
        if (is_array($this->permissions)) {  
            return $this->permissions;  
        }  
  
        $db = app()->db;  
        $table = Model::getPrefix('permissions');  
        $sql = $db->select()->from($table);  
        $stmt = $sql->execute();  
        $perms = [];  
  
        foreach ($stmt->fetchAll() as $row) {             $perms[$row['perm_id']] = $row['perm_desc'];  
        }  
  
        $this->permissions = $perms;  
  
        return $this->permissions;  
    }  
  
      
    public function addPermission($name)  
    {  
        $permID = $this->getPermission($name);  
  
        if ((int) $permID) {  
            return $permID;  
        }  
          
        $db = app()->db;  
        $table = Model::getPrefix('permissions');  
        return $db->insert(['perm_desc' => $name])  
                   ->into($table)  
                   ->execute();  
    }  
  
    public function getPermission($name)  
    {  
        $db = app()->db;  
        $table = Model::getPrefix('permissions');  
        $perm = $db->select(['perm_id'])  
                   ->from($table)  
                   ->where('perm_desc', '=', $name)  
 75 
                   ->execute()  
                   ->fetch();  
  
        if (isset($perm['perm_id'])) {  
            return $perm['perm_id'];  
        }  
  
        return false;  
    }  
  
      
    public function getRolePerms($roleID)  
    {           
        if (isset($this->rolePerms[$roleID])) {  
            return $this->rolePerms[$roleID];  
        }  
  
        $table1 = Model::getPrefix('role_perm');  
        $table2 = Model::getPrefix('permissions');  
  
        $sql = "SELECT t2.perm_desc, t2.perm_id FROM {$table1} as t1  
                JOIN {$table2} as t2 ON t1.perm_id = t2.perm_id  
                WHERE t1.role_id = :role_id";  
        $sth = app()->db->prepare($sql);  
        $sth->execute([":role_id" => $roleID]);  
  
        $perms = [];  
  
        while ($row = $sth->fetch()) {  
            $perms[$row["perm_desc"]] = $row['perm_id'];  
        }  
  
        $this->rolePerms[$roleID] = $perms;  
  
        return $perms;  
    }  
  
      
    public function insertPerm($roleID, $permID)  
    {  
        $db = app()->db;  
        $table = Model::getPrefix('role_perm');  
  
        $sql = $db->insert(['role_id', 'perm_id'])->into($table)->values([$roleID, $permID]);         
$sql->execute();  
  
        return true;  
    }  
  
      
    public function deletePerm($roleID, $permID)  
    {  
 76 
        $db = app()->db;  
        $table = Model::getPrefix('role_perm');         return $db->delete()  
                ->from($table)  
                ->where('role_id', '=', $roleID)  
                ->where('perm_id', '=', $permID)  
                ->execute();  
    }  
  
      
    public function deleteRolePerms($roleID)  
    {  
        $db = app()->db;  
        $table = Model::getPrefix('role_perm');         return (bool) $db->delete()  
                ->from($table)  
                ->where('role_id', '=', $roleID)  
                ->execute();  
    }  
  
      
    public function deleteRole($roleID)  
    {  
        $db = app()->db;  
        $table1 = Model::getPrefix('roles');  
        $table2 = Model::getPrefix('role_perm');  
  
        $sql = "DELETE t1, t2 FROM {$table1} as t1  
        JOIN {$table2} as t2 on t1.role_id = t2.role_id  
        WHERE t1.role_id = :role_id";  
  
        $sql = $db->prepare($sql);  
        $sql->bindParam(":role_id", $roleID, \PDO::PARAM_INT);  
  
        return $sql->execute();  
    }  
  
    public function getUsersCountUnderRole($roleID)  
    {  
        static $userModel;         if (!$userModel) {  
            $userModel = new UserModel;  
        }  
  
        $filters = [];  
        $filters['where'][] = [$this->queryKey, '=', $roleID];  
  
        return $userModel->countRows(null, $filters);  
    }  
}  
class ContentModel  
{  
    const TYPE_PAGE = 'page';     const TYPE_ATTACHMENT = 'attachment';  
    const TYPE_POST = 'post';  
  
 77 
      
    protected static $table = 'content';  
  
    protected $queryKey = 'content_id';  
  
    protected $autoTimestamp = true;  
  
  
    protected $sortRules = [  
        'newest'          => ['created_at' => 'DESC'],  
        'oldest'          => ['created_at' => 'ASC'],  
        'a2z'             => ['content_title'  => 'ASC'],  
        'z2a'             => ['content_title'  => 'DESC'],  
    ];  
      
  
    public function addAttachment($path, array $data)  
    {  
        $data['content_type'] = 'attachment';  
        $data['content_path'] = $path;  
        $data['content_body'] = '';  
  
        if (isset($data['content_meta']) && is_array($data['content_meta'])) {  
            $data['content_meta'] = json_encode($data['content_meta']);  
        } else {  
            unset($data['content_meta']);  
        }  
  
        if (empty($data['content_author'])) {             $data['content_author'] = current_user_ID();  
        }  
  
        if (isset($data['content_slug'])) {  
            unset($data['content_slug']);  
        }  
  
        return $this->create($data);  
    }  
  
    public function deleteAttachment($contentID)  
    {  
        $filters = [];  
        $filters['where'][] = ['content_type', '=', 'attachment'];  
        $attachment = $this->read($contentID, ['content_path'], $filters);         if (!$attachment) {             
return false;  
        }  
  
        $this->delete($contentID);  
  
        $file = uploadspath($attachment['content_path']);         return @unlink($file)  
}  
  
 
 78 
    public static function addAllowedFileTypes(array $fileTypes)  
    {  
        static::$allowedFileTypes = array_merge(static::$allowedFileTypes, $fileTypes);         return 
true;  
    }  
  
    public static function getAllowedFileTypes()  
    {  
        return static::$allowedFileTypes;  
    }  
  
      
    public static function getFileType($ext, $mimetype)  
    {  
        if (preg_match('#spreadsheet|excel#i', $mimetype)) {             return 'spreadsheet';  
        }  
        if (preg_match('#.presentation|powerpoint#i', $mimetype)) {             return 'interactive';  
        }  
        if (preg_match('#officedocument#i', $mimetype)) {             return 'document';  
        }  
        if (preg_match('#^text/#i', $mimetype)) {  
            return 'text';  
        }  
  
        if (preg_match('#^image/#i', $mimetype)) {             return 'image';  
        }  
  
        if (preg_match('#^video/#i', $mimetype)) {             return 'video';  
        }  
  
        if (preg_match('#^audio/#i', $mimetype)) {             return 'audio';  
        }  
  
        $ext = mb_strtolower($ext);  
          
        }  
    }  
  
      
    public function isValidSortMimeType($type)  
    {  
        return in_array(mb_strtolower($type), $this->mimeSortType);  
    }  
}  
  
 79 
 
ДОДАТОК В 
 
 
 
 
 
 
ВЕБ-ОРІЄНТОВАНИЙ ІНФОРМАЦІЙНИЙ РЕСУРС ДЛЯ ЗАМОВЛЕННЯ 
ПРОДУКЦІЇ РЕСТОРАНУ 
 
 
Опис технічного завдання 
482. ЧДТУ. 31925-01 90 01 
 
Листів 5 
 
 
 
 
 
Розробник    _____________                   Ткачук С.В. 
 
 
 
 
 
 
 
 80 
 
Черкаси – 2023
 81 
 
Введення  
Робота виконується відповідно до проектування веб-орієнтованого 
інформаційного ресурсу «Bakery» для замовлення продукції ресторану. 
Підстава для розробки.  
Підставою для розробки є «Завдання на кваліфікаційну роботу бакалавра», 
затверджене завідувачем кафедри КНСА.  
Найменування розробки: веб-орієнтований інформаційний ресурс «Bakery» 
для замовлення продукції ресторану. 
Призначення розробки  
Веб-орієнтований інформаційний ресурс «Bakery» для замовлення продукції 
ресторану призначений для оптимізації  роботи закладу громадського харчування, 
його популяризації в мережі Інтернет та покращенню зв’язку між клієнтами та 
рестораном.  
Користувачами програми є відвідувачі та працівники ресторану.  
Основною метою роботи є створення веб-орієнтованого інформаційного 
ресурсу «Bakery». Ця система повинна бути забезпечена зручним та зрозумілим 
інтерфейсом, в якому буде розглянуто такі розділи, як:  
- меню;  
- контактна інформація;   
- відгуки;   
- страва дня;   
- опис блюда з фото;   
- можливість замовити он-лайн з доставкою;   
- здійснення оплати платіжною карткою;   
- зміна мови;   
- години роботи. 
 82 
Відвідувачі повинні мати змогу в будь-який час переглянути меню ресторану, 
склад блюд, відгуки, чи працює в даний час заклад. Якщо в даний час ресторан 
відкритий, то мати можливість зробити замовлення, оплату платіжною карткою.   
У програмі необхідно передбачити: можливість коригування налаштувань 
системи; резервне збереження даних; можливість зміни пароля входу в систему; 
наявність вбудованого веб-орієнтованого ресурсу; швидкий пошук необхідних 
документів та веб-орієнтованого ресурсу. 
Вимоги до надійності 
Розроблюване ПЗ повинно мати: 
- можливість самовідновлення після збоїв (відключення електроживлення, збої 
в операційній системі тощо); 
- парольний захист при запуску програми; 
- обмеження несанкціонованого доступу до даних; 
- можливість резервного копіювання інформаційної бази; 
- розмежування прав користувача; 
- виключення несанкціонованого тиражування програми; 
- контроль інформації, що вводиться, та блокування некоректних дій 
користувача при роботі з системою. 
Вимоги до складу та параметрів технічних засобів   
Системні вимоги для роботи програмного забезпечення повинні бути 
наступними: тактова частота процесора – 1200 Гц; обсяг оперативної пам’яті – 64 
Мб; обсяг вільного дискового простору – 50 Мб; роздільна здатність монітора 
1024х768; наявність пристрою читання компакт-дисків. 3.4 Вимоги до 
інформаційної та програмної сумісності Програма повинна працювати в 
операційних системах Windows 7/10. Всі звіти, що формуються, мають можливість 
експортування в редактор електронних таблиць MS Office Excel. 
Спеціальні вимоги 
Програма повинна мати дружній інтерфейс, розрахований на користувача 
середньої кваліфікації (з точки зору комп’ютерної грамотності). З огляду на обсяг 
проекту завдання передбачається вирішувати поетапно. При цьому модулі 
 83 
програмного забезпечення, створені в різний час, повинні передбачати можливість 
нарощування системи і бути сумісні один з одним; тому документація на прийняте 
експлуатаційне програмне забезпечення повинна містити повну інформацію, 
необхідну для роботи з ним програмістів. Мова програмування визначається 
вибором виконавця, при цьому він повинен забезпечувати можливість інтеграції 
програмного забезпечення з пакетом MS Office 2019. 
Вимоги до програмної документації 
В ході розробки програми повинні бути підготовлені: текст програми, опис 
програми, програма і методика випробувань, керівництво користувача, техніко-
економічне обґрунтування. 
Стадії та етапи розробки 
Стадії та етапи розробки проекту Веб-орієнтованого інформаційного ресурсу  
«Bakery» наведено в таблиці В.1.  
Таблиця В.1  – Стадії та етапи розробки проекту  
Стадія розробки Етапи робіт Зміст робіт 
Технічне завдання  Обґрунтування Коротка характеристика програмного 
02.01.23 – 31.01.23 необхідності забезпечення; підстава і призначення 
розробки програми  розробки; вимоги до програмної 
системи і документація; стадії і етапи 
розробки програми; порядок 
контролю і приймання  
Ескізний проект  Розробка ескізного Попередня розробка структури 
01.02.23 – 14.02.23  проекту  вхідних і вихідних даних; уточнення 
середовища програмування; розробка і 
опис загальної алгоритмічної 
структури системи, що буде 
розроблятися  
 84 
Технічний проект  Розробка Уточнення структури вхідних і 
15.02.23 – 28.02.23  технічного проекту  вихідних даних; розробка докладного 
алгоритму; розробка структури 
програми; остаточне визначення 
конфігурації технічних засобів  
Робочий проект  Розробка Реалізація програмного забезпечення; 
01.03.23 – 10.04.23  програмного налагодження;  
забезпечення   проведення попереднього тестування  
Розробка Розробка Розробка необхідної документації, 
програмної документації до передбаченої технічним завданням  
документації програмного 
11.04.23 – 20.04.23  забезпечення  
Тестування Проведення Розробка методики тестування; 
системи  тестування проведення основних тестів; 
21.04.23 – 30.04.23  програмного коректування програмного 
забезпечення  забезпечення  
Впровадження  Підготовка і Підготовка і передача програмного 
передача програми забезпечення; навчання персоналу 
використовуванню програмного 
забезпечення; внесення коректувань в 
програмне забезпечення і 
документацію 
  
Порядок контролю та приймання 
Контроль і приймання розробки здійснюються на основі розробленої 
методики випробувань. При цьому перевіряється виконання всіх функцій програми. 
Хід проведення випробувань документується у «Протоколі проведення 
випробувань». На основі цього протоколу підписується акт приймання-здачі 
програми в експлуатацію.