7.57M

ДИПЛОМ Біушкін (4)

1.

4
АНОТАЦІЯ
Дипломний проєкт освітньо-професійного ступеня «фаховий молодший
бакалавр» на тему: «Веб-система формування та аналізу розкладу занять навчального
закладу» /Б-ДФКПБКТ; Керівник: викладач Кюссе Є.І., студент: Біушкін І.О., група
П-41/
Пояснювальна записка містить: 102 сторінок, 34 рисунків, 15 таблиць, 18
джерел.
Графічна частина: 14 слайдів в електронній презентації.
Об’єкт розробки – процес формування, збереження та аналітичного
опрацювання розкладу навчальних занять у закладі освіти за допомогою
вебтехнологій.
Мета проєкту – створення сучасної, функціональної та безпечної веб-системи,
яка забезпечує автоматизацію складання розкладу, облік навчального навантаження
викладачів, контроль виконання навчальних планів і динамічний аналіз використання
аудиторного фонду.
У межах проєкту розроблено веб-застосунок на основі фреймворку Django,
мова програмування Python із використанням реляційної бази даних SQLite.
Клієнтська частина реалізована за допомогою HTML5, CSS3 та JavaScript. Система
забезпечує
зручний
багатокористувацький
доступ
відповідно
до
ролей
(адміністратор, викладач, студент), автоматичне запобігання конфліктам часу й
аудиторій, динамічний розрахунок показників від дати початку семестру, а також
експорт готового розкладу у формат Excel.
Впровадження
даного
рішення
дозволить
автоматизувати
щоденні
адміністративні процеси коледжу, мінімізувати помилки ручного планування,
зменшити навантаження на навчальний відділ та покращити оперативність прийняття
управлінських рішень.
Ключові слова: ВЕБ-СИСТЕМА, РОЗКЛАД ЗАНЯТЬ, DJANGO, PYTHON,
SQLITE, АНАЛІТИКА НАВАНТАЖЕННЯ, АВТОМАТИЗАЦІЯ ОСВІТНЬОГО
ПРОЦЕСУ, КОРИСТУВАЦЬКИЙ ІНТЕРФЕЙС.

2.

5
ABSTRACT
The diploma project for the educational and professional degree of “Professional
Junior Bachelor” is titled: ""Web System for Formatting and Analyzing the Schedule of
Educational Institution Classes" /B-DFKPBBKT; Supervisor: Lecturer Kiusse Y.I., Student:
Biushkin I.O., Group P-41
The explanatory note contains: 102 pages, 34 figures, 15 tables, 18 sources.
Graphic part: 16 slides in an electronic presentation.
Object of development – the process of formatting, storing, and analytical processing
of the educational institution class schedule using web technologies.
Project objective – to develop a modern, functional, and secure web system that
provides automation of scheduling, tracking of teacher workloads, monitoring of curriculum
execution, and dynamic analysis of classroom resource utilization.
As part of the project, a web application was developed based on the Django
framework (Python programming language) using the SQLite relational database. The
client-side is implemented using HTML5, CSS3, and JavaScript. The system ensures
convenient multi-user access based on roles (administrator, teacher, student), automatic
prevention of time and classroom conflicts, dynamic calculation of indicators from the
semester start date, and schedule export to Excel format.
The implementation of this solution will help automate the daily administrative
processes of the college, minimize manual planning errors, reduce the workload on the
academic department, and improve the efficiency of managerial decision-making. The
project also addresses occupational health and safety issues and includes economic
efficiency calculations for the development.
Keywords: WEB SYSTEM, CLASS SCHEDULE, DJANGO, PYTHON, SQLITE,
WORKLOAD ANALYTICS, EDUCATIONAL PROCESS AUTOMATION, USER
INTERFACE.

3.

6
ЗМІСТ
ВСТУП............................................................................................................................7
РОЗДІЛ 1. АНАЛІЗ ВИМОГ ДО ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ...................9
1.1 Аналіз вимог до програмного забезпечення......................................................9
1.2 Аналітичний огляд існуючих рішень в області веб-додатків ........................ 10
1.3 Порівняння існуючих аналогів із розробленою системою.............................13
1.4 Технічне завдання .............................................................................................. 14
РОЗДІЛ 2. РОЗРОБКА РОБОЧОГО ПРОЄКТУ.......................................................17
2.1. Моделювання структури та поведінки сайту засобами UML.......................17
2.1.1. Функціональне моделювання за допомогою діаграми прецедентів ...... 18
2.1.2. Динамічне моделювання за допомогою діаграм послідовностей. ......... 19
2.2. Розробка структури проєкту.............................................................................20
2.3. Обґрунтування вибору засобів розробки........................................................24
2.4. Створення та верстка сторінок сайту..............................................................27
2.5 Розробка структури бази даних сайту .............................................................41
2.6 Програмування сайту.........................................................................................48
2.7 Аналіз якості та тестування роботи додатку ................................................... 55
РОЗДІЛ 3. ВПРОВАДЖЕННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ .................... 58
3.1 Інструкція з розміщення сайту в Інтернеті......................................................58
3.2 Інструкція з обслуговування та оновлення сайту ........................................... 59
3.3 Підтримка та подальший розвиток...................................................................60
3.4 Дослідження засобів розгортання програмного забезпечення ......................... 60
РОЗДІЛ 4. ОХОРОНА ПРАЦІ....................................................................................62
РОЗДІЛ 5. ЕКОНОМІЧНИЙ РОЗДІЛ.......................................................................71
5.1. План маркетингу................................................................................................71
5.2. План виробництва ............................................................................................. 79
5.3. Фінансово-економічний план...........................................................................80
ВИСНОВКИ.................................................................................................................84
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ....................................................................86
ДОДАТКИ....................................................................................................................88
Додаток А. Програмний код....................................................................................88

4.

7
ВСТУП
База даних інформаційної системи розкладу занять побудована з урахуванням
структури навчального процесу закладу освіти та відображає взаємозв’язки між
основними його учасниками і ресурсами. Її основне призначення полягає у
централізованому збереженні інформації про викладачів, студентські групи,
навчальні дисципліни, аудиторії та проведені заняття, що дозволяє формувати
розклад, аналізувати навантаження та отримувати статистичні дані за семестр.
Структура
бази
даних
реалізована
відповідно
до
принципів
реляційного
моделювання, що забезпечує цілісність даних, уникнення дублювання інформації та
зручність подальшого розширення системи.
Початковим рівнем структури виступають довідникові таблиці, які описують
основні сутності навчального процесу. Таблиця викладачів містить інформацію про
осіб, що проводять заняття. У ній зберігається унікальний ідентифікатор та повне ім’я
викладача. Сам по собі запис про викладача не містить інформації про заняття чи
навантаження – ці дані формуються через зв’язок із таблицею розкладу. Таким чином,
один викладач може бути пов’язаний із великою кількістю записів занять, що
дозволяє відстежувати його фактичне та семестрове навантаження.
Аналогічну роль виконує таблиця студентських груп, яка представляє навчальні
колективи, для яких проводяться заняття. Кожна група зберігається окремим записом
і може брати участь у багатьох заняттях протягом семестру. Завдяки цьому система
дозволяє формувати індивідуальний розклад для кожної групи та аналізувати її
зайнятість у різні часові проміжки. Взаємодія груп із іншими сутностями
здійснюється виключно через записи розкладу, що забезпечує логічну узгодженість
даних.
Таблиця дисциплін призначена для збереження переліку навчальних предметів,
які викладаються в межах освітньої програми. Кожна дисципліна існує незалежно від
викладача або групи, оскільки одна й та сама дисципліна може викладатися різними
викладачами або для різних груп. Такий підхід дозволяє уникнути дублювання назв

5.

8
предметів у базі даних і забезпечує коректне формування статистики використання
дисциплін у навчальному процесі.
Окремою сутністю є таблиця аудиторій, яка описує матеріальні ресурси закладу
освіти. Вона містить інформацію про навчальні приміщення, у яких проводяться
заняття. Аудиторія може використовуватися багаторазово різними групами та
викладачами, тому прямого зв’язку з іншими довідниковими таблицями вона не має.
Її використання визначається виключно через записи розкладу, що дозволяє
аналізувати завантаженість приміщень та визначати ефективність їх використання
протягом семестру.
Центральним елементом усієї бази даних є таблиця розкладу занять, яка
виступає зв’язувальною ланкою між усіма іншими сутностями. Кожен запис у цій
таблиці відповідає одному конкретному заняттю та містить посилання на викладача,
студентську групу, дисципліну та аудиторію. Саме через цю таблицю реалізується
логіка взаємодії всієї системи: визначається, хто проводить заняття, для якої групи
воно відбувається, з якої дисципліни та в якій аудиторії. Таким чином формується
повна модель навчального процесу.
Завдяки використанню зовнішніх ключів забезпечується цілісність даних,
оскільки кожне заняття може існувати лише за наявності відповідних записів у
довідникових таблицях. Це запобігає появі некоректних або непов’язаних даних у
системі. Крім того, така структура дозволяє легко виконувати аналітичні запити,
наприклад обчислювати навантаження викладачів за семестр, визначати кількість
використання аудиторій різними дисциплінами або формувати статистику занять для
окремих груп.

6.

9
РОЗДІЛ 1. АНАЛІЗ ВИМОГ ДО ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
1.1 Аналіз вимог до програмного забезпечення
Предметною областю даного дипломного проєкту є автоматизація процесу
формування, зберігання та аналітичного опрацювання розкладу навчальних занять у
закладі освіти за допомогою вебтехнологій. У сучасних умовах організація освітнього
процесу
потребує
використання
інформаційних
систем,
які
дозволяють
централізовано керувати навчальним навантаженням, ресурсами аудиторного фонду
та взаємодією між учасниками освітнього процесу.
Традиційно складання розкладу здійснюється із використанням електронних
таблиць або окремих документів, що редагуються вручну. Такий підхід створює
значні труднощі під час внесення змін, контролю конфліктів часу занять, обліку
навантаження викладачів та аналізу виконання навчальних планів. Відсутність
єдиного інформаційного середовища призводить до дублювання даних, помилок у
розкладі та складності отримання статистичної інформації щодо освітнього процесу.
Особливою проблемою є контроль фактичного проведення занять протягом
семестру. Адміністрації необхідно розуміти, скільки занять уже проведено, яке
навантаження має кожний викладач, наскільки ефективно використовуються
аудиторії та чи виконується навчальний план за дисциплінами. Без автоматизації ці
задачі потребують складних ручних розрахунків і не забезпечують оперативності
прийняття управлінських рішень[12].
Розроблювана система повинна забезпечити єдину цифрову платформу
управління розкладом, яка враховує календар семестру та автоматично обчислює
статистичні показники на основі поточної дати. Це дозволяє перейти від статичного
розкладу до динамічної моделі навчального процесу, що постійно актуалізується.
Проєкт орієнтований на забезпечення потреб основних категорій користувачів:

адміністрації – інструментами створення та редагування розкладу,

викладачів – доступом до актуального розкладу занять і інформації про
контролю навчального навантаження та отримання аналітичних звітів;
власне навантаження;

7.

10

студентських груп – можливістю перегляду розкладу занять у зручному

навчального відділу – засобами аналізу використання аудиторій і
форматі;
виконання навчальних планів.
Основні функціональні вимоги до програмного забезпечення включають
формування розкладу занять, управління довідниками (викладачі, групи, дисципліни,
аудиторії), облік навчальних планів, автоматичний підрахунок проведених занять та
побудову аналітики за семестр. Система повинна працювати у вебсередовищі,
забезпечувати багатокористувацький доступ, цілісність даних та можливість
подальшого розширення функціональності[14].
1.2 Аналітичний огляд існуючих рішень в області веб-додатків
Перед розробкою інформаційної системи управління розкладом занять було
проведено аналіз існуючих програмних рішень, призначених для автоматизації
планування навчального процесу. Даний етап дозволяє визначити сучасні підходи до
реалізації подібних систем, оцінити їх функціональні можливості, переваги та
обмеження, а також сформувати обґрунтовані вимоги до розроблюваного
програмного продукту.
Сьогодні існує значна кількість програмних систем для створення розкладів,
однак більшість із них орієнтовані або на великі університети з складною
інфраструктурою, або навпаки – є надто спрощеними інструментами без аналітичних
можливостей.
Важливим
критерієм
аналізу
стало
врахування
можливості
автоматичного підрахунку навчального навантаження, роботи із семестровими
даними та гнучкого управління ресурсами.

8.

11
Таблиця 1.1 - Порівняння аналогів

1
2
3
Назва
системи
Переваги
Автоматичне складання розкладу,
aSc
перевірка конфліктів, зручний
Timetables
інтерфейс
Потужна оптимізація розкладу,
UniTime
підтримка великих університетів
Google
Простота використання, вебдоступ,
Calendar синхронізація
Недоліки
Обмежена аналітика, локальна
орієнтація, платна ліцензія
Складне впровадження, висока
складність налаштування
Відсутність навчальної логіки, немає
обліку навантаження та статистики
Короткий опис аналогів
Система aSc Timetables є одним із найпоширеніших програмних продуктів для
складання шкільних розкладів. Вона підтримує автоматичну генерацію розкладу та
перевірку конфліктів, однак має обмежені можливості аналітики навчального
процесу та залежить від локального програмного середовища.
Рисунок 1.1 – Система aSc Timetables
Платформа UniTime представляє собою потужну університетську систему
планування, що підтримує складні алгоритми оптимізації розкладу. Водночас її
впровадження потребує значних ресурсів, складного налаштування та технічної
підтримки, що робить її надмірною для невеликих навчальних закладів.

9.

12
Рисунок 1.3 – Платформа UniTime
Інструмент Google Calendar часто використовується для організації занять
завдяки простоті та доступності, проте він не забезпечує спеціалізованих функцій
освітньої аналітики, обліку навчальних планів або контролю викладацького
навантаження.
Рисунок 1.3 – Інструмент Google Calendar

10.

13
1.3 Порівняння існуючих аналогів із розробленою системою
Після проведення аналізу існуючих програмних рішень у сфері автоматизації
складання розкладу навчальних занять доцільним є виконання їх порівняння із
розробленою інформаційною системою. Такий підхід дозволяє визначити практичну
цінність створеного програмного продукту, оцінити його функціональні переваги та
показати, які недоліки наявних систем було усунуто під час проєктування.
На відміну від універсальних або надмірно складних платформ, розроблена
система орієнтована саме на потреби навчального закладу середнього або фахового
рівня освіти. Основний акцент зроблено на автоматизації щоденних адміністративних
процесів: формуванні розкладу, обліку навчального навантаження, контролі
виконання навчального плану та аналітичному супроводі освітнього процесу.
Більшість існуючих систем або пропонують лише інструменти складання
розкладу без глибокої статистики, або потребують складного налаштування та
значних ресурсів для впровадження. Розроблена система поєднує вебдоступність,
простоту використання та автоматичний аналіз даних семестру, що є її ключовою
відмінністю.
Особливістю власної системи є використання динамічної моделі розкладу, у
якій усі статистичні показники обчислюються автоматично відповідно до дати
початку семестру та поточної календарної дати. Це дозволяє в реальному часі
відстежувати виконання дисциплін, навантаження викладачів і використання
аудиторій без ручних підрахунків[12].
Нижче наведено порівняльну характеристику функціональних можливостей
існуючих аналогів та розробленої системи.

11.

14
Таблиця 1.2– Порівняння з власною системою
Критерій
Аналоги
aSc Timetables, UniTime
(частково), Google Calendar
Централізоване зберігання розкладу
Усі системи (3 з 3)
Автоматична перевірка конфліктів занять aSc Timetables, UniTime
Облік викладацького навантаження
UniTime
Автоматичний підрахунок проведених
Відсутній у більшості систем
занять за семестр
Аналітика виконання навчального плану Обмежена або відсутня
Аналіз використання аудиторій
Частково (UniTime)
Статистика по групах та дисциплінах
Обмежена
Робота через браузер без встановлення
Google Calendar, UniTime
Простота впровадження у навчальному Обмежена (складне
закладі
налаштування)
Адаптація під структуру коледжу
Відсутня
Автоматичний розрахунок показників від
Відсутній
дати початку семестру
Вебдоступ до розкладу
Власна
система
Так
Так
Частково
Так
Так
Так
Так
Так
Так
Так
Повна
Так
1.4 Технічне завдання
Розробка веб-системи для формування та аналізу розкладу навчального закладу
передбачає створення багатофункціональної, безпечної та зручної платформи для
студентів, викладачів та адміністраторів з метою ефективного планування, зберігання
та аналізу навчального розкладу.
Функціональні вимоги
Система повинна забезпечувати зручний перегляд розкладу, управління
навчальними групами, аудиторіями та викладачами, а також можливість аналізу
даних для оптимізації навчального процесу. Основні функції системи включають:
Аутентифікація та авторизація користувачів
– Кожен користувач обирає свою роль: студент, викладач або
адміністратор.
– Студенти та викладачі – мають доступ лише до перегляду розкладу,
інформації про групи, аудиторії та дисципліни.

12.

15
– Адміністратори – повний контроль над формуванням та зміною
розкладу, управлінням групами, викладачами, дисциплінами та
аудиторіями.
Перегляд розкладу
– Відображення розкладу у вигляді таблиць або календаря.
– Фільтрація та пошук занять за групою, викладачем, аудиторією чи
датою.
– Можливість завантаження розкладу у PDF або CSV для зручності
користувачів.
Управління ресурсами навчального процесу (для адміністраторів)
– Створення та редагування списку груп, викладачів, дисциплін та
аудиторій.
– Прив’язка викладачів до дисциплін та груп.
– Контроль доступності аудиторій та обладнання при формуванні
розкладу.
Формування та редагування розкладу (для адміністраторів)
– Створення та зміна розкладу занять для груп або курсів.
– Автоматичне запобігання конфліктів (одна аудиторія на два заняття
одночасно, один викладач на двох групах).
– Встановлення тривалості занять, перерв та повторюваних сесій.
Аналіз розкладу та статистика (для адміністраторів)
– Виведення аналітичних даних: завантаженість викладачів, заповненість
аудиторій, частота змін розкладу.
– Можливість експорту звітів для планування та оптимізації.
Зручність користування
– Адаптивний дизайн для ПК, планшетів та смартфонів.
– Інтуїтивно зрозумілий інтерфейс з логічним групуванням елементів
управління.
Безпека та цілісність даних
– Контроль доступу до функцій системи відповідно до ролі користувача.

13.

16
– Логування дій користувачів та фільтрація вхідних даних для захисту від
несанкціонованих змін.
Нефункціональні вимоги:
Продуктивність і швидкодія
– Швидке завантаження сторінок при великій кількості груп та занять.
– Використання оптимізованої бази даних і кешування запитів.
Надійність
– Стабільна робота без збоїв та втрати даних.
– Обробка помилок і виведення зрозумілих повідомлень для користувачів.
Безпека
– Захист від SQL-ін’єкцій та CSRF-атак.
– Хешування паролів сучасними криптографічними алгоритмами.
Юзабіліті та адаптивність
– Інтуїтивний інтерфейс, простий перегляд розкладу.
– Коректне відображення на екранах різних розмірів.
Масштабованість
– Можливість додавання нових модулів (наприклад, автоматичне
формування статистики, інтеграція з електронним журналом) без зміни
архітектури.

14.

17
РОЗДІЛ 2. РОЗРОБКА РОБОЧОГО ПРОЄКТУ
2.1. Моделювання структури та поведінки сайту засобами UML
Розроблення сучасних інформаційних систем, особливо веборієнтованих
платформ із багаторівневою логікою роботи, розпочинається не безпосередньо з
програмування, а з етапу концептуального та архітектурного проєктування. Для
системи автоматизації формування розкладу навчальних занять цей процес є
ключовим, оскільки саме на етапі моделювання визначається структура взаємодії між
користувачами, логіка обробки навчальних даних та принципи організації
інформаційних потоків.
Моделювання дозволяє перетворити загальні вимоги до системи – ведення
розкладу, облік навчального навантаження, контроль виконання дисциплін та
формування аналітики – у формалізовану технічну модель. У межах цієї моделі
визначаються основні сутності системи, їх взаємозв’язки, ролі користувачів та
правила доступу – до функціоналу. Відсутність такого етапу могла б призвести до
неузгодженості компонентів, дублювання логіки або складності подальшого
масштабування програмного продукту.
Використання UML
Для опису структури та поведінки системи було використано мову UML
(Unified Modeling Language) , яка є загальноприйнятим стандартом у сфері програмної
інженерії. UML дозволяє представити складну програмну архітектуру у вигляді
зрозумілих графічних моделей, що відображають як статичну будову системи, так і
динаміку її роботи[18].
Застосування UML у процесі розробки системи розкладу занять забезпечило
можливість формалізовано описати всі ключові компоненти: моделі бази даних,
взаємодію користувача з вебінтерфейсом, обробку серверних запитів та формування
аналітичних даних. Використання єдиної нотації також спростило документування
проєкту та зробило архітектуру зрозумілою для подальшого супроводу або
розширення системи.

15.

18
та
Завдяки UML вдалося уникнути неоднозначностей у трактуванні функціоналу
забезпечити
реалізацією[18].
узгодженість
між
логічним
проєктуванням
і
програмною
2.1.1. Функціональне моделювання за допомогою діаграми прецедентів
Першим етапом проєктування стало визначення функціональних можливостей
системи через побудову діаграми прецедентів. Така діаграма дозволяє описати
взаємодію користувачів із системою та встановити межі доступу до окремих функцій.
У межах розробленої системи управління розкладом було визначено декілька
ролей користувачів, кожна з яких взаємодіє із системою відповідно до своїх задач у
навчальному процесі.
Ролі та дозволи користувачів системи:
1.
Неавторизований
користувач
2.
Авторизовані
користувачі
3.
Адміністратор
системи
має
можливість
загальнодоступну інформацію, зокрема розклад занять.
отримують
пов’язаний із роботою з навчальними даними.
виконує
роль
лише
переглядати
розширений
функціонал,
керування
інформаційною
структурою: створює дисципліни, групи, аудиторії, викладачів, формує записи
розкладу та контролює коректність даних (рис. 2.1).

16.

19
Рисунок 2.1 – Діаграма прецедентів веб-системи
Подібний підхід дозволив ще на етапі моделювання чітко визначити
відповідальність кожної ролі та забезпечити логічне розмежування доступу до
інформації. Це стало основою безпечної організації роботи системи та запобігання
несанкціонованим змінам розкладу.
2.1.2. Динамічне моделювання за допомогою діаграм послідовностей.
Наступним кроком стало моделювання поведінки системи у часі шляхом
створення діаграм послідовностей. Якщо діаграми прецедентів описують функції
системи, то діаграми послідовностей демонструють процес їх виконання – тобто те,
як саме обробляється запит користувача всередині програмної архітектури[16].
У контексті розробленої системи розкладу така діаграма відображає повний
цикл взаємодії:
– користувач ініціює дію через вебінтерфейс,
– запит передається до Django-представлення (view),

17.

20
– після чого відбувається звернення до моделей бази даних.
Система отримує необхідні записи розкладу, виконує обчислення (наприклад,
підрахунок навантаження викладача або кількості проведених занять) і повертає
сформовані дані до шаблону, який генерує HTML-сторінку для відображення
результату (рис. 2.2).
Рисунок 2.2 – Діаграма послідовностей веб-системи
2.2. Розробка структури проєкту
Проєктування У процесі розробки інформаційної системи автоматизації
формування та аналізу навчального розкладу важливим етапом стало проектування
структури веб-додатку. Саме на цьому етапі визначається логічна організація
проєкту, структура сторінок, принципи навігації та взаємодії користувача з
інтерфейсом системи. Грамотно спроєктована структура веб-додатку забезпечує
зручність використання, швидкий доступ до необхідної інформації та мінімізує
складність роботи користувачів із системою.

18.

21
Розроблюваний веб-додаток реалізовано за клієнт-серверною архітектурою із
використанням фреймворку Django[16], який передбачає розподіл функціональності
між моделями даних, логікою обробки запитів та шаблонами відображення
інформації. Такий підхід дозволяє чітко розмежувати відповідальність між
компонентами системи та забезпечує модульність програмного коду[14]. Принцип
клієнт-серверної архітектури описано на рис. 2.3
Рисунок 2.3 – Діаграма клієнт-серверної архітектури
Структура веб-додатку формувалася з урахуванням основних категорій
користувачів системи, до яких належать адміністратор та викладачі, що працюють із
навчальним розкладом. Основною метою інтерфейсу стало забезпечення швидкого
доступу до даних розкладу, можливості їх перегляду, аналізу та редагування без
необхідності виконання складних дій або переходів між великою кількістю сторінок.
Головна сторінка системи виконує роль центральної точки навігації та
забезпечує доступ до ключових функціональних модулів веб-додатку. На ній
відображається узагальнена інформація про розклад, а також доступні переходи до
довідників системи, зокрема списків викладачів, дисциплін, аудиторій та навчальних
груп. Інтерфейс побудований таким чином, щоб користувач міг швидко перейти до
необхідного розділу без зайвих кроків.
Навігаційна структура веб-додатку реалізована за принципом логічного
групування функцій. Основне меню містить посилання на сторінки перегляду
розкладу, довідкових даних та аналітичної інформації. Завдяки постійному
розташуванню елементів навігації користувач зберігає орієнтацію у системі
незалежно від поточної сторінки. Такий підхід відповідає сучасним принципам

19.

22
проєктування користувацьких інтерфейсів та зменшує когнітивне навантаження під
час роботи.
Особливу увагу приділено сторінці відображення навчального навантаження,
яка є одним із ключових функціональних елементів системи. Дані подаються у
вигляді таблиць, що дозволяє компактно представити інформацію та забезпечити її
швидке сприйняття. Структура таблиць спроєктована таким чином, щоб користувач
одночасно бачив аудиторію, дисципліну та кількість занять, що значно спрощує
аналіз розкладу.
Інтерфейс веб-додатку побудований із використанням єдиної візуальної
концепції. Усі сторінки мають однакову структуру розміщення елементів: верхню
панель навігації, основну робочу область та допоміжні інформаційні блоки. Така
уніфікація дозволяє користувачам швидко адаптуватися до роботи із системою та
зменшує час навчання роботі з програмним забезпеченням.
Основні елементи керування розташовані у зоні швидкого доступу, а
інформаційні блоки згруповані за функціональним призначенням. Табличні дані
вирівняні та структуровані для забезпечення максимальної читабельності, що є
критично важливим при роботі з великими обсягами навчальної інформації.
Взаємодія між сторінками реалізована через систему маршрутизації Django, що
забезпечує логічний перехід між розділами без втрати контексту роботи користувача.
Передача даних між компонентами відбувається через механізм представлень (views),
які отримують інформацію з моделей бази даних та передають її у шаблони для
відображення[15].
Короткий опис структури веб-проєкту:
1.
Головна сторінка
Є початковою точкою входу до системи. Відображає навчальний розклад у
зручному табличному вигляді. Користувач може переглядати заняття за групами,
викладачами або аудиторіями. Залежно від рівня авторизації користувача відображає
доступні розділи.
2. Сторінка авторизації

20.

23
Призначена для входу користувачів у систему шляхом введення облікових
даних. Забезпечує перевірку автентичності та надання доступу відповідно до ролі
користувача.
3. Сторінка редагування розкладу
Призначена для створення, редагування та видалення записів розкладу.
Дозволяє призначати викладача, дисципліну, групу, аудиторію та час проведення
заняття.
4. Сторінка аналітики та звітів
Відображає
статистичну
інформацію
щодо
використання
аудиторій,
навантаження викладачів та інших показників навчального процесу у вигляді таблиць
і зведених даних.
5. Адміністративна панель
Служить для повного керування даними системи через стандартний
адміністративний інтерфейс Django. Забезпечує створення, редагування та видалення
записів бази даних. Графічно відображено структуру на рис. 2.4
Рисунок 2.4 – Діаграма структури проєкту
У результаті виконаного проектування було сформовано цілісну структуру веб-
додатку, що поєднує функціональність керування розкладом із простотою
використання.
Розроблена
структура
забезпечує
масштабованість
системи,
дозволяючи у майбутньому додавати нові модулі без суттєвої зміни існуючої
архітектури.

21.

24
2.3. Обґрунтування вибору засобів розробки
Для створення інформаційної системи автоматизації формування та аналізу
навчального розкладу було обрано сучасний стек технологій, який забезпечує
надійність, масштабованість, швидкість розробки та зручність подальшого супроводу
програмного продукту. Основними критеріями вибору засобів розробки стали:
– простота розгортання системи у навчальному середовищі;
– наявність активної спільноти підтримки;
– висока швидкість розробки та модифікації функціоналу;
– підтримка роботи з реляційними базами даних;
– можливість подальшого розширення системи.
Розробка проєкту здійснювалась із використанням мови програмування Python
та веб-фреймворку Django. Клієнтська частина реалізована за допомогою HTML5,
CSS3 та JavaScript, а для зберігання даних використано вбудовану систему керування
базами даних SQLite. Середовищем розробки виступав редактор Visual Studio Code,
що забезпечує ефективну роботу з проєктами Python та вебтехнологіями.
Далі буде наведено обґрунтування вибору кожного із застосованих
інструментів.
Основною мовою програмування серверної частини системи було обрано
Python. Це сучасна високорівнева мова програмування, яка широко використовується
для
розробки
вебзастосунків,
інформаційних систем.
систем
аналізу
даних
та
автоматизованих
Python характеризується простою та зрозумілою синтаксичною структурою,
що значно прискорює процес розробки й зменшує кількість помилок у коді. Завдяки
цьому стало можливим швидко реалізувати логіку роботи системи розкладу,
включаючи обробку запитів користувачів, роботу з базою даних та формування
статистичних звітів.
Важливою перевагою Python є велика кількість бібліотек та модулів, що
дозволяють реалізовувати складні функції без необхідності створення їх з нуля. Це
особливо важливо для освітніх проєктів, де швидкість розробки та зрозумілість коду
мають пріоритетне значення.

22.

25
Крім того, Python активно використовується у навчальному процесі IT-
спеціальностей, що робить систему придатною для подальшого розвитку студентами
та викладачами.
Як основний серверний фреймворк було обрано Django – високорівневий веб-
фреймворк
для
Python,
Model–View–Template (MVT).
який
працює
за
архітектурним
шаблоном
Використання Django дозволило значно скоротити час розробки завдяки
наявності готових механізмів:
– маршрутизації запитів;
– роботи з базою даних через ORM;
– системи автентифікації користувачів;
– адміністративної панелі;
– захисту від поширених вебуразливостей.
Особливо важливою стала вбудована ORM (Object-Relational Mapping), яка
дозволяє працювати з базою даних через Python-моделі без написання складних SQLзапитів. Це забезпечує кращу читабельність коду та зменшує ймовірність помилок.
Django також автоматично реалізує механізми безпеки, зокрема захист від
CSRF-атак, SQL-ін’єкцій та XSS-вразливостей, що є критично важливим для
інформаційної системи навчального закладу.
Вбудована адміністративна панель Django значно спростила управління
сутностями системи – аудиторіями, викладачами, дисциплінами та розкладом.
Для зберігання даних у системі було обрано SQLite – легку реляційну систему
керування базами даних, яка входить до стандартного комплекту Django.
SQLite не потребує встановлення окремого серверу баз даних, оскільки вся база
зберігається у вигляді одного файлу. Це значно спрощує розгортання системи в
навчальному середовищі та дозволяє швидко переносити проєкт між комп’ютерами.
Реляційна модель SQLite забезпечує підтримку таблиць, первинних і зовнішніх
ключів, що дозволило коректно реалізувати взаємозв’язки між основними сутностями
системи:
– викладачами;

23.

26
– дисциплінами;
– аудиторіями;
– записами розкладу.
SQLite демонструє достатню продуктивність для систем із середнім
навантаженням, що повністю відповідає потребам розробленого проєкту.
Для побудови клієнтської частини застосунку використано HTML5 – сучасний
стандарт мови розмітки вебсторінок.
HTML5 дозволив створити логічно структурований інтерфейс із використанням
семантичних тегів, таких як <header>, <main>, <section> та <footer>. Це забезпечило
зрозумілу структуру сторінок і покращило доступність системи.
Особливу роль HTML5 відіграє у реалізації форм введення даних, які
використовуються для створення та редагування розкладу, додавання аудиторій і
дисциплін. Вбудована клієнтська валідація дозволяє зменшити кількість помилкових
запитів до сервера.
Для оформлення інтерфейсу було використано CSS3, який забезпечив
створення сучасного та зручного користувацького інтерфейсу.
За допомогою CSS3 реалізовано:
– адаптивну верстку сторінок;
– оформлення таблиць розкладу;
– стилізацію форм введення;
– інтерактивні ефекти наведення;
– візуальне виділення активних елементів.
Використання технологій Flexbox дозволило створити гнучке компонування
елементів, яке коректно відображається на різних розмірах екранів.
Інтерфейс орієнтований на функціональність і швидкість роботи, що є
важливим для систем щоденного використання викладачами та адміністраторами.
Мова JavaScript використовується для реалізації клієнтської інтерактивності
без перезавантаження сторінок.
З її допомогою реалізовано:

24.

27
– динамічне оновлення елементів інтерфейсу;
– перевірку введених даних;
– інтерактивну роботу таблиць і форм;
– покращення користувацького досвіду.
JavaScript дозволив зробити взаємодію із системою більш швидкою та зручною,
зменшуючи кількість звернень до сервера.
Середовищем розробки було обрано Visual Studio Code – сучасний редактор
коду з підтримкою великої кількості розширень.
Його перевагами стали:
– інтеграція з Python та Django;
– підсвічування синтаксису;
– автодоповнення коду;
– вбудована робота з Git;
– зручна структура керування проєктом.
Це дозволило підвищити продуктивність розробки та спростити налагодження
системи.
2.4. Створення та верстка сторінок сайту
Процес Під час розробки веб-застосунку системи формування та перегляду
розкладу занять особливу увагу було приділено створенню уніфікованих елементів
сторінок, які забезпечують зручність взаємодії користувача із системою, логічну
структуру інтерфейсу та цілісність візуального оформлення. Усі сторінки побудовані
за єдиним принципом компонування, що дозволило сформувати передбачуваний і
інтуїтивно зрозумілий користувацький інтерфейс[14].
Основою інтерфейсу є базовий шаблон, реалізований за допомогою механізму
шаблонів Django. У ньому визначено спільні елементи, які повторюються на всіх
сторінках застосунку, зокрема навігаційну панель, контейнер основного вмісту та
службову область повідомлень системи. Використання базового шаблону дозволило
уникнути дублювання коду та забезпечити централізоване керування оформленням
інтерфейсу.

25.

28
Навігаційна панель розміщується у верхній частині сторінки та виконує
функцію швидкого переходу між основними розділами системи. Вона містить
посилання на перегляд розкладу, керування заняттями, сторінку аудиторій та
статистичні дані. Навігація реалізована через систему маршрутизації Django, що
забезпечує коректне формування URL-адрес і взаємодію між сторінками застосунку
(рис 2.4). Активний пункт меню візуально виділяється, що допомагає користувачу
орієнтуватися у поточному розділі системи(рис 2.2-2.3).
Розглянемо основні компоненти головної сторінки веб-системи та принцип її
роботи. Так як це веб-система для розкладу навчального закладу, за основну складову
дизайну, а саме кольори та стиль було обрано стиль веб-сайту БілгородДністровсьокого
фахового
коледжу
природокористування
та
комп’ютерних
технологій, що має локанічний та сучасний дизайн. В результаті маємо розклад, що
може органічно доповнити основний сайт (рис. 2.5)
Рисунок 2.5 – Зовнішній головної сторінки розкладу.
Окремо розглянемо навігаційну панель, що допомагає реалізувати перехід між
сторінками системи (рис. 2.6).

26.

29
Для переміщення по веб-системі було огранізовано локанічне меню, а саме
навігаційна панель, з виділеннями актикних кнопок, для зручності та покращення
UI/UX досвіду користувача системи.
Рисунок 2.6 – Зовнішній меню навігації
Далі можемо розглянути вигляд навігаційної панлі, при наведенні на неї
курсору миші, що реалізовано за допомогою засобів CSS.
Рисунок 2.7 – Виділення пункцтів меню
Стилізація головного меню є важливою складовою користувацбкого досвіду,
що формує загальне враження від системи та надає комфорт використання.
Підсвічування активного пункту меню виконується на рівні шаблонів
Django.Система визначає, яка сторінка зараз відкрита, і додає спеціальний CSS-клас
до відповідної кнопки навігації(рис 2.8).
Рисунок 2.8 – Приклад стилізації кнопок

27.

30
для



Загалом навігація сайту дає доступ до всіх сторінок сайту, за умови авторизації
переходу
до
окремих
адміністративних
Перелік сторінок доступних для маршрутизації:
сторінок.
перегляду розкладу занять;
редагування розкладу;
сторінка аналітики;

сторінка логіну;

сторінка перенаправлення на завантаження файлу розкладу.
– адмін панель (є стандартною в Django)
Наступним елементом пропонується розглянути таблицю розкладу.
Центральним елементом користувацького інтерфейсу розробленого веб-
застосунку є блок відображення розкладу занять у вигляді структурованої таблиці.
Саме цей компонент забезпечує основну функціональність системи – наочне
представлення навчального процесу та швидкий доступ користувачів до інформації
про заняття, аудиторії, викладачів і часові інтервали.
Рисунок 2.9 – Зображення таблиці розклад
Таблиця розкладу є ключовим складовим елементом системи навколо якого
було сформовано весь проєкт, саме вона відіграє головну роль. Таблиця реалізована
засобами HTML5 із використанням табличної структури, що дозволяє логічно
організувати дані у вигляді рядків і стовпців відповідно до традиційної моделі
академічного розкладу. Горизонтальна вісь таблиці відповідає за групи, яким
призначено дисципліни, тоді як вертикальна структура відображає дні тижня, та

28.

31
часові рамки занять. Такий підхід забезпечує інтуїтивно зрозуміле сприйняття
інформації користувачем, оскільки відповідає звичному формату паперового
розкладу.
Формування вмісту таблиці відбувається динамічно на серверній стороні із
використанням механізмів Django Template Engine. Після отримання HTTP-запиту
відповідне представлення (view) виконує звернення до бази даних SQLite через ORM
Django, отримуючи список занять із урахуванням обраних параметрів (група, день
тижня або період навчання). Дані агрегуються у структурований контекст, який
передається до HTML-шаблону для подальшого відображення(рис. 2.10).
Рисунок 2.10 – HTML розмітка таблиці розкладу
У шаблоні використовується система циклів і умовних конструкцій, що
дозволяє автоматично формувати комірки таблиці залежно від наявності заняття у
відповідному часовому слоті. Якщо для певного періоду заняття відсутнє, комірка
залишається порожньою або містить службове позначення. Це забезпечує цілісність
структури таблиці незалежно від кількості записів у базі даних.

29.

32
Кожна комірка таблиці містить комплексну інформацію про заняття, зокрема
назву дисципліни, викладача, аудиторію проведення та тип заняття. Дані
відображаються у компактному форматі, що дозволяє розмістити значний обсяг
інформації без перевантаження інтерфейсу. Для підвищення читабельності
застосовано візуальне групування елементів та ієрархію текстових стилів[13].
Візуальне оформлення таблиці реалізовано за допомогою CSS3[13]. Для
підвищення зручності використання застосовано вирівнювання вмісту комірок,
фіксовану ширину стовпців, контрастні межі та кольорове виділення заголовків . Вся
стилізація проєкту знаходиться в одному файлі стилів, що дає можливість швидко
редагувати стилі всього проєкту. На зображенні (рис 2.11) продемонстровано
фрагмент стилізації головної сторінки, через об’єм файлу, всі стилі будуть наведені
в Додатках до дипломного проєкту.
Рисунок 2.11 – Фрагмент стилізації таблиці
Далі можна розгглянути наступний функціонал що не потребує авторизації в
системі – Завантаження розкалду (рис 2.12).

30.

33
Рисунок 2.12 – Приклад завантаження розкладу
Після експорту та завантаження файлу, маємо можливість відкрити та
переглянути розклад в файлі з розширенням .xls (рис 2.13)
Рисунок 2.13 – Приклад відображення розкладу у файлі .xls
Наступною частиною системи є сторінка “Редагування розкладу” що надає
можливості редагувати наявні комірки розкладу та заповнювати нов, що вимагає
попередньої аторизації в системі. У розроблений механізм авторизації користувачів,
який обмежує доступ до адміністративних можливостей застосунку. Авторизація
побудована на стандартній системі аутентифікації фреймворку Django. Основною
метою авторизації є забезпечення доступу до редагування та експорту розкладу лише
для зареєстрованих користувачів із відповідними правами. (рис. 2.14 ).

31.

34
Рисунок 2.14 – Приклад вікна авторизації
В даному вікні також відбувається валідація введення даних при авторизації, та
перевірка коректності введених даних (рис 2.15).
Рисунок 2.15 – Приклад валідації поля ввдення
У розробленій системі розкладу занять реалізовано механізм авторизації
користувачів, який обмежує доступ до адміністративних можливостей застосунку.
Авторизація побудована на стандартній системі аутентифікації фреймворку Django.
Основною метою авторизації є забезпечення доступу до редагування та
експорту розкладу лише для зареєстрованих користувачів із відповідними правами.

32.

35
Сторінка редагування розкладу є основним адміністративним інструментом
системи та призначена для керування навчальними заняттями, що відображаються у
загальному розкладі.




Основною метою сторінки є надання адміністратору можливості:
додавати нові заняття;
змінювати існуючі записи розкладу;
видаляти заняття;
– керувати параметрами навчального процесу (група, предмет, викладач,
аудиторія, час проведення).
Сторінка розкладу виглядає подібним чином до головної сторінки через
можливість використання шаблонів ,під час розробки фреймворком Django (рис 2.16).
Рисунок 2.16 – Приклад сторінки редагування розкладу
Функціонування сторінки реалізовано за клієнт-серверною архітектурою із
використанням
можливостей
фреймворку
Django,
що
дозволяє
поєднати
відображення інтерфейсу, обробку запитів користувача та роботу з базою даних у
єдиній системі.
Редагування розкладу відбувається за допомогою кліку по потрібній комірці,
після чого з’явліється відповідна форма для внесення змін (рис.2.13)

33.

36
Рисунок 2.17 – Модальне вікно форми редагування розкладу
Форма введення використовує випадаючі списки замість ручного введення
тексту. Це дозволяє обмежити значення лише існуючими об'єктами системи та
запобігти появі некоректних або дубльованих даних (рис. 2.17).
Рисунок 2.18 – Приклад випадаючого меню в формі редагування розкладу
Після натискання кнопки збереження браузер формує POST-запит та надсилає
його на сервер.
На серверній стороні відбувається послідовність операцій:





отримання даних із запиту;
перевірка коректності значень;
створення нового об’єкта заняття;
збереження запису у базі даних SQLite;
перенаправлення користувача назад на сторінку редагування.
Частковий Приклад коду реалізацї форми за допомогою модального вікна:

34.

37
<label>Предмет:</label>
<select name="subject" id="subject" required>
<option value="">-- виберіть предмет --</option>
{% for s in subjects %}
<option value="{{ s.id }}">{{ s.name }}</option>
{% endfor %}
</select>
<label>Викладач:</label>
<select name="teacher" id="teacher" required>
<option value="">-- виберіть викладача --</option>
{% for t in teachers %}
<option value="{{ t.id }}">{{ t.full_name }}</option>
{% endfor %}
</select>
<label>Аудиторія:</label>
<select name="classroom" id="classroom" required>
<option value="">-- виберіть аудиторію --</option>
{% for c in classrooms %}
<option value="{{ c.id }}">{{ c.name }}</option>
{% endfor %}
</select>
В даному прикладі відбувається передача даних з БД до форми в відповідні її
поля для відображення адміністратору.
Після
підтвердження
збереження
даних
в
формі,
він
автоматично
відобразисться в таблиці як на сторінці редагування, так і насторінці перегляду що є
загальнодоступною.
Окрім редагування розкладу, ми можемо повернутись до сторінки з
загальнодоступним розкладом, для перевірки відображення даних, та перейти до
Аналітики – аналітичних даних системи.
Сторінка аналітики analytics.html відображає наступні дані:

35.

38
1. Предмети: Назви предметів. Заплановані години на предмет, залишок від
вичитаних раніше пар.
2. Викладачі: ПІБ викладача, загальне навантаження, навантаження що
залишилось викладачу.
3. Використання аудиторій: якіаудиторії використовуються, якіми групами та
скільки в них проведено занять.
4. Групи: Назва групи та кількість проведених занять викладачами в поточній
групі.
Візуальна складова успадковує стилітику заголовку та навігаційної панелі від
головної сторінки, відповідно за принципами шаблонізації в Django, що допомагає
використовувати відповідні стилістичні елементи інтерфейсу без неохідності
переробки їх кожного разу для нової сторінки (рис 2.19 та 2..4.20).
Рисунок 2.19 – Сторінка аналітики ч.1

36.

39
Рисунок 2.20 – Сторінка аналітики ч.2
Далі наведено структуру верстки таблиць з відображенням аналітичних даних
веб-системи. Шаблон приймає дані з БД SQLite та динамічно надає дані для аналізу
відповідно до тих що змінювались (рис 2.21).

37.

40
Рисунок 2.21 – Приклад розмітки сторінки
Стилізація таблиць аналітики успадковується за допомогою інструменту
шаблонізації від таблиць розкладу, що дає однорідний та органічний вигляд для всіх
сторінок та зберігається у файлі styles.css повний код якого наведено в Додатках.
Також важливим елементом для побудови аналітики та її коректної роботи є
система розрахунків з урахуванням дати початку семестру, тобто точки відліку з відки
потрібно починати підрахунок аналітичних даних. Цей параметр відповідно задається
в Адмін панелі веб-сайту і при зміні дати початку семестру, всі аналітичні дані
перераховуються (рис 2.22).

38.

41
Рисунок 2.22 – Адмін панель Django
Адміністративна пінель слугує інструментом для взаємодії з базою даних, для
додавання, оновлення чи видаення даних. Надає доступ до всіх наявних таблиць в
системі для авторизованого користувача.
Вона є стандартним іструментом що надає Django що є значною переваго, яка
економить час розробки, що дає можливість зусередитись на реалізації логіки
застосунку в більшій мірі.
2.5 Розробка структури бази даних сайту
Для реалізації серверної частини розробленої інформаційної системи було
обрано систему керування базами даних SQLite[17]. Вибір саме цієї СКБД
зумовлений особливостями архітектури проєкту, вимогами до простоти розгортання
системи, а також необхідністю створення легкої та автономної бази даних без
складної серверної інфраструктури.
SQLite є вбудованою реляційною системою керування базами даних, яка не
потребує окремого серверного процесу. Уся база даних зберігається у вигляді одного
файлу, що значно спрощує розробку, тестування та перенесення системи між різними
середовищами. Такий підхід особливо доцільний для навчальних вебпроєктів і
локальних інформаційних систем, де немає потреби в складному адмініструванні
серверів баз даних.

39.

42
Однією з ключових переваг SQLite є її тісна інтеграція з мовою програмування
Python, яка використовується для реалізації серверної логіки системи. Стандартна
бібліотека Python містить вбудований модуль sqlite3, що дозволяє працювати з базою
даних без встановлення додаткового програмного забезпечення. Це забезпечує
швидке налаштування середовища розробки та зменшує кількість зовнішніх
залежностей проєкту.
Реляційна модель SQLite дозволила реалізувати структуровану організацію
даних із використанням таблиць, первинних ключів та логічних зв’язків між
сутностями
системи.
Завдяки
цьому
забезпечується
цілісність
інформації,
коректність зберігання даних користувачів, навчальних матеріалів та інших об’єктів
системи. Використання SQL-запитів забезпечує гнучке отримання та обробку
інформації відповідно до потреб вебзастосунку.
Важливою перевагою SQLite є її висока продуктивність при роботі з
невеликими та середніми обсягами даних, що повністю відповідає масштабам
розробленої системи. Відсутність мережевої взаємодії із сервером баз даних зменшує
затримки під час виконання запитів і спрощує розгортання застосунку на локальному
комп’ютері або навчальному сервері.
Таким чином, використання SQLite дозволило створити компактну, швидку та
зручну в супроводі базу даних, яка забезпечує стабільну роботу інформаційної
системи, простоту розгортання та можливість подальшого розширення функціоналу
без суттєвих змін архітектури проєкту.
База даних розробленої інформаційної побудована за допомогою системи
SQLite. Cистемf має назву schedule_db та реалізована на основі реляційної моделі
даних, що забезпечує чітку структуризацію навчальної інформації та логічні
взаємозв’язки між усіма складовими освітнього процесу. Архітектура бази даних
орієнтована на автоматизацію формування розкладу занять, облік навчального
навантаження викладачів, контроль виконання навчальних планів і формування
аналітичних показників діяльності навчального закладу.
Структура бази даних складається з кількох взаємопов’язаних таблиць, кожна
з яких відповідає окремій сутності предметної області. Основними таблицями є:

40.

43
teachers, subjects, student_groups, classrooms, schedule_entries, study_plans та semesters.
Разом вони формують єдину інформаційну модель, що описує навчальний процес і
дозволяє системі виконувати автоматизовані розрахунки.
Центральне місце у базі даних займає таблиця schedule_entries, яка фактично є
ядром системи. Саме вона об’єднує всі інші сутності, оскільки кожен запис розкладу
містить посилання на викладача, дисципліну, навчальну групу та аудиторію. Таким
чином реалізується кілька зв’язків типу «один до багатьох» (1:M): один викладач
може проводити багато занять, одна дисципліна може викладатися багаторазово, одна
аудиторія використовується різними групами, а кожна група має власний набір занять
протягом семестру.
Таблиця semesters виконує роль часової прив’язки системи. Вона визначає межі
навчального періоду, що дозволяє виконувати розрахунок фактично проведених
занять, залишку годин та загального навантаження викладачів. Завдяки цьому
аналітичний модуль системи може працювати динамічно залежно від поточної дати.
Таблиця study_plans забезпечує зв’язок між дисциплінами та їх нормативним
навчальним навантаженням. Вона містить інформацію про заплановану кількість
годин для кожного предмета, що дозволяє системі порівнювати планові показники з
фактично проведеними заняттями, які обчислюються на основі розкладу.
Загальна логіка побудови бази даних спрямована на забезпечення повного
циклу роботи з розкладом занять: створення довідників навчального процесу,
формування записів розкладу, аналіз використання ресурсів та автоматичний
розрахунок статистичних показників. Така структура є достатньо гнучкою та
масштабованою, що дозволяє у майбутньому розширити систему, наприклад,
додаванням декількох семестрів, спеціальностей або інтеграції з електронними
журналами.

41.

44
Рисунок 2.23 – Наявні в БД таблиці
Опис таблиць бази даних
Далі наведено детальний опис таблиць бази даних schedule_db, їх призначення
та основних полів, що визначають логіку збереження інформації у системі управління
розкладом.
teachers (Викладачі)
Таблиця призначена для зберігання інформації про викладачів навчального
закладу, які беруть участь у формуванні розкладу.
Основні поля:
– id (int) – унікальний ідентифікатор викладача;
– full_name (varchar) – повне ім’я викладача;
– created_at (datetime) – дата створення запису (за потреби системи).
Кожен викладач може бути пов’язаний із великою кількістю занять у розкладі.
subjects (Дисципліни)
Таблиця містить перелік навчальних дисциплін, що викладаються у закладі
освіти.
Основні поля:

42.

45
– id (int) – унікальний ідентифікатор дисципліни;
– name (varchar) – назва навчального предмета.
Одна дисципліна може викладатися різними викладачами та для різних груп.
student_groups (Навчальні групи)
Таблиця використовується для збереження інформації про академічні групи
студентів.
Основні поля:
– id (int) – унікальний ідентифікатор групи;
– name (varchar) – назва або шифр групи.
Група бере участь у багатьох записах розкладу, що формує її навчальне
навантаження.
classrooms (Аудиторії)
Таблиця містить інформацію про аудиторії, у яких проводяться заняття.
Основні поля:
– id (int) – унікальний ідентифікатор аудиторії;
– name (varchar) – номер або назва аудиторії.
Одна аудиторія може використовуватися різними дисциплінами та групами.
semesters (Семестри)
Таблиця визначає навчальні періоди, у межах яких виконується аналіз розкладу.
Основні поля:
– id (int) – ідентифікатор семестру;
– start_date (date) – дата початку семестру;
– end_date (date) – дата завершення семестру.
Ці дані використовуються для обчислення кількості навчальних тижнів.

43.

46
study_plans (Навантаження)
Таблиця зберігає планове навчальне навантаження дисциплін.
Основні поля:
– id (int) – ідентифікатор запису;
– subject_id (int) – зовнішній ключ на таблицю subjects;
– planned_hours (int) – запланована кількість годин на семестр.
Ця таблиця дозволяє контролювати виконання навчального плану.
schedule_entries (Записи розкладу)
Таблиця є основною операційною таблицею системи та містить усі записи
розкладу занять.
Основні поля:
– id (int) – унікальний ідентифікатор заняття;
– subject_id (int) – посилання на дисципліну;
– teacher_id (int) – посилання на викладача;
– classroom_id (int) – посилання на аудиторію;
– group_id (int) – посилання на студентську групу;
– day_of_week (int) – день тижня проведення заняття;
– time_start (time) – час початку заняття;
– time_end (time) – час завершення заняття.
Саме ця таблиця формує логічний центр усієї системи, поєднуючи всі довідкові
дані в єдину структуру.
Для аналізу буде наведено фрагмент стфорення класу побудови БД з файлу
models.py що формує таблиці в SQLite (рис. 2.24)
Рисунок 2.24 – Приклад реалізації таблиці “Викладачі”

44.

47
У базі даних реалізовано класичну модель взаємозв’язків типу «один до
багатьох». Кожна довідкова таблиця (teachers, subjects, classrooms, student_groups)
пов’язана із таблицею schedule_entries через зовнішні ключі. Це означає, що один
запис довідника може відповідати багатьом заняттям, але кожне заняття належить
лише одному конкретному викладачу, предмету, аудиторії та групі.
Зв’язок між таблицями subjects та study_plans дозволяє системі порівнювати
планові показники з фактичними даними розкладу, що є основою аналітичного
модуля. Таблиця semesters, у свою чергу, забезпечує часовий контекст для
обчислення статистики за навчальний період.
Усі зв’язки реалізовані засобами СУБД із використанням зовнішніх ключів
(foreign keys), що гарантує цілісність даних та запобігає появі некоректних записів.
Така структура забезпечує надійність функціонування системи та дозволяє легко
розширювати її функціональні можливості.
Для наочного відображення структури було побудовано ER-діаграму бази
даних, яка демонструє основні сутності системи розкладу, їх атрибути та логіку
взаємодії. Візуальна модель спрощує розуміння архітектури проєкту, полегшує його
документування та створює основу для подальшої модернізації інформаційної
системи (рис 2.25).
Рисунок 2.25 – ER-діаграма бази даних

45.

48
2.6 Програмування сайту
Основна логіка роботи проєкту написана мовою програмування Python в файлі
views.py. Файл views.py є центральним компонентом серверної логіки вебзастосунку,
розробленого із використанням фреймворку Django. У даному модулі реалізовано
обробку HTTP-запитів, взаємодію з моделями бази даних, формування динамічного
контенту сторінок та виконання адміністративних операцій системи розкладу
занять.До прикладу розглянемо основні частини даного файлу, які реалзують основну
логіку роботи системи.
Функція home виконує роль початкової точки входу до вебзастосунку та
відповідає за відображення головної сторінки системи. Після отримання HTTP-запиту
сервер повертає користувачу HTML-шаблон home.html без додаткової обробки даних.
Дана функція має виключно навігаційне призначення та забезпечує доступ
користувачів до основних розділів системи. Оскільки сторінка не потребує звернення
до бази даних або виконання обчислень, її реалізація є максимально простою та
швидкою у виконанні. Код реалізації наведено в Додатках.
Функція формування розкладу на головній сторінці.
Функція schedule_view відповідає за формування та відображення основної
сторінки розкладу занять. Її головне завдання полягає у підготовці структурованих
даних, які можуть бути коректно відображені у вигляді табличного розкладу.
На початку роботи функції виконується отримання всіх навчальних груп із бази
даних. Далі визначається набір фіксованих часових слотів занять, що стандартизує
структуру розкладу та забезпечує однакове відображення пар незалежно від їх змісту.
Після цього система отримує всі записи занять із використанням механізму
select_related, що дозволяє одночасно завантажити пов’язані об’єкти – дисципліну,
викладача, аудиторію та групу. Такий підхід суттєво зменшує кількість запитів до
бази даних і підвищує продуктивність.
Далі формується вкладена структура словників timetable, Структура словника
логічно повторює структуру майбутньої таблиці розкладу:


перший рівень відповідає дню тижня;
другий рівень – часовому інтервалу заняття;

46.

49

третій рівень – навчальній групі.
Таким чином, кожне заняття має унікальну позицію у таблиці та може бути
отримане за комбінацією трьох параметрів: день, час та група.
Далі виконується послідовна обробка всіх записів занять, отриманих із бази
даних.
Рисунок 2.26 – Приклад реалізації функції відображення розкладу
Аналогічним
schedule_edit
Функція
чином
schedule_edit
працю
функція
реалізує
редагування
адміністративний
розкладу.
інтерфейс
Функція
керування
розкладом і доступна лише авторизованим користувачам завдяки використанню
декоратора login_required.

47.

50
Під час відкриття сторінки система завантажує всі необхідні довідкові дані:
групи, предмети, викладачів та аудиторії. Аналогічно до сторінки перегляду,
формується структура розкладу для відображення поточного стану занять.
Після отримання параметрів форми визначається день, часовий слот та група.
Далі виконується одна з двох операцій. Якщо передано дію видалення, відповідний
запис заняття вилучається з бази даних. В іншому випадку використовується метод
update_or_create, який або створює новий запис, або оновлює існуючий. Такий підхід
спрощує логіку редагування та гарантує унікальність заняття в межах одного часу та
групи.
Після завершення операції виконується перенаправлення на ту ж сторінку, що
запобігає повторному надсиланню форми. Повний код реалізації наведено в
Додатках.
За експорт розкладу відповідає функція export_schedule_excel() в якій описано
логіку формування розкладу в .xls файл для подальшої можливості відкриття та друку
чи інших маніпуляцій з розкладом, надалі розглянемо основні складові
export_schedule_excel(request).
Робота функції експорту починається зі створення нового Excel-документа за
допомогою об’єкта Workbook. Після цього формується активний аркуш, який
отримує назву «Розклад занять». Надалі вся структура таблиці створюється
програмно без використання готових шаблонів, що забезпечує повний контроль над
форматуванням документа.
На першому етапі виконується отримання даних із бази даних. Завантажуються
навчальні групи та записи занять, причому використовується метод select_related,
який дозволяє одночасно отримати пов’язані об’єкти (предмет, викладача, аудиторію
та групу). Такий підхід мінімізує кількість SQL-запитів і підвищує продуктивність
системи (рис. 2.27).
Рисунок 2.27 – Приклад коду прийняття даних з БД

48.

51
Далі
формується
вкладена
структура
timetable,
аналогічна
тій,
що
використовується при відображенні розкладу на веб-сторінці. Вона організована за
принципом трирівневої ієрархії: день тижня, часовий інтервал та навчальна група. У
процесі ітерації всі заняття розподіляються у відповідні комірки цієї структури, що
дозволяє швидко отримувати необхідні дані під час генерації Excel-таблиці (рис.
2.28).
Рисунок 2.28 – Приклад коду формування файлу з розкладом
Після підготовки даних виконується побудова таблиці документа. Для кожного
дня тижня створюється група рядків, що відповідає фіксованим часовим слотам
занять. Дні тижня об’єднуються у вертикальні комірки, а часові інтервали
відображаються окремим стовпцем. Такий підхід повторює структуру академічного
розкладу, прийнятого в навчальних закладах.
Після чого в нас відбувається експорт файлу. Реалізований механізм експорту
дозволяє автоматично створювати структурований документ розкладу без участі
адміністратора, що значно спрощує поширення навчальної інформації. Використання
серверної генерації Excel-файлів забезпечує актуальність даних, оскільки файл
формується безпосередньо на основі поточного стану бази даних (рис. 2.29).

49.

52
Рисунок 2.29 – Приклад коду експорту файлу розкладу
Повний приклад реалізації фкнкції створення та експорту файлу наведено в
Додатках до дипломного проєкту.
Функція analytics реалізує модуль аналітики навчального процесу та
призначена для обчислення статистичних показників виконання навчального плану.
На початку роботи система визначає активний семестр та обчислює кількість
навчальних тижнів, що вже минули від його початку. На основі цієї інформації
розраховується кількість проведених занять.
Функція виконує декілька незалежних аналітичних обчислень. Спочатку
формується статистика по дисциплінах, де визначається кількість запланованих,
проведених та залишкових годин. Далі обчислюється навантаження викладачів із
групуванням за предметами, що дозволяє оцінити фактичне виконання педагогічного
навантаження.
Окремо аналізується використання аудиторій шляхом агрегування записів
розкладу та підрахунку кількості занять у кожному кабінеті. Також формується
статистика активності навчальних груп.
Після завершення обчислень усі результати передаються до шаблону
analytics.html, де відображаються у вигляді таблиць і зведених показників(рис 2.30).

50.

53
Рисунок 2.30 – Приклад часткової реаілізації функціх analytics
Одним із ключових елементів архітектури веб-застосунку системи формування
розкладу занять є механізм маршрутизації запитів, який реалізовано за допомогою
файлів посилань (URL configuration) у фреймворку Django. Файл посилань визначає
логіку переходів між сторінками застосунку та відповідає за зв’язок між вебадресами, які вводить користувач у браузері, і відповідними функціями серверної
частини, що обробляють ці запити.
У
Django
кожен
HTTP-запит
спочатку
надходить
до
центрального
маршрутизатора проєкту. Після цього система аналізує адресу запиту та порівнює її
з переліком маршрутів, описаних у файлі urls.py. Саме цей файл виконує роль
диспетчера, який визначає, яке представлення (view) повинно бути викликане для
формування відповіді користувачу.

51.

54
У межах розробленої системи розкладу файл посилань використовується для
організації доступу до основних функціональних сторінок застосунку, зокрема:



перегляду розкладу занять;
редагування розкладу;
сторінка аналітики;

сторінка логіну;

сторінка перенаправлення на завантаження файлу розкладу.
– адмін панель (є стандартною в Django)
Кожен маршрут у файлі описується у вигляді відповідності між текстовим
шаблоном URL-адреси та функцією або класом представлення. Наприклад, звернення
користувача до адреси сторінки розкладу автоматично викликає відповідне
представлення, яке отримує дані з бази SQLite, обробляє їх та передає у HTMLшаблон для відображення.
Важливою особливістю Django є підтримка іменованих маршрутів. У проєкті
кожному URL призначено унікальне ім’я, яке використовується у шаблонах замість
жорстко прописаних адрес. Такий підхід забезпечує гнучкість системи: у разі зміни
структури адрес достатньо змінити маршрут лише у файлі urls.py, не редагуючи всі
HTML-сторінки (рис. 2.31).
Рисунок 2.31 – Файл маршрутизації проєкту
У даному вебзастосунку реалізована стандартна механізована система
авторизації користувачів, що базується на функціоналі Django. Вона забезпечує

52.

55
безпечний доступ до адміністративних функцій, зокрема до редагування розкладу та
управління навчальними даними.
Для обмеження доступу використовується декоратор @login_required, який
накладається на відповідні функції обробки запитів, такі як schedule_edit, analytics та
export_schedule_excel. Декоратор перевіряє, чи авторизований користувач. У випадку
якщо доступ здійснюється неавторизованим користувачем, система автоматично
перенаправляє його на сторінку входу у систему.
Механізм авторизації інтегрований з базою даних користувачів Django, де
зберігаються дані про логіни та хешовані паролі. Під час спроби входу користувач
вводить свої облікові дані, які перевіряються сервером. У разі успішної перевірки
Django створює сесію користувача, що дозволяє ідентифікувати його під час
наступних запитів.
2.7 Аналіз якості та тестування роботи додатку
У сучасних умовах цифровізації освітнього середовища особливого значення
набуває якість програмного забезпечення, оскільки саме вона визначає стабільність
роботи інформаційних систем, коректність обробки даних та зручність взаємодії
користувача з програмним продуктом. Для навчальних закладів це питання є
особливо актуальним, адже системи управління розкладом занять використовуються
щоденно великою кількістю користувачів і повинні забезпечувати швидкий доступ
до актуальної інформації, її коректне відображення та можливість оперативного
редагування.
Розроблений вебзастосунок автоматизації розкладу занять призначений для
централізованого зберігання, перегляду та редагування навчального розкладу, а
також аналізу навчального навантаження. Враховуючи важливість достовірності
даних та безперервності роботи системи, значна увага під час розробки була
приділена
забезпеченню
функціональності.
якості
програмного
продукту
та
перевірці
його
У межах даного розділу здійснено оцінювання якості роботи вебзастосунку
шляхом проведення ручного функціонального тестування. Перевірці підлягали

53.

56
ключові можливості системи, зокрема перегляд розкладу занять, авторизація
користувачів, редагування навчального розкладу, формування аналітичних даних та
експорт інформації у файл формату Excel. Окрему увагу було приділено коректності
взаємодії інтерфейсу з серверною частиною, обробці форм введення даних та
відповідності результатів роботи системи очікуванням користувача.
Комплексне тестування дозволило перевірити працездатність системи в умовах
реального використання, оцінити стабільність виконання операцій та підтвердити
коректність логіки обробки навчальних даних.
Таблиця 2.1 – Тестування роботи функціоналу управління власними файлами
Номер
Початковий
Очікуваний
Фактичний
Опис тесту
Вхідні дані
тесту
стан
результат
результат
Відкриття
Користувач Перехід на
Сторінка
Відображається
сторінки
відкриває
сторінку
відкрилась
1.1
таблиця розкладу
розкладу
сайт
«Розклад»
коректно
Відображення У БД є
Заняття
Дані
1.2
Дані розкладу відображаються у
занять у
записи
відображено
таблиці
занять
відповідних клітинках правильно
Порожні
Відображення Частина
Виводиться символ
клітинки
порожнього
слотів не
1.3
«-»
показані
слоту
заповнена
коректно
Відображення У системі
Групи відображаються Відображення
1.4
Дані БД
груп
кілька груп
у заголовку таблиці
правильне
Таблиця 2.2 – Тестування авторизації користувачів системи
Номер
тесту
2.1
2.2
2.3
2.4
Опис тесту
Початковий
Вхідні дані
стан
Користувач не Правильний
авторизований логін і пароль
Очікуваний
результат
Вхід у систему
виконано
Фактичний
результат
Авторизація
успішна
Успішна
авторизація
Вхід з
Користувач не
Повідомлення про Помилка
неправильним
Невірний пароль
авторизований
помилку
відображена
паролем
Доступ до
Перехід на
Користувач не
Перенаправлення Перенаправлення
редагування без
сторінку
авторизований
на сторінку входу виконано
входу
редагування
Відкривається
Доступ після
Користувач
Перехід до
сторінка
Доступ надано
входу
авторизований редагування
редагування

54.

57
Таблиця 2.3: Тестування редагування розкладу
Номер
тесту
3.1
3.2
3.3
3.4
Опис тесту
Початковий
стан
Вхідні дані
Предмет,
викладач,
аудиторія
Додавання
заняття
Слот
порожній
Редагування
заняття
Видалення
заняття
Невалідний
часовий слот
Заняття
Нові параметри
існує
Заняття
Натискання
існує
«Видалити»
Некоректний
Дані POST
час
Очікуваний
результат
Створюється
запис заняття
Дані
оновлюються
Запис
видаляється
Запис не
створюється
Фактичний
результат
Запис
створено
Дані змінено
Видалення
виконано
Помилка
оброблена
Таблиця 2.4: Тестування модуля аналітичних даних
Номер
тесту
4.1
4.2
4.3
4.4
Початковий Вхідні
Фактичний
Очікуваний результат
стан
дані
результат
Відображення
Задано
Виводяться планові та
Дані БД
Дані коректні
статистики предметів семестр
проведені години
Розрахунок
Є записи
Дані
Обчислюється
Розрахунок
навантаження
занять
викладача навантаження
правильний
викладача
Дані
Показано використання Дані
Аналіз аудиторій
Є заняття
розкладу аудиторій
відображені
Семестр не
Повідомлення про
Повідомлення
Відсутній семестр
задано
помилку
показано
Опис тесту
Проведене тестування показало, що розроблений вебзастосунок управління
розкладом занять демонструє високий рівень стабільності та функціональної
завершеності. Усі ключові модулі системи працюють відповідно до визначених
вимог, забезпечуючи коректне відображення розкладу, безпечний доступ до
адміністративних функцій, можливість редагування навчальних даних та формування
аналітичної інформації.
Особливу увагу було приділено перевірці взаємодії клієнтської та серверної
частин застосунку. Результати тестування підтвердили коректність обробки HTTPзапитів, стабільність роботи механізму авторизації та правильність збереження даних
у базі SQLite. Інтерфейс системи демонструє логічну структуру навігації та зрозумілу
реакцію на дії користувача, що позитивно впливає на загальний користувацький
досвід.

55.

58
РОЗДІЛ 3. ВПРОВАДЖЕННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
3.1 Інструкція з розміщення сайту в Інтернеті
Розгортання розробленого веб-застосунку системи розкладу навчальних занять
передбачає підготовку програмного середовища, налаштування бази даних та запуск
серверної частини системи. Застосунок реалізовано із використанням фреймворку
Django, що працює на мові програмування Python та забезпечує побудову веб-системи
за архітектурою Model–View–Template. Такий підхід дозволяє розділити логіку
обробки даних, інтерфейс користувача та структуру збереження інформації, що
спрощує подальше обслуговування і масштабування системи.
Для локального запуску системи використовується стандартне середовище
Python, що включає:
– інтерпретатор Python;
– менеджер пакетів pip;
– фреймворк Django;
– систему керування базами даних SQLite.
Перед початком роботи необхідно встановити інтерпретатор Python і створити
ізольоване віртуальне середовище, у межах якого встановлюються залежності
проєкту. Після встановлення фреймворку Django виконується ініціалізація бази даних
за допомогою механізму міграцій, який автоматично створює необхідні таблиці
відповідно до описаних моделей даних. Завдяки використанню ORM Django
структура бази даних формується програмно, що усуває потребу ручного створення
SQL-схем і зменшує ризик помилок під час розгортання.
Після виконання міграцій система запускається вбудованим веб-сервером
Django, який забезпечує обробку HTTP-запитів, формування сторінок та взаємодію з
базою даних. У процесі роботи сервер генерує динамічні сторінки розкладу залежно
від наявних записів у базі даних, що дозволяє миттєво відображати зміни без
необхідності ручного оновлення сторінок.
Структура проєкту організована відповідно до стандартів Django і складається
з головного конфігураційного модуля та окремого застосунку, відповідального за

56.

59
логіку розкладу. У межах застосунку розміщені моделі даних, представлення (views),
маршрутизація URL-запитів і HTML-шаблони. Такий поділ забезпечує логічну
ізоляцію компонентів системи та спрощує подальше розширення функціональності.
На момент виконання роботи система функціонує у локальному середовищі
розробки, однак її архітектура передбачає можливість перенесення на віддалений
сервер або хостинг-платформу. Для публічного розміщення достатньо налаштувати
веб-сервер (наприклад, Nginx або Apache) як проксі до Django-застосунку та
використовувати WSGI-сервер для обробки запитів. Використання HTTPS-з’єднання
рекомендоване для забезпечення захисту облікових даних користувачів під час
авторизації.
3.2 Інструкція з обслуговування та оновлення сайту
Підтримка працездатності системи розкладу передбачає регулярне оновлення
даних, контроль коректності роботи серверної частини та внесення змін до
інтерфейсу або бізнес-логіки за потреби. Основною особливістю розробленого веб-
застосунку є те, що керування розкладом здійснюється безпосередньо через вебінтерфейс адміністратора, що усуває необхідність редагування програмного коду для
внесення змін до навчального графіка.
Після проходження авторизації адміністратор отримує доступ до сторінки
редагування розкладу, де може створювати, змінювати або видаляти записи занять.
Усі зміни одразу зберігаються у базі даних і автоматично відображаються на сторінці
перегляду розкладу завдяки динамічній генерації таблиці. Такий механізм забезпечує
актуальність інформації та мінімізує часові витрати на оновлення даних.
Оновлення зовнішнього вигляду системи виконується шляхом редагування
CSS-файлів та HTML-шаблонів Django. Оскільки інтерфейс побудований на
шаблонній системі, зміни в базовому шаблоні автоматично застосовуються до всіх
сторінок сайту, що дозволяє підтримувати єдиний стиль оформлення.
У разі виникнення технічних проблем перевірка здійснюється через консольні
повідомлення Django-сервера, які відображають помилки виконання, проблеми

57.

60
маршрутизації або некоректні запити до бази даних. Такий механізм спрощує
діагностику та дозволяє швидко локалізувати джерело помилки.
3.3 Підтримка та подальший розвиток
Для забезпечення надійності функціонування веб-застосунку важливим є
регулярне резервне копіювання бази даних, оскільки саме вона містить усі записи
розкладу занять. Резервне копіювання може виконуватися шляхом експорту бази
даних або автоматизованого створення копій на сервері. У разі збою системи це
дозволяє швидко відновити працездатність без втрати інформації.
Архітектура застосунку дозволяє поступове розширення функціональності. У
майбутньому система може бути доповнена ролями користувачів, персональними
розкладами викладачів, фільтрацією за аудиторіями або інтеграцією з мобільними
пристроями. Завдяки використанню Django додавання нових модулів не потребує
кардинальної перебудови існуючої структури.
Також перспективним напрямом розвитку є впровадження систем контролю
версій і автоматизованого розгортання. Це дозволить централізовано керувати
змінами коду, автоматично тестувати систему та спрощувати процес оновлення на
сервері.
3.4 Дослідження засобів розгортання програмного забезпечення
Для забезпечення надійності функціонування веб-застосунку важливим є
регулярне резервне копіювання бази даних, оскільки саме вона містить усі записи
розкладу занять. Резервне копіювання може виконуватися шляхом експорту бази
даних або автоматизованого створення копій на сервері. У разі збою системи це
дозволяє швидко відновити працездатність без втрати інформації.
Архітектура застосунку дозволяє поступове розширення функціональності. У
майбутньому система може бути доповнена ролями користувачів, персональними
розкладами викладачів, фільтрацією за аудиторіями або інтеграцією з мобільними
пристроями. Завдяки використанню Django додавання нових модулів не потребує
кардинальної перебудови існуючої структури.

58.

61
РОЗДІЛ 4. ОХОРОНА ПРАЦІ
Законодавча база у сфері охорони праці покликана гарантувати працівникові
безпечні та нешкідливі умови трудового процесу. Конституція України [1] з перших
рядків наголошує, що основною цінністю тієї чи іншої держави є її громадяни, їх
життя та здоров’я в процесі трудової діяльності. Найбільш дієвим важелем при
реалізації цього права є створення безпечних та нешкідливих умов праці (рис.4.1).
Фактори
Травмонебезпека
Пожежонебезпека
Електронебезпека
Якість повітря
Пил
Небезпечні
Випромінювання
Освітлення
Вібрація
Шум
Мікроклимат
Шкідливі
Рис. 4.1 Фактори, що впливають на охорону праці
Основним законодавчим документом у сфері охорони праці є Закон України
«Про охорону праці»[2], дія якого поширюється на всіх юридичних та фізичних осіб,
які, відповідно до законодавства, використовують найману працю громадян. Цей
закон визначає охорону праці як систему правових. соціально-економічних.
організаційно-технічних,
санітарно-гігієнічних
та
лікувально-профілактичних
заходів та засобів, спрямованих на збереження здоров’я та працездатності людини в
процесі праці. Система управління охороною праці на підприємстві організується
спеціальною службою й штатним, працюючим за сумісництвом або позаштатним
інженером з охорони праці (при кількості працівників ≥50, 20-49, <20 чол.,
відповідно)[2].

59.

62
Підзаконними актами у сфері використання інформаційних технологій є
Правила охорони праці під час експлуатації електронно-обчислювальних машин,
Державні санітарні правила і норми роботи з візуальними дисплейними терміналами
електронно-обчислювальних машин ДСанПіН 3.3.2.007-98[11], Примірна інструкція
з охорони праці під час експлуатації електронно-обчислювальних машин (2013 р.)[3].
Згідно даних документів для працівників ІТ-сфери організуються комфортні,
нешкідливі й небезпечні умови праці.
Комфортність забезпечується організацією робочого місця й специфічним
режимом праці.
Площа на одне робоче місце має становити не менше ніж 6,0 м2, а об’єм не
менше ніж 20,0 м3. Робочі місця з ВДТ (візуальні дисплейні термінали) слід так
розташовувати відносно світових прорізів, щоб природнє світло падало переважно з
лівого збоку.
При розміщенні робочих столів з ВДТ слід забезпечувати відстань між бічними
поверхнями ВДТ 1,2 м, відстань від тильної поверхні одного ВДТ до екрану іншого
ВДТ - 2,5 м[3].
Конструкція робочого столу має відповідати сучасним вимогам ергономіки:
висота робочої поверхні робочого столу в межах 680...800 мм, а ширина і
глибина
- забезпечувати можливість
виконання
операцій у зоні досяжності
моторного поля (рекомендовані розміри: 600...1400 мм, глибина - 800..1000 мм);
простір для ніг заввишки не менше ніж 600 мм, завширшки не менше ніж 500
мм, завглибшки (на рівні колін) не менше ніж 450 мм, на рівні простягнутої ноги не
менше ніж 650 мм;
стілець має бути підйомно-поворотним, регульованим за висотою, з нахилом
сидіння й спинки, поверхня сидіння має бути плоскою, передній край заокругленим.
Висота поверхні сидіння має регулюватися в межах 400...500 мм, а ширина і глибина
становити не менше ніж 400 мм[3];
для
зниження
статичного
напруження
м’язів
використовувати стаціонарні або змінні підлокітники;
верхніх
кінцівок
слід

60.

63
робоче місце має бути обладнане підставкою для ніг завширшки не менше ніж
300 мм, завглибшки не менше ніж 400 мм;
екран ВДТ має розташовуватися на оптимальній відстані від очей користувача,
що становить 600...700 мм, але не ближче ніж за 600 мм з урахуванням розміру
літерно-цифрових знаків і символів[11];
клавіатуру слід розташовувати на поверхні столу на відстані 100...300 мм від
краю стола. У конструкції клавіатури має передбачатися опорний пристрій,
виготовлений із матеріалу з високим коефіцієнтом тертя, що перешкоджає
мимовільному її зсуву[2].
У ході виконання робіт оператор ЕОМ (електронно-обчислювальні машини)
повинен:
витримувати відстань від очей до екрана ВДТ в межах (60 - 70) см;
дотримуватися внутрішньозмінного режиму праці й відпочинку, а саме, перерв
в роботі:
- для розробників програм - тривалістю 15 хв. через кожну годину роботи з
ВДТ;
- для операторів ЕОМ з ВДТ і ПП (периферійні пристрої) - тривалістю 15 хв.
через кожні дві години роботи з ВДТ;
- для операторів комп’ютерного набору - тривалістю 10 хв., після кожної години
роботи з ВДТ[2].
Під час регламентованих перерв рекомендується виконувати комплекси вправ
для очей, рук, хребта, поліпшення мозкового кровообігу тощо[11].
З питань охорони праці на аналізованому підприємстві докладніше зупинимося
на санітарно-гігієнічних умовах праці, саме, на впливі на людину мікроклімату,
шуму, вібрації, освітлення, випромінювання, пилу, якості повітря.
Одним із факторів, який може істотно впливати на стан організму працівника,
його працездатність, є мікроклімат (табл. 4.1.)[4].

61.

64
Таблиця 5.1 – Допустимі величини температури, відносної вологості та
швидкості руху повітря в робочій зоні виробничих приміщень
Уточнення:
Швидкість
Відносна
руху
вологість (%) на (м/сек.) на
На
На
На
На
робочих
робочих
Період Категорія постійни непостійни постійни непостійни
місцях місцях року
робіт
х
х
х
х
постійних і
постійних і
робочих робочих робочих робочих
непостійних непостійних
місцях
місцях
місцях
місцях
Легка Іа
Легка Іб
Середньо
Холодни ї
й
важкості
період руху ІІа
року Середньо
ї
важкості
ІІб
Важка
ІІІ
Легка Іа
Легка Іб
Середньо
ї
важкості
Теплий
ІІа
період
Середньо
року
ї
важкості
ІІб
Важка
ІІІ
Температура, oС
Верхня межа
Нижня межа
25
26
21
18
75
24
25
20
17
75
23
24
17
15
75
не
більше 0,1
не
більше 0,2
не
більше 0,3
не
більше 0,4
21
23
15
13
75
19
20
13
12
75
28
28
30
30
22
21
20
19
27
29
18
17
65-при 26грд С
0,4 - 0,2
27
29
15
15
70-при 25грд С
0,5 - 0,2
26
28
15
13
75-при 24грд С і
нижче
0,6 - 0,5
55-при 28грд С
60-при 27грд С
не
більше 0,5
0,2 - 0,1
0,3 - 0,1
Шум суттєво впливає на роботу програмістів, як людей творчої праці (табл. 4.2).
На підприємстві рівень звукового тиску не повинний перевищувати 50 дБ . Якщо
забезпечити даний рівень не вдається, то застосовуються шумові навушники,
протишумові перегородки, ізоляція шумного обладнання, акустична обробка стін,
стелі й підлоги, зменшення шуму у джерелі[5].

62.

65
Таблиця 4.2 – Норми з шуму в ІТ-сфері
Рівень
звуку,
дБА
Рівень звукового тиску, дБ
В октавних смугах с середньоквадратичними частотами, Гц
Робоче місце
Програмісти
ЕОМ
Оператори в
залах обробки
інформації та
оператори
комп’ютерного
набору
В
приміщеннях
для
розташування
шумних
агрегатів ЕОМ
31,5
63
125
250
500
1000
2000
4000
8000
86
71
61
54
49
45
42
40
38
50
96
83
74
68
63
60
57
55
54
65
103
91
83
77
73
70
68
66
64
75
Під час виконання робіт з ВДТ ЕОМ і ПЕОМ у виробничих приміщеннях
значення параметрів вібрації на робочих має відповідати ДСН 3.3.6.039-99[6].
Освітлення повинно відповідати нормам роботи високої точності[8].
500
400
300
200
40
20
40
20
15
15
15
15
Середнє Dсер
н сум
Мінімальне D
English     Русский Rules