You are on page 1of 31

ЗМІСТ

1 ЗАГАЛЬНИЙ РОЗДІЛ..................................................................................................
1.1 Клієнт-серверна архітектура.....................................................................................
1.2 Бази даних, їх типи та використання........................................................................
2 РОЗРОБКА ТЕХНІЧНОГО ПРОЕКТУ.....................................................................
2.1 Інструменти реалізації сервера...............................................................................
2.1.1 Мова програмування JavaScript...........................................................................
2.1.2 Мова програмування TypeScript..........................................................................
2.1.3 Програмна платформа NodeJS.............................................................................
2.1.4 Фреймворк для веб-розробки Express.................................................................
2.1.5 Об’єктно-реляційна проекція Prisma...................................................................
2.1.6 Сховище в оперативній пам’яті Redis.................................................................
2.1.7 Фреймворк для авторизації oauth2......................................................................
2.1.8 Середа розробки Visual Studio Code....................................................................
2.1.9 Postman – тестування REST API..........................................................................
2.1.10 Локальний сервер – OpenServer.........................................................................
2.1.11 Реляційна СКБД MariaDB..................................................................................
2.2 Чото там хз чо хехе пон да?....................................................................................
3 РЕАЛІЗАЦІЯ РОБОЧОГО ПРОЕКТУ......................................................................
3.1 делаем……................................................................................................................
4 ОХОРОНА ПРАЦІ ТА БЕЗПЕКА ЖИТТЄДІЯЛЬНОСТІ......................................
4.1 Вимоги щодо електричної безпеки.........................................................................
4.2 Шкода здоров’ю при роботі з комп’ютером і як його уникнути.........................
4.3 Вимоги до організації занять..................................................................................
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ......................................................................

ДП 123 ПЗ
Змн. Арк. № докум. Підпис Дата
Розроб. . Літ. Арк. Акрушів
Перевір.
Н.Контроль Пока хз еще подумаю ахахах
Н.Контроль
Реценз. ОФККТ , гр. 19ОКС1
Н.Контроль
Затвердив
5

ВСТУП

Можно ctrl+c ctrl+v у Егора?


мяу
6

1 ЗАГАЛЬНИЙ РОЗДІЛ

1.1 Клієнт-серверна архітектура

Клієнт-серверна архітектура (рис. 1.1) – архітектура комп’ютерної


мережі, в якій багато клієнтів (віддалених процесорів) запитують та отримують
послуги від централізованого сервера (хост-комп’ютера) [1].

Рисунок 1.1 – Приклад клієнт-серверної архітектури

Клієнт – локальний комп’ютер на стороні віртуального користувача,


який виконує надсилання запиту до сервера для надання даних або виконання
певної групи системних дій. Клієнтські комп’ютери надають інтерфейс, що
дозволяє користувачеві вимагати послуги сервера та відображати результати,
що повертаються сервером.
Сервер – комп’ютер чи спеціальне системне обладнання, яке обслуговує
запити клієнта, надає доступ до тих чи інших даних, змінює чи додає дані у
базу даних.
Особливості такої моделі полягають у тому, що користувач надсилає
певний запит на сервер, де той системно обробляється та кінцевий результат
надсилається клієнту. У можливості сервера входить одночасне обслуговування
кількох клієнтів [2].
7

Якщо одночасно надходить більше одного запиту, такі запити


встановлюються у певну чергу і сервером виконуються по черзі. Іноді запити
можуть мати свої пріоритети. Частина запитів із вищими пріоритетами
виконуватимуться в першочерговому порядку! Процес розподілу операцій
може сильно знизити навантаження на сервер.
Параметри, які можуть бути реалізовані на стороні сервера:
 зберігання, захист та доступ до даних;
 робота з клієнтськими запитами;
 процес надсилання відповіді клієнту.
Параметри, які можуть бути реалізовані на стороні клієнта:
 сервіс з надання користувальницького графічного інтерфейсу;
 формулювання запиту до сервера та його подальше відправлення;
 одержання підсумків запиту та надсилання додаткової групи команд
(запити на додавання, оновлення інформації, видалення групи даних).
Архітектура системи клієнт-сервер формулює принципи віртуального
спілкування між локальними комп’ютерами, проте правила і принципи
взаємодії перебувають усередині протоколу.
Мережевий протокол – це особливий набір правил, виходячи з якого
виконується взаємодія між комп’ютерами всередині віртуальної мережі.
Види мережевих протоколів:
1. TCP/IP – це особливе позначення всієї мережі, яка функціонує з
урахуванням протоколів TCP, і навіть IP.
2. TCP – вид протоколу, який є сполучною ланкою для встановлення
якісного з’єднання між 2 пристроями, передачі даних та верифікації їх
отримання.
3. IP – протокол, до якого входить коректність доставки повідомлень за
обраною адресою. У цьому інформація ділиться на пакети, які можуть
постачатися по-різному.
4. MAC – вид протоколу, виходячи з якого відбувається процес
верифікації мережевих пристроїв. Всі пристрої, які підключені до мережі
Інтернет, містять свою оригінальну MAC-адресу.
8

5. ICMP – протокол, відповідальний за обмін даними, але не


використовується для процесу передачі інформації.
6. UDP – протокол, керуючий передачею даних, але дані не проходять
верифікацію при отриманні. Цей протокол працює швидше, ніж протокол TCP.
7. HTTP – протокол передачі інформації (гіпертексту), за допомогою
якого функціонують усі сайти. У його можливості входить процес запитування
необхідних даних у віртуально віддаленої системи (файли, веб-сторінки та
інше).
8. FTP – протокол передачі з файлового сервера на ПК кінцевого
користувача.
9. POP3 – класичний протокол поштового з’єднання, відповідальний за
передачу пошти.
10. SMTP – вид протоколу, який може встановлювати правила передачі
віртуальної пошти. Він відповідальний за передачу та верифікацію доставки, а
також оповіщення про можливі помилки.

Рисунок 1.2 – Протоколи та їх рівні моделі OSI

Є одразу два види клієнт-серверних архітектур:


 дворівнева;
9

 трирівнева.
Дворівнева складається з двох вузлів:
 сервер, який відповідає за отримання вхідних запитів та надсилання
відповіді користувачу, застосовуючи при цьому власні ресурси системи;
 клієнт, який може надавати користувальницький графічний інтерфейс.
Особливості роботи полягають у тому, що на сервер надходить певний
запит, потім його обробляють та повертають безпосередньо, без додаткового
застосування групи зовнішніх ресурсів.
Трирівнева система складається з використання таких компонентів:
 надання інформації – графічний інтерфейс користувача, прикладний
об’єкт у вигляді сервера програми;
 менеджмент ресурсів – сервер БД, який може надавати дані.
Особливість роботи у тому, що кілька серверів можуть обробляти
клієнтські запити. Процес розподілу операцій може істотно знизити
навантаження на сервер, що використовується.
Трирівнева архітектура може трансформуватися до багаторівневої
установки групи додаткових серверів. Подібна віртуальна архітектура дозволяє
значно підвищити ефективність функціонування інформаційних систем, а
також виконати оптимізований розподіл частини її програмно-апаратних
ресурсів.

1.2 Бази даних, їх типи та використання

База даних – організований набір структурованої інформації (даних),


призначена для зберігання, зміни та обробки взаємопов’язаної інформації,
переважно у великих об’ємах. Використовується у тому числі у клієнт-
серверній архітектурі. База даних керується системою керування базами даних
[3].
Система керування базами даних (СКБД) – це комплекс програмних
засобів, необхідні для створення структури нової бази, її наповнення,
редагування змісту і відображення інформації.
10

Бази даних значно змінилися з їх появи на початку 1960-х років.


Вихідними системами, які використовувалися для зберігання та обробки даних,
були навігаційні бази даних – наприклад, ієрархічні бази даних (які спиралися
на деревоподібну модель і допускали лише відношення «один-до-багатьох») та
бази даних з мережевою структурою (гнучкіша модель, що допускає численні
відносини). Незважаючи на простоту, ці ранні системи були негнучкими. У
1980-х роках стали популярними реляційні бази даних (рис. 1.3), у 1990-х роках
за ними були об’єктно-орієнтовані бази даних.

Рисунок 1.3 – Таблиці та їх зв’язки в реляційних БД

Дані у найпоширеніших типах сучасних баз даних зазвичай зберігаються


у вигляді рядків і стовпців, що формують таблицю. Цими даними можна легко
керувати, змінювати, оновлювати, контролювати та впорядковувати. У
більшості баз даних для запису та запитів даних використовується мова
структурованих запитів (SQL).
Structured Query Language (SQL) – мова структурованих запитів, що
використовується для створення, модифікації та керування даними в реляційній
базі даних, що керується відповідною системою керування базами даних.
SQL (без ряду сучасних розширень) вважається не повною за Тюрінгом
мовою програмування, але водночас стандарт мови специфікацією SQL/PSM
передбачає можливість його процедурних розширень.
Спочатку SQL був основним способом взаємодії користувача з базою
11

даних і дозволяв виконувати наступний набір операцій:


 створення у базі даних нової таблиці;
 додавання до таблиці нових записів;
 зміна записів;
 видалення записів;
 вибірка записів з однієї або декількох таблиць (відповідно умови);
 зміна структур таблиць.
Згодом SQL ускладнився – збагатився новими конструкціями,
забезпечив можливість опису та керування новими об’єктами, що зберігаються
(наприклад, індекси, уявлення, тригери та процедури) – і став набувати рис,
властивих мовам програмування.
Типи баз даних:
1. Реляційні (табличні) – дані організовані у вигляді таблиць, які
створені з стовпців і рядків. Реляційна СКБД забезпечує швидкий та
ефективний доступ до структурованої інформації.
2. Ієрархічні (деревоподібні) – кожен об’єкт може включати кілька
об’єктів нижчого рівня. Такі об’єкти перебувають у відношенні предка (об’єкт
ближчий до кореня) до нащадка (об’єкт нижчого рівня), при цьому можлива
ситуація, коли об’єкт-предок має кілька нащадків.
3. Мережеві (графоподібні) – зберігає дані у контексті сутностей та
зв’язків між ними.
4. Об’єктно-орієнтовані – дані моделюються у вигляді об’єктів, їх
атрибутів, методів та класів.
5. NoSQL – вся інформація зберігається без чітко встановленої
структури та явних зв’язках між усіма даними.
Нещодавно внаслідок зростання Інтернету і виникнення необхідності
аналізу неструктурованих даних з’явилися бази даних NoSQL. В даний час
хмарні бази даних та автономні бази даних відкривають нові можливості щодо
способів збирання, зберігання, використання даних та керування ними.
Сьогодні підприємства мають доступ до більшої кількості даних, ніж
будь-коли раніше. Організації використовують бази даних, щоб вийти за рамки
12

базового зберігання даних для аналізу у величезних обсягах з кількох систем.


Використовуючи базу даних, організації тепер можуть ефективніше обробляти
дані, підвищуючи гнучкість і масштабованість даних.
Найбільш поширеними СКБД є:
1. MySQL – одна з найпоширеніших СКБД. Вона використовується, в
першу чергу, для створення динамічних вебсторінок, оскільки має чудову
підтримку з боку різноманітних мов програмування [4].
2. MariaDB – реляційна СКБД, створена на початку 2009 як
відгалуження (форк) MySQL. MariaDB поширюється під вільною та відкритою
ліцензією GNU GPL [5].
3. PostgreSQL – об’єктно-реляційна СКБД. Порівняно з іншими
проєктами з відкритим кодом, PostgreSQL не контролюється якоюсь однією
компанією, її розробка можлива завдяки співпраці багатьох людей та компаній,
які хочуть використовувати цю СКБД та впроваджувати у неї найновіші
досягнення [6].
4. MongoDB – документо-орієнтована СКБД з відкритим вихідним
кодом, яка не потребує опису схеми таблиць. MongoDB підтримує зберігання
документів в JSON-подібному форматі, має досить гнучку мову для
формування запитів, може створювати індекси для різних збережених
атрибутів, ефективно забезпечує зберігання великих бінарних об’єктів,
підтримує журналювання операцій зі зміни і додавання даних в БД, може
працювати відповідно до парадигми Map/Reduce, підтримує реплікацію і
побудову відмовостійких конфігурацій [7].
5. Oracle Database – об’єктно-реляційна СКБД від Oracle Corporation.
6. Microsoft SQL Server – СКБД, яка розробляється корпорацією
Microsoft.
13

2 РОЗРОБКА ТЕХНІЧНОГО ПРОЕКТУ

2.1 Інструменти реалізації сервера

Під час розробки сервера були використані такі інструменти:


 TypeScript – мова програмування на основі JavaScript з типізацією;
 NodeJS – програмна платформа, що перетворює JavaScript з
вузькоспеціалізованої мови на мову загального призначення;
 Express – фреймворк для веб-розробки під NodeJS;
 Prisma – об’єктно-реляційна проекція (ORM) для TypeScript;
 Redis – розподілене сховище пар ключ-значення;
 oauth2 – фреймворк для авторизації;
 протоколи TCP/IP, HTTP/HTTPS, SFTP, POP3;
 середа розробки Visual Studio Code;
 Postman – це API-платформа для тестування своєї API;
 OpenServer – локальний веб-сервер;
 MariaDB – реляційна система управління базами даних, створена як
відгалуження (Форк) MySQL.

2.1.1 Мова програмування JavaScript

JavaScript (JS) – динамічна, об’єктно-орієнтована прототипна мова


програмування. Реалізація стандарту ECMAScript. Найчастіше
використовується для створення сценаріїв вебсторінок, що надає можливість на
боці клієнта (пристрої кінцевого користувача) взаємодіяти з користувачем,
керувати браузером, асинхронно обмінюватися даними з сервером [8].
14

Мова JavaScript використовується для:


 написання сценаріїв вебсторінок для надання їм інтерактивності;
 створення односторінкових та прогресивних вебзастосунків (React,
AngularJS, Vue.js, Svelte);
 програмування на боці сервера (Node.js(Express.js));
 стаціонарних застосунків (Electron, NW.js);
 мобільних застосунків (React Native, Cordova);
 сценаріїв в прикладних програмах (наприклад, в програмах зі складу
Adobe Creative Suite чи Apache JMeter);
 всередині PDF-документів тощо.
1995 року компанія Netscape поставила завдання вбудувати мову
програмування Scheme чи «якусь схожу» в браузер Netscape. Також, для
прискорення розробки, Netscape почали співробітництво з компанією Sun
Microsystems.
З часом, концепція розроблюваної мови програмування була розширена
до можливості використання безпосередньо в HTML-коді сторінки. Компанії
мали на меті створити мову, що могла зв’язати різні частини вебсайтів:
зображень, Java-аплетів, об’єктної моделі документа. Ця мова повинна була
стати зручною для вебдизайнерів та некваліфікованих програмістів. Робочою
назвою нової мови була Mocha, яка була змінена на LiveScript в перших двох
бета-версіях браузера Netscape 2.0. А дещо пізніше, користуючись
популярністю бренду Java, LiveScript був перейменований на JavaScript і третя
бета-версія (2.0B3) Netscape 2.0 вже вийшла з сучасною назвою. Для цього була
придбана відповідна ліцензія у компанії Sun Microsystems, що володіла
брендом Java.
У листопаді 1996 року Netscape заявила, що відправила JavaScript в
організацію Ecma International для розгляду мови як промислового стандарту. В
результаті подальшої роботи з’явилась стандартизована мова з назвою
ECMAScript.

2.1.2 Мова програмування TypeScript


15

TypeScript – це строго типізована мова програмування, яка базується на


JavaScript. Представлена Microsoft восени 2012; позиціонується як засіб
розробки вебзастосунків, що розширює можливості JavaScript [9].
Код експериментального компілятора, котрий транслює код TypeScript в
представлення JavaScript, поширюється під ліцензією Apache, розробка
ведеться в публічному репозиторії через сервіс CodePlex.
TypeScript є зворотньо сумісним з JavaScript. Фактично, після компіляції
програму на TypeScript можна виконувати в будь-якому сучасному браузері або
використовувати спільно з серверною платформою Node.js.
Переваги над JavaScript:
 можливість явного визначення типів (статична типізація);
 підтримка використання повноцінних класів (як в традиційних
об’єктно-орієнтованих мовах);
 підтримка підключення модулів.
За задумом ці нововведення мають підвищити швидкість розробки,
прочитність, рефакторинг і повторне використання коду, здійснювати пошук
помилок на етапі розробки та компіляції, а також швидкодію програм.

2.1.3 Програмна платформа NodeJS

Node.js – це кросплатформне бекендове середовище виконання


JavaScript з відкритим вихідним кодом, яке працює на V8 (JavaScript Engine) і
виконує код JavaScript поза веб-браузером. Розроблений для створення
масштабованих мережевих програм. Node.js дозволяє розробникам
використовувати JavaScript для написання інструментів командного рядка та
для створення сценаріїв на стороні сервера – виконання сценаріїв на стороні
сервера для створення динамічного вмісту веб-сторінки перед тим, як сторінка
надсилається у веб-браузер користувача [10].
Отже, Node.js представляє парадигму «JavaScript everywhere»,
об’єднуючи розробку веб-додатків навколо однієї мови програмування, а не
16

різних мов для серверних і клієнтських сценаріїв.


Node.js має подійно-орієнтовану архітектуру з можливістю
асинхронного введення-виведення. Ці варіанти дизайну спрямовані на
оптимізацію пропускної здатності та масштабованості у веб-додатках із
багатьма операціями введення/виведення, а також для веб-додатків у реальному
часі (наприклад, програм для спілкування в реальному часі та браузерних ігор).
npm (node package manager) – це стандартний менеджер пакетів, що
автоматично встановлюється разом з Node.js. Він використовується для
завантаження пакетів з хмарного сервера npm, або для завантаження пакетів на
ці сервери.

2.1.4 Фреймворк для веб-розробки Express

Express є популярним веб-фреймворком, написаним на JavaScript і


працюючим усередині середовища виконання Node.js. Реалізований як вільне і
відкрите програмне забезпечення під ліцензією MIT. Він спроектований для
створення веб застосунків і API. Де-факто є стандартним каркасом для Node.js.
Цей модуль висвітлює деякі ключові переваги цього фреймворку,
встановлення середовища розробки та виконання основних завдань веб-
розроблення та розгортання [12].
Якщо ви хочете додати спеціальну обробку для різних HTTP методів
(GET, POST, DELETE тощо), окремо обробляти запити за різними шляхами
URL («маршрутами»), обслуговувати статичні файли або використовувати
шаблони для динамічного створення відповіді, Node сам по собі не принесе
великої користі. Вам доведеться або самостійно написати код, або ви можете не
винаходити велосипед і використовувати веб-фреймворк (наприклад Express).
Express забезпечує такі механізми:
 обробку запитів з різними HTTP методами для різних URL-шляхів;
 генерування відповідей, вставляючи дані в шаблони;
 проміжна обробка запитів.
Хоча Express сам по собі досить мінімалістичний, розробники створили
17

сумісні пакети проміжного програмного забезпечення для вирішення майже


будь-якої проблеми веб-розробки. Існують бібліотеки для роботи з файлами
cookie, сеансами, логінами користувачів, параметрами URL, даними POST,
заголовками безпеки та багатьма іншими [13].
2.1.5 Об’єктно-реляційна проекція Prisma

Об’єктно-реляційна проекція (англ. Object-relational mapping, сокр.


ORM) це технологія програмування, яка зв’язує бази даних з концепціями
об’єктно-орієнтованих мов програмування, створюючи «віртуальну об’єктну
базу даних».

Рисунок 2.1 – Приклад ORM для Java (Hibernate)

Prisma – це сучасне об’єктно-реляційна проекція для Node.js та


TypeScript. Простіше кажучи, Prisma – це інструмент, що дозволяє працювати
базами даних за допомогою JavaScript або TypeScript без використання SQL
[15].
Prisma складається з наступних інструментів:
 Prisma Client: Автогенерований та типобезпечний клієнт бази даних;
 Prisma Migrate: Декларативне моделювання даних та міграції з
можливістю редагування;
18

 Prisma Studio: Сучасний інтерфейс користувача для перегляду та


редагування даних.
При використанні Prisma потрібно визначити модель даних у Prisma
schema (рис. 2.2). Кожна з цих моделей описує таблицю у відповідній базі
даних (рис. 2.3) і служить основою для згенерованого доступу до даних за
допомогою API, що надається Prisma Client.

Рисунок 2.2 – Приклад опису схеми БД за допомогою Prisma

Рисунок 2.3 – Приклад опису той самої схеми БД на мові SQL


19

Основною перевагою роботи з Prisma Client є те, що вона дозволяє


розробникам мислити об’єктами і тому пропонує звичний і природний спосіб
розмірковувати про свої дані.
У Prisma Client немає концепції екземплярів моделі. Натомість вона
допомагає сформувати запити до бази даних, які завжди повертають прості
об’єкти JavaScript.
Також як бонус для розробників TypeScript: Всі результати запитів
Prisma Client повністю типізовані. Фактично, Prisma забезпечує найсильніші
гарантії безпеки типів серед усіх ORM на TypeScript.

2.1.6 Сховище в оперативній пам’яті Redis

Memcached – комп’ютерна програма, сервіс кешування даних в


оперативній пам’яті на основі парадигми розподіленої хеш-таблиці [16].
З допомогою клієнтської бібліотеки (для Perl, PHP, Python, Java, тощо)
дозволяє кешувати дані в оперативно запамятовуєчому пристрої (ПЗП) одного
або декількох серверів. Розподіл даних реалізується по значенню хеш ключа.
Використовуючи ключ даних, клієнтська бібліотека визначає його хеш і
використовує його для вибору відповідного сервера. Ситуація збою сервера
трактується як промах кешу. Це дозволяє, зокрема, проводити гарячу заміну
серверів.
Redis – розподілене сховище пар ключ-значення, які зберігаються в
оперативній пам’яті, з можливістю забезпечувати довговічність зберігання на
бажання користувача [17].
20

Рисунок 2.4 – Приклад користування Redis


Redis надає схожі на Memcached функції для зберігання даних в форматі
ключ/значення, розширені підтримкою структурованих даних, таких як списки,
хеші і множини. На відміну від Memcached, Redis забезпечує постійне
зберігання даних на диску і гарантує збереження БД у разі аварійного
завершення роботи. Клієнтські бібліотеки доступні для більшості популярних
мов, включаючи Perl, Python, PHP, Java, Ruby і Tcl.
Є підтримка транзакцій, що дозволяють виконати за один крок групу
команд, гарантуючи несуперечність і послідовність виконання заданого набору
команд, а в разі проблем дозволяє відкотити зміни. Всі дані у повному обсязі
кешуються в оперативній пам’яті. Зберігання всіх даних в оперативній пам’яті
дозволяє досягнути значної продуктивності.
На зовнішньому рівні абстракції, модель даних в Redis це асоціативний
масив в якому ключі відображаються в значення. Основною відмінністю між
Redis та іншими базами такого типу в тому, що значення словника не обмежені
рядковими типами. Redis підтримує високорівневі атомні операції на стороні
сервера, такі як перетин, об’єднання та різниця між множинами та списками.

2.1.7 Фреймворк для авторизації oauth2


21

OAuth 2 являє собою фреймворк для авторизації, що дозволяє програмам


здійснювати обмежений доступ до облікових записів користувачів на HTTP
сервісах, наприклад: Google, Facebook, GitHub, Twitter, Discord, Patreon,
Telegram, тощо. Він працює за принципом делегування аутентифікації
користувача сервісу, на якому знаходиться обліковий запис користувача,
дозволяючи сторонньому додатку отримувати доступ до облікового запису
користувача [19].
OAuth 2.0 зосереджується на простоті розробника клієнта, водночас
надаючи спеціальні потоки авторизації для веб-програм, настільних програм,
мобільних телефонів і пристроїв у вітальні [20].
OAuth визначає чотири ролі:
1. Власник ресурсу – користувач, який авторизує програму для доступу
до свого облікового запису. Доступ програми до облікового запису користувача
обмежений «областю видимості» (scope) наданих прав авторизації.
2. Сервер ресурсів / авторизації: API
Сервер ресурсів безпосередньо зберігає захищені дані облікових записів
користувачів, а авторизаційний сервер перевіряє справжність інформації,
наданої користувачем, а потім створює авторизаційні токени для програми, за
допомогою яких програма буде здійснювати доступ до даних користувача.
З погляду розробника програми API сервісу одночасно виконує роль
сервера ресурсів і роль сервера авторизації. Далі ми рахуватимемо ці дві ролі
однією, і називати її Сервіс або API.
3. Клієнт – додаток, програма, яка хоче здійснити доступ до облікового
запису користувача. Перед здійсненням доступу програма має бути
авторизована користувачем, а авторизація має бути схвалена з боку API.
22

Рисунок 2.5 – Взаємодія клієнта та сервера з OAuth

Послідовність запитів при авторизації:


1. Програма запитує користувача авторизацію на доступ до сервера
ресурсів.
2. Якщо користувач авторизує запит, програма отримує дозвіл на
авторизацію (authorization grant).
3. Програма запитує авторизаційний токен у сервера авторизації (API)
шляхом надання інформації про себе і дозвіл на авторизацію від користувача.
4. Якщо аутентифікація програми підтверджена і авторизація дійсна,
сервер авторизації (API) створює токен доступу для програми. Процес
авторизації завершено.
5. Програма запитує ресурс у сервера ресурсів (API), надаючи при цьому
токен доступу для аутентифікації.
6. Якщо токен дійсний, сервер ресурсів (API) надає запитаний ресурс
додатку.

2.1.8 Середа розробки Visual Studio Code

Visual Studio Code (VS Code) – це редактор вихідного коду, створений


Microsoft за допомогою Electron Framework для Windows, Linux і macOS. Має
підтримку налагодження, підсвічування синтаксису, інтелектуальне завершення
23

коду, фрагменти, рефакторинг коду та вбудований Git. Користувачі можуть


змінювати тему, комбінації клавіш, параметри та встановлювати розширення,
які додають додаткові функції [21].
Продукт підтримує розробку для платформ ASP.NET і Node.js, і
позиціюється як легковагове рішення, що дозволяє обійтися без повного
інтегрованого середовища розробки. Серед підтримуваних мов і технологій:
JavaScript, C++, C#, TypeScript, jade, PHP, Python, XML, Batch, F#, DockerFile,
Coffee Script, Java, HandleBars, R, Objective-C, PowerShell, Luna, Visual Basic,
Markdown, JSON, HTML, CSS, LESS і SASS, Haxe [22].

2.1.9 Postman – тестування REST API

Postman – це API-платформа, на якій розробники можуть проектувати,


створювати, тестувати та повторювати свої API. Станом на квітень 2022 року
Postman повідомляє про наявність понад 20 мільйонів зареєстрованих
користувачів і 75 000 відкритих API, що, за його словами, є найбільшим у світі
публічним центром API [23]. З його допомогою можна протестувати бекенд та
переконатися, що він коректно працює.
Тестувальнику цей інструмент дозволяє [24]:
 надсилати запити та отримувати відповіді;
 зберігати запити до папок та колекцій;
 змінювати параметри запитів;
 змінювати оточення (dev, test, production);
 виконувати автотести, використовуючи Collections runner, зокрема за
розкладом;
 імпортувати та експортувати колекції запитів та набори тестів, щоб
обмінюватися даними з колегами.

2.1.10 Локальний сервер – OpenServer

Open Server Panel – це портативне програмне середовище, створене


24

спеціально для веб-розробників з урахуванням їх рекомендацій та побажань.


Даний програмний комплекс включає ретельно підібраний набір
серверного програмного забезпечення, а також неймовірно зручну і продуману
керуючу утиліту, яка володіє потужними можливостями з адміністрування і
налаштування всіх доступних компонентів [25].

Рисунок 2.6 – Графічний інтерфейс користувача OpenServer


OSPanel широко використовується з метою розробки, налагодження та
тестування веб-проектів, а також надання веб-сервісів у локальних мережах.
Базові модулі: Apache, Bind, FTP FileZilla, Ghostscript, Nginx, NNCron
Lite, Sendmail.
Програми: Adminer, ConEmu, HeidiSQL, PHPMemcachedAdmin,
PHPMyAdmin, PHPPgAdmin, PHPRedisAdmin.
СКБД/NoSQL модулі: MariaDB, Memcached, MongoDB, MySQL,
PostgreSQL, Redis.

2.1.11 Реляційна СКБД MariaDB

Сервер MariaDB є одним із найпопулярніших серверів баз даних у світі.


Він створений оригінальними розробниками MySQL. Відомими користувачами
є Wikipedia, WordPress.com і Google.
25

MariaDB перетворює дані на структуровану інформацію в широкому


спектрі додатків, починаючи від банківських і закінчуючи веб-сайтами.
Спочатку розроблений як розширена заміна MySQL, MariaDB
використовується тому, що він швидкий, масштабований і надійний, з багатою
екосистемою механізмів зберігання даних, плагінів і багатьох інших
інструментів, що робить його дуже універсальним для широкого спектру
випадків використання [26].
MariaDB розроблено як програмне забезпечення з відкритим кодом і як
реляційна база даних забезпечує інтерфейс SQL для доступу до даних. Останні
версії MariaDB також містять функції GIS та JSON.
Поштовхом до створення MariaDB стала необхідність забезпечення
вільного статусу СКБД, на противагу політиці ліцензування MySQL фірмою
Oracle. Засновниками проекту виступили початкові розробники MySQL.
Система ліцензування MariaDB зобов’язує учасників, які бажають додати свій
код в основну гілку СКБД, обмінюватись своїми авторськими правами з
MariaDB Foundation для охорони ліцензії та можливості створювати критичні
виправлення для MySQL [27].

MariaDB має намір підтримувати високу сумісність з MySQL,


забезпечуючи точну відповідність з API та командами MySQL. До складу
MariaDB включена підсистема зберігання даних XtraDB для можливості заміни
InnoDB як основної підсистеми зберігання. Також включені підсистеми Aria,
PBXT та FederateX.

2.2 Чото там хз чо хехе пон да?

хезееххехехех
26

3 РЕАЛІЗАЦІЯ РОБОЧОГО ПРОЕКТУ

3.1 делаем……..

Ачо делаем то……….


27

4 ОХОРОНА ПРАЦІ ТА БЕЗПЕКА ЖИТТЄДІЯЛЬНОСТІ

Нехтування правилами безпеки при роботі з комп’ютером може


призвести до негативних наслідків для користувача у вигляді шкоди здоров’ю
та майну. Навіть дотримуючись техніки безпеки як з роботою зі складним
побутовим пристроєм, ви можете отримати непряму шкоду своєму здоров’ю,
якщо не дотримуватиметеся рекомендацій лікарів, спеціально розроблених для
користувачів ПК.

4.1 Вимоги щодо електричної безпеки

Персональний комп’ютер – електроприлад. Від інших приладів він


відрізняється тим, що для нього передбачена можливість тривалої експлуатації
без відключення від електричної мережі. Крім звичайного режиму роботи,
комп’ютер може перебувати в режимі роботи зі зниженим електроспоживанням
або в черговому режимі очікування запиту. У зв’язку з можливістю тривалої
роботи комп’ютера без відключення електромережі слід приділити особливу
увагу якості організації електроживлення.
Неприпустимим є використання неякісних та зношених компонентів у
системі електропостачання, а також їх сурогатних замінників: розеток,
подовжувачів, перехідників, трійників. Неприпустимо самостійно
модифікувати розетки для підключення вилок, які відповідають іншим
стандартам. Електричні контакти розеток не повинні зазнавати механічних
навантажень, пов’язаних із підключенням масивних компонентів (адаптерів,
трійників тощо).
Всі кабелі та кабелі живлення повинні розташовуватися з задньої
сторони комп’ютера і периферійних пристроїв. Їхнє розміщення в робочій зоні
користувача неприпустимо.
Забороняється проводити будь-які операції, пов’язані з підключенням,
вимкненням або переміщенням компонентів комп’ютерної системи без
28

попереднього вимкнення живлення.


Комп’ютер не слід встановлювати поблизу електронагрівальних
приладів та систем опалення.
Не можна розміщувати на системному блоці, моніторі та периферійних
пристроях сторонні предмети: книги, аркуші паперу, серветки, чохли для
захисту від пилу. Це призводить до постійного або тимчасового перекриття
вентиляційних отворів.
Забороняється впроваджувати сторонні предмети в експлуатаційні чи
вентиляційні отвори компонентів комп’ютерної системи.
Монітор має елементи, здатні зберігати високу напругу протягом
тривалого часу після вимкнення мережі. Розкриття монітора користувачем
неприпустимо за жодних умов. Це не тільки небезпечно для життя, але й
технічно марно, тому що всередині монітора немає жодних органів,
регулюванням або налаштуванням яких користувач міг би покращити його
роботу. Розкриття та обслуговування моніторів може здійснюватися лише у
спеціальних майстернях [29].

4.2 Шкода здоров’ю при роботі з комп’ютером і як його уникнути

Тривала робота з комп’ютером призводить до накопичувального


негативного впливу здоров’я, тобто. шкода довгий час може не виявлятися
явно, а поступово і непомітно накопичується. Найнебезпечнішими впливами на
здоров’я є:
 Високе навантаження на органи зору, що викликає його погіршення та
появу синдромів «червоного ока» та «сухого ока».
 Захворювання суглобів, спричинене неправильною позою під час
тривалої роботи з комп’ютером.
 Високе навантаження на психіку та нервову систему, що виникає при
тривалій концентрації уваги при великому потоці інформації тривалий час.
Дотримання простих правил під час роботи з комп’ютером допоможе
максимально прибрати негативний вплив на ваше здоров’я (рис. 4.1).
29

1. Дотримання правильної відстані до монітора. Правильною відстанню


від очей до екрана вважається та відстань, при якій користувач може
дотягнутися кінчиками пальців прямої руки до верху монітора.
2. Клавіатура повинна знаходитися за 20-30 см від краю столу.
3. Стілець або крісло повинні забезпечити пряму поставу, коли спина
трохи впирається в спинку крісла або стільця.
4. При роботі з клавіатурою та мишею руки мають бути зігнуті, а лікті
розташовуватись на столі або підлокітниках крісла. У такому положенні рук
відсутня напруга в кистях. При роботі з комп’ютерною мишею положення рук
не повинно сильно змінюватися.
5. Ноги не повинні бути зігнуті під стілець або крісло, а випрямлятися
вперед з упором у тверду поверхню.
6. Щогодини робити коротку перерву в роботі з комп’ютером і робити
невелику розминку для зняття напруги у суглобах та м’язах. Для зняття
напруги в очах корисно буде зробити зарядку для органів зору, яка включає
кругові рухи відкритими очима, зміна точки фокусування очей з близькою до
далекої.

Рисунок 4.1 – Правила під час роботи з комп’ютером

4.3 Вимоги до організації занять

Екран монітора – не єдине джерело шкідливих електромагнітних


випромінювань. Розробники моніторів досить давно та успішно займаються їх
30

подоланням. Найменше уваги приділяється шкідливим побічним


випромінюванням, що виникають з боку бічних та задньої стінок обладнання. У
сучасних комп’ютерних системах ці зони найнебезпечніші.
Монітор комп’ютера слід розташовувати так, щоб задньою стінкою він
був звернений не до людей, а до стіни приміщення (рис. 4.2). У комп’ютерних
класах, що мають кілька комп’ютерів, робочі місця повинні розташовуватись
по периферії приміщення, залишаючи вільним центр. При цьому додатково
необхідно перевірити кожне з робочих місць відсутність прямого відображення
зовнішніх джерел освітлення. Як правило, досягти цього для всіх робочих місць
одночасно досить важко. Можливе рішення полягає у використанні штор на
вікнах та продуманому розміщенні штучних джерел загального та місцевого
освітлення.

Рисунок 4.2 – Розміщення комп’ютерів у комп’ютерному класі

Сильними джерелами електромагнітних випромінювань є пристрої


безперебійного живлення. Розташовувати їх слід якнайдалі від посадкових
місць користувачів.
У організації занять значної ролі грає їх тривалість, від якої залежить
31

психофізіологічні навантаження. Для школярів старших класів тривалість


сеансу роботи з комп’ютером має перевищувати 30 хвилин, для школярів
молодших класів – 20 хвилин. Решта часу уроку інформатики відводиться
спілкуванню з учителем та навчальними посібниками.
У зв’язку з браком устаткування комп’ютерних класах іноді проводять
групові заняття, під час яких двоє-троє учнів займаються однією робочому
місці. Цей організаційний прийом неприпустимий з гігієнічної точки зору.
Деяким учням доводиться розташовуватися збоку монітора, що негативно
позначається як у органах зору, і на опорно-рухової системі. Навчальний
процес необхідно планувати те щоб кожен учень мав можливість освоїти
правильні прийоми роботи з комп’ютером.
32

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

1. Еще придумаю когда-то когда-то [Електронний ресурс] – Режим


доступу: https://www.britannica.com/technology/client-server-architecture
2. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://testmatick.com/ru/osnovnye-ponyatiya-i-osobennosti-klient-servernoj-
arhitektury/
3. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://www.oracle.com/database/what-is-database/
4. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://www.mysql.com/about/
5. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://mariadb.org/about/
6. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://www.postgresql.org/about/
7. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://www.mongodb.com/
8. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://en.wikipedia.org/wiki/JavaScript
9. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://www.typescriptlang.org/
10. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://nodejs.org/uk/about/
11. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://www.npmjs.com/
12. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://expressjs.com/
13. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/
Introduction
33

14. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:


https://www.prisma.io/about
15. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://habr.com/ru/post/588562/
16. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://uk.wikipedia.org/wiki/Memcached
17. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://uk.wikipedia.org/wiki/Redis
18. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://redis.io/
19. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://www.digitalocean.com/community/tutorials/oauth-2-ru
20. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://oauth.net/2/
21. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://en.wikipedia.org/wiki/Visual_Studio_Code
22. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://code.visualstudio.com/docs
23. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://www.postman.com/company/about-postman/
24. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://habr.com/ru/company/maxilect/blog/596789/
25. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://ospanel.io/
26. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://mariadb.org/about/
27. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://ru.wikipedia.org/wiki/MariaDB
28. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
https://pc-school.ru/texnika-bezopasnosti-i-pravila-raboty-s-kompyuterom/
29. Еще придумаю когда-то [Електронний ресурс] – Режим доступу:
34

https://docs.google.com/document/preview?
hgd=1&id=1GcjbVk2B1JiLD_T853kiPsdSDuJF99tfXN_LMxNEeBI
всем спасибо всем пока жду свою пятор очку а пока я могу пойти там не
знаю поспать штоле пака

You might also like