Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/9183
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorСалапатов, Володимир Іванович-
dc.contributor.authorСіваков, Вадим Олександрович-
dc.date.accessioned2026-03-28T15:30:59Z-
dc.date.available2026-03-28T15:30:59Z-
dc.date.issued2023-06-17-
dc.identifier.urihttps://er.chdtu.edu.ua/handle/ChSTU/9183-
dc.description.abstractАНОТАЦІЯ Сіваков Baдим Олександрович Програмна реалізація запитів зареєстрованих користувачів 121 - Інженерія програмного забезпечення Черкаський державний технологічний університет Черкаси 2023 Кваліфікаційна робота присвячена розробці веб-додатку для моніторингу навчального процесу. Вона має на меті полегшити відстеження академічних досягнень студентів, забезпечити зв'язок між викладачами та студентами і покращити загальний навчальний досвід. Додаток включає функції, які дозволяють студентам переглядати свої академіічні результати, включаючи оцінки за різні завдання та іспити. Викладачі можуть також переглядати академічні результати своїх студентів та оцінювати роботи студентів. Розроблений веб-додаток базується на сучасних веб-технологіях і використовує зручний АРІ для клієнтів додатку. Він може бути розширений та адаптований для використання в різних освітніх установах. Дана кваліфікаційна робота бакалавра детально описує процес розробки веб-додатку включаючи аналіз вимог, проектування бази даних, реалізацію функцій та тестування. Вона пропонує практичну вартість у поліпшенні моніторингу навчального процесу та сприяє автоматизації адміністративних процесів, пов'язаних з управлінням навчанням.uk_UA
dc.description.abstractANNOTATION Sivakov, Vadym Software implementation of requests of registered users 121 - Software engineering Cherkasy State Technological University Cherkasy, 2023 The qualification work is devoted to the development of а web application for monitoring the educational process. It aims to make it easier to track student academic achievement, connect faculty and students, and improve the overall learning experience. The арр includes features that allow students to view their academic performance, including grades for various assignments and exams. Teachers can also view their students' academic performance and grade student work. The developed web application is based on modem web technologies and uses а convenient АРІ for application clients. It can be expanded and adapted for use in various educational institutions. This bachelor's thesis details the process of developing а web application, including requirements analysis, database design, feature implementation, and 1eSting. It offers practical value in improving the monitoring of the learning process and facilitates the automation of administrative processes related to learning management.uk_UA
dc.language.isoukuk_UA
dc.subjectвеб-додатокuk_UA
dc.subjectклієнт-серверuk_UA
dc.subjectмоніторинг навчального процесуuk_UA
dc.subjectстудентиuk_UA
dc.subjectвикладачіuk_UA
dc.subjectакадемічні результатиuk_UA
dc.subjectweb applicationuk_UA
dc.subjectclient-serveruk_UA
dc.subjectmonitoring of the educational processuk_UA
dc.subjectstudentsuk_UA
dc.subjectteachersuk_UA
dc.subjectacademic resultsuk_UA
dc.titleПрограмна реалізація запитів зареєстрованих користувачівuk_UA
dc.typeBachelor Thesisuk_UA
Appears in Collections:121 Інженерія програмного забезпечення (Інженерія програмного забезпечення)



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

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАУНИ 
ЧЕРКАСЬКИЙ ДЕР)КАВНИЙ ТЕХНОЛОГІЧНИЙ УІ-ІfВЕРСИТЕТ 
Ф~жультет і11формацій11их технологій і систем 
Кафедра програмного забезпечеиня аотоматизоnа11их систем 
І 
ПОЯСІ-ПОВАЛЬНА ЗАГШСКА 
до кваліфікаційної роботи 
«бакалавра» 
ос1.1іт11ій рівень 
на тему: Програмна реалізація запитів зареєстрованих користувачів 
Виконав: студент 4 курсу, групи ПЗС-2044 
Спеціальності 
121 «Інженерія програмного забезпечення» 
(шифр і назва напряму підготовки) 
Студент Сіваков В.О. 
(прізвище та ініціали) 
Керівник Салапатов В.І. 
(прізвище та ініціали) 
Рецензент Завалко Є.В. 
(прізвище та ініціали) 
Черкаси 2023 
Черкзсь~,..·нй J~ржазt~ніі rехио:югічннй ,-ніверсtrrет 
00:!.F.: ~~= aж:::nro ~~ 
Фз.ку. , t:,reт інdюр,1ацііін1~х rехно.1огііі і снсrеУ 
f(:~фцоз rтoonxi.,1 нoro ЗJ.безnечення aнro!.JanooвзtfJfX снсте·ч 
Сл:вrтній рів~нь fuкa.1aeo 
Сп~uіз..,ьні"- ть І ~ І ,,Ін:-,;-:енеоія поогра.,1ного забезпечення» 
Сл:вітня проrр(і.,1з Інженеоія noorua.\!Нoro забезпечення 
· Ю 
АС. професор 
О.ї\1> С.8. 
ЗАВДАННЯ 
НА КВА.ІІІФІК.\ І ( І Й8~1 РОБОТУ СГУдЕНТУ 
Сіваков Ва:ш~ О.,ексзнлоовrN 
(ЩІ~ Ш'2, ІЮ fu:тьmз:!) 
l. Те~у про~пу (роботи) Поогщnн1а оезлізапія заmпів ЗЗDеЄСГООваmІХ кооисn'ВЗЧЇВ 
Керівнnк проекгу (роботи) Caлarurroв Волотшио Іванович" к.т.ІL. доuеят 
(прЬзzm~ Ш .:і , ПО~ ЕІЗ)..-ОЗ'ZЙ Сіуn:ЇШ., .r-.= 33.ЕШі) 
Затверл:жені наказо~~ Черкаського д.ер;,;,,"ЗВвого тех:вопогічвого увіверспrету від « "4 » .1IOIOro 
2023 РО"-')" N..o.43/04 
2. Строк подання студентом проекrу (робсrш) -=-6_ч=е"о=вня~="-=-02=~"'~о""'-. ____________  
3. Вх.ідні данj до проекrу (роб<Уm) станлаиш поошого забезпечення: процеси ,'ПDЗ.В.шmя: 
ви~юпt .:10 пооеh.Т\': 1,.,-а..r~ендаоне плаtNвання пооекrv: vпоав.,їіння оиЗП1'а._\fИ проекn-: \'ІlDЗ.ВffіН­
ня pecYDCЗ.\l lf 
4. З11іст розра.·ч,нково-пояснювальної залиски (перепік питань, які потрібно розробпm) 
ВСТУП: 
ІСНУЮЧІ NfЕТОДИ ТА ЗАСОБИ РОЗВ'ЯЗАННЯ ПОСТАВЛЕНИХ ЗАВДАНЬ: 
ПРОЕКlУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ СИСТЕМИ: 
РОЗРОБКА ТА ТЕСТУВАННЯ ПРОГРАwfНОГО ЗАБЕЗПЕЧЕІО-ІЯ: 
ВИСНОВКИ: 
Список в11корнстаних лжерел: 
Лопатки. 
5. Перелік графічного матеріалу (з точним зазначенням обов'язкових робіт проекту; 
Діаграма класів: 
Діаграма преuендентів: 
Діаграма пакетів: 
Діаграма компоненті в: 
Діаграма ліяльності: 
Діаграма посліловності: 
6 Консул~. т n1п II ро1лі11і н 111юск·1у (pofim 11> 
- І}І • 
Ї Ірі11111щс, i11i1tiom1 ro 110,оли -'Завмії111~ щ>и '111~р, 
r o1Ai11 1:НІJJ3ІІІІЯ ІІИJІ1Ш _ 
К() ІІСУЛІ,1l\ 11 13 - ,--- l 
І І І 
2 І і 
3 -
7. Датn онна•1і за111щ1111я 24 сі•111я 2023 П· 
КЛЛЕ-і НДАРНИЙ ПЛАН 
Строк виконан-
Ni;i Примітки 
Назоа етапів випуск11ої роботи ю1 етапів еипу-
n/ n скної роботи 
05. 12.2022 виконано 
І Поста11оока задачі 
І 3. 12.2022 виконано 
2 Підготоока заодан11я 
з ПоrоД)Ксння заодан11я І 6.12.2022 виконано 
4 ЗатосрД)Кення заодання 24.02.2023 виконано 
Основна стадія ·-
І Підбір матеріаліо 27.02.2023 виконано 
2 АІіаліз шляхів вирішення постаоле1юї задачі 04.02.2023 виконано 
з Розрахунок оснооних параметрів роботи 10.03.2023 виконано 
4 Вибір кінцеоого варіанту проектного рішення 17.03.2023 виконано 
5 Оформлення первісної редакції роботи 25.04.2023 виконано 
Заключна стадія 
І Узгодження прийнятих проектних рішень з кері- 10.05.2023 виконано 
ВНИКОМ 
2 Оформлення ПОЯСІІІОВаЛЬІІОЇ записки роботи в 19.05.2023 виконано 
кінцевій редакції 
з Попередній захист роботи 22.05.2023 виконано 
4 ЗатвсрД)Ке1-1ия роботи 29.05.2023 виконаио 
5 Рецс11зуоа1111я роботи 13 .06.2023 виконано 
6 Захист роботи 
Студент 
Сіваков В.О. 
(11різоище та і 11і ніа11и) 
Керівник проекту (роботи) 
Салапатов В.І . 
(прізвище ·ra ініuіани) 
АНОТАЦІЯ 
Сіваков Ba.::rm1 Олександрович 
Програмна реалізація запитів зареєстрованих користувачів 
12 l - Інженерія програмного забезпечення 
Чері\-З.СЬ"-'J-ПЇ державний технологічний університет 
ЧерЕІ.-асп~ 2023 
J:(валіфікаuійна робота присвячена розробці веб-додатку для моніторингу 
еавча.їЬвого проаесу. Вона має на меті полегшити відстеження академічних 
,1осягнень С'І)'дентів, забезпечиrn зв'язок між викладачами та студентами І 
по&..-рзnипи загальний навчальний досвід. 
До.Jаток вкпючає функції, які дозволяють студентам переглядати свої 
ака,J.е~rічні результати, включаючи оцінки за різні завдання та іспити. Викладачі 
1южуть також переглядати академічні результати своїх студентів та оцінювати 
роботи студентів. 
Розроблений веб-додаток базується на сучасних веб-технологіях і 
використовує зручний АРІ для клієнтів додатку. Він може бути розширений та 
а:тптований для використання в різних освітніх установах. 
Дана кваліфікаційна робота бакалавра детально описує процес розробки 
веб--.Jодатку~ вкmоча.ючи анашз вимог, проектування бази даних, реалізацію 
фувкпі.й та тестування. Вона пропонує практичну вартість у поліпшенні 
1юніториmу навчального процесу та сприяє автоматизації адміністративних 
пропесів, пов'язаних з управлінням навчанням. 
Ключові слова: веб-додаток, клієнт-сервер, монпоринг навчального 
проuесу, студенти~ викладачі, академічні результати. 
ANNOTATION 
SiYako,1 \ ! adym 
Som,·are implementation of requests of registered users 
12 J - Som,1are engineering 
Cherkasy State Technological University 
Cherkasy, 2023 
The qualification ,,,ork is devoted to the development of а web application for 
monitoring the educational process. It aims to make it easier to track student 
academic achie,,ement, connect faculty and students, and improve the overall 
Jeamiпg e:\.'J)erience. 
The арр includes features that allow students to view their academic 
perfoпnance, including grades for various assignments and exams. Teachers сап also 
,іе"· their students' academic performance and grade student work. 
Тhе de,,eloped web application is based on modem web technologies and uses 
а con,1enient АРІ for application clients. It can Ье expanded and adapted for use in 
...-arious educational institutions. 
Тhis bachelor's thesis details the process of developing а web application, 
including requirements analysis, database design, feature implementation, and 
1eSting. It offers practical value in improving the monitoring of the leaming process 
and facilitates the automation of administrative processes related to leaming 
management. 
Keywords: web application, client-server, monitoring of the educationaJ 
process, students, teachers, academic results. 
ЗМІСТ 
ПЕРЕЛ1К УМОВНИХ ПОЗНАЧЕНЬ ................................................................. 5 
ВСТУП ............................... .................................................................................... 6 
І ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ'ЯЗАННЯ ПОСТАВЛЕНИХ 
ЗАВДАНЬ ........................ ........ .............................................................................. 7 
1.1 Опис предметної області ........................................................................... 7 
1·  2 А ктуалью.  проблеми, що виникають в процес,·  розробки ..................... . 9 
1.3 Методи та засоби, які вже використовуються для розробки ............... І О 
1.3 Конкретизація завдань роботи ................................................................ 11 
2 ПРОЕКТУВАІ-ШЯ ПРО ГР АМНО ГО ЗАБЕЗГІЕЧЕІ-ШЯ СИСТЕМИ ........ 13 
2.1 Предметна область моделювання ........................................................... 13 
2.1.1 Модель предметної області .......................................................... 13 
2.1.2 Словник предметної області ........................................................ 14 
2.1.3 Елементи моделювання предметної області .............................. 15 
2.1.4 Робоча область моделювання ...................................................... 16 
2.2 Формування та аналіз вимог до програмного забезпечення ............... 18 
2.2.1 Первинні і детальні вимоги .......................................................... 18 
2.2.2 Вимоги замовника 1 розробника. Функціональні та не 
функціональні вимоги ............................................................... ·. ...................... 19 
2.2.3 Формування вимог за допомогою діаграми прецедентів ......... 23 
2.3 Проектування логічної структури програмного комплексу ................ 24 
2.3.1 Діаграма класів .............................................................................. 24 
2.3.2 Діаграма пакетів ............................................................................ 25 
2.4 Архітектурне проектування .................................................................... 26 
2.4.1 Діаграма компонентів ................................................................... 26 
2.4.2 Розгортання програмної системи на апаратних засобах. 
Діаграма розrортання ....................................................................................... 27 
ЧДТУ.232102.007 ПЗ 
Зм Арк J"1'0  ДО\С"у""1.  (_ Д·д11. Лата 
Розроб. Сіваков В.О. lli, ПРОГРАМНА РЕАЛІЗАЦІЯ Лит. Лист Листів 
Пров. Салапатов В. і cj''r,,Л -
' ЗАПИТІВ І І з 80 
•,/ ,",  - ЗАРЕЄСТРОВАНИХ ФІТІС, 
H.KOHTD. Півень О.Б. J/JJi'l КОРИСТУВАЧІВ група ПЗС·2044 
Затв. Голvб С.В. ( IG--J ~-.. 
2.5 t\1Іод~JІІОвn 1111я ІІОВСЮІІІ( І'І системи ........................ .................................. 28 
2.5. І ) lirtrpнм 11 ні ял1,1юсті ...................................................................... 28 
2.5.2 Дinгpnr-.,tн ІІОСЛ Ї)\ОВІІОСТі .................. .. . .... ...................... .. ............... 29 
') 5 з )1 . ' ~ І(ОМ)'І ІІ. І(НЦ .І.І.  . 29 
-· · -~1,11 prtt-.·IH .......................................................... . .. .. .... . 
2.5.4 Діаграми с1сі 11че1юrо аІЗтомата ..... ................................................ 30 
З КОНСТРУІОВАННЯ ПРОГРАМНОЇ СИСТЕМИ ....................................... 32 
3. 1 Розроб1<а програмного комплексу .......................................................... 32 
3. 1.1 Об1·ру1-пуоання вибору засобів реал ізації ................................... 32 
3. 1.2 Опис структурної (функціональної) схеми ................................ 36 
3. 1.3 Опис логічної схеми системи ...................................................... 38 
3. 1.4 Розроб 1са бази даних ...................... ............................................... 39 
3. 1.5 Розробка інтерфейсу користувача .............................................. .44 
3.1.б Опис розробки програмних компонентів ........... :. ..................... .44 
3.2 Тестування системи ................................................................................. 45 
3.2.1 Модульне тестування ................................................................... 45 
3.2.2 Інтеграційне тестування .............................................................. .48 
3.2.3 Системне тестування .................................................................... 49 
3.2.4 Приймальне тестування ............................................................... 50 
висновки ......................................................................................................... 52 
СПИСОК ВИКОРИСТАНИХ Д)КЕРЕЛ ........................................................... 53 
: додл тки ............................................................................................................ 55 
Лист 
ЧДТУ.232102.007 ПЗ 
Зм. Лист № доку,\tс11тn Підпис Дата 4 
-
ч..:rrY. "'~~ 10~.007 ПЗ 
ГІЕРЕ.111': У\ іОВН1 lл ПОЗИ.\ ЧЕНЬ 
.-V'I - .-\pplicзrion Progr.tmшiнg Intcrfuc~ 
CSS - Cas зdілg {уІе l1~ts 
~П.. - H:-p~next ~lз.rkup Lз..nguзge 
Р:К - Primary :Кеу - первнннні'і ключ тзблнці 
SQL - Structured Query Lз..nguзge 
БД - Баз.а .:iaюrx 
ОС - ОпераціГmа cнcre:\la 
Ш - Програ.,mе забеЗпечення 
[П( - Персона.1 ьнmї ко:-.m · юrер 
СКБ.J. - Сnсте~1а кер:-вання баз&,ш данпх 
5 
-- --- - - -------------
tJJlTY.232102.007 ПЗ 
ВСТУП 
Л1~тун.11м1іст1. тс1\ш. Ст1юрс11ш1 і11формоцій11их систем є дуже а~<Туалr:,ним у 
су1 11н:1101\1у с11іті, Jtc і111\юрм1щіJ1 11і ;tі11юс nпжливу рош) у баrатr,ох сферах діяльності 
J Інщ~і\, ос віт11, бі знесу т1, ін" І-Ін с1,оrод11і інформаційні техноJН?Гії є необхідним 
і11струм~11том Jtml пі;tтримки рі:ших видів діят,1-юсті, а стоореш-нr інформаційних 
СІІС'І'~М )tOJBOJHICз а6сз 11С'1)'В(\'І'И НІШ·І )ЩИі:. Тf\ зручний доступ ДО інформації. 
Мста\ і :инщншш розробюа. Метою даної роботи являється розробка 
111ю1 ·ром1юї системи дня заnитіо зареєстрованих r<ористувачів. Розроблена система 
JtОЗВОJ1нт1, знрссстроrн\ІІим в с1,1стемі 1<ористуоачам ви1<онувати запити до бази 
;щ11их. Зnnдtн1ня цієї системи полягає u спрощенні процесу мон1торинrу 
успішності 11авчшн>110rо процесу ЯІ< зі сторони викладачів так і зі сторони 
:щобувачіо вищої осоіти. 
Об'састом розроб1с11 є процеси моніторингу навчального процесу. 
Мстод11 I1росIс-Iуоюшя та ко11струюва1111я. Даний проект був створений з 
метою дослідження і розробки програмного забезпечення для сфери освіти, з 
урахуоан11ям сучасних технологій та методи~< розроб1ш. 
У роботі розглядалися оснооні етапи розробки веб-додатку, таю як 
11роеJ<туuання, реалізація, тестуоання та впровадження. В процесі розробки були 
оиJ<ориста11і су1.~асні техноJІоrії, та~<і як Java, Spri11g Boot, PostgreSQL та інші. 
О11ис отрима11их рсзультатіо. Для реалізації дипломної роботи було 
оикористано архіте1<туру клієнт-сервер, в якій наш веб-додаток, являється 
серnером, що отримує запити оід клієнта, обробляє їх та по~.зертає необхідну 
інформації про проміжні стани иаочалr>ного процесу. В роботі продемонстровано 
процес розробr<И оеб-додатку, ЯІ<ий дозволяє користувачам отримувати дані про 
стан навчального процесу ЯІ< із сторони викладача так і з сторони студента. 
Пра1стич11с зIIа•IсIIш1 отрима11их результатів. Отримані результати 
дозволили розробити зручний, ефе1пивний та баrатофую<ціональний веб-додаток, 
я1шй дозволяє клієнтам здійснювати моніторинг навчального процесу, для 
оияолення трендін та покращення навчального процесу. 
6 
чдтv.2з2102.001 m 
І ІСНУЮЧJ N[ЕТОДИ ТА ЗАСОБИ РОЗВ'ЯЗАННЯ ПОСТАВЛЕНИХ 
ЗАВДАНЬ 
1.1 Опис предметної області 
Навчальний процес - це процес передачі знан:ь, y~1urь та навичок crJ.:re-, a<L'>! 
в установленій навчальній програ~,□. Навчальшnї npouec ~оже ві.1б,уваrnся У 
різних формах: лекції, семінари, практичні заняття, лабораторві робоm. 
самостійна робота та інші (1]. 
Основними етапа~"m навqальноrо процесу є: 
Підготовчий етап: на цьому етапі визначаються навчал:ьві uі.п:і та завдання, 
обирається методика та фор1'Ш навчання, встановлюються вор~ІП та вю.юrn до 
якості навqання. 
Орrанізаційmfй етап: на цьому етапі плавується розклад занять, обираються 
навчальн і матеріали та методичні посібники, призначаються вик.:,.1адач:і., 
визначаються методи оцінювання навчальних результатів. 
Процес навчання: на цьому етапі студенти отрпмують знання, уміння та 
навички з відповідних дисциплін. Цей етап може включаm .11ещїї, сеmнарп, 
практичю заняття, лабораторні роботи, самостійну роботу та інші форш~ 
вавчання. 
Оціюовання: на цьому етапі проводиться оцtюовання навчал:ьШІХ 
студент1в. Оцінювання може бути формальнлм (тес1уванnя, 
роботи) та неформальним (оцінка викладачем роботи студента, 
дискусії на семінарах тощо). 
Заключний етап: на цьому етапі відбувається пщведення підсумків 
ІНавчального процесу, оголошення результатів оціюовання, переведення на 
наступний курс або видача диплому. 
Навчальний процес є складним та довготривалим процесом, що вимагає від 
студентів та викладачів багато зусиль. Студентам потрібно відвідувати занятгя, 
виконувати лабораторні та практичні роботи, готуватися до заліків та іспитів, а 
q-акож вдосконалювати свої знання та навички у вільний час. Викладачі, зі свого 
7 
ЧДТУ .232102.007 ПЗ 
боку, мають nідготуоати та nрооссти якісні зашп·rя, давати с-rудентам нале-мну 
оцінку за їх роботу та підтримувати с-гудс11тів у їх навчанні . 
Успішне здійсне1111я 11авча111,11ого процесу залежить від багатьох факторів. 
Наприклад, якість підготоВІ<и викладачів та наявність відповідного навчального 
матеріалу, якість і доступність технічних засобі в, належне відношення до 
навчання з боку студентіо, ефективність організації навчального процесу в цілому 
та інші . 
Крім того, навчальний процес є важливим елементом формування 
особистості студента, його підготовки до життя та роботи в суспільст.ві. Тому 
важливо, щоб навчальний процес був організований таким чином, щоб 
забезпечити розвиток не л_ише професійн.их, а й загальнокультурних компетенцій 
студентів так званих «soft skills». 
Знаqноrо мірою покращення ефективності організації навчального процесу 
відбувається через розробку інформаційної системи моніторЮіrу навчального 
процесу. Автоматизація моніторингу навчального процесу може вкточати 
різноманітні програмні засоби, які допомагають відстежувати та аналізувати різні 
параметри навчання студентів. Серед яких важливо вщзначити систему 
електронного журналу - яка дозволяє викладачам вести журнал успішності та 
відвідування студентів, відслідковувати прогрес кожного студента. 
Це може бути інтегровано в одну інформаційну систему, я~а дає можливість 
відстежувати навчальний процес та ефективність роботи студентів та викладачів у 
режим~ реального часу. Автоматизація моніторингу навчального процесу 
дозволяє локращ.ити якість навчання та забезпечити більш точну та об'єктивну 
оцінку успішності студентів. 
Ось декілька причин, чому створення інформаційних систем є актуальним: 
І Збільшення продуктивност1 та ефективності: Інформаційні системи 
дозволяють автоматизувати багато рутинних операцій, що підвищує 
продуктивність та ефективність роботи. 
z Забезпечення точності та надійності: Інформаційні системи забезпечують 
8 
ЧДТУ.232 102.007 ПЗ 
точність та надійність обробки інформації, що зменшує ри.зик помилок та 
підвищує якість роботи. 
З Забезпечення доступносп : Інформаційні системи дозволяють 
забезпечити доступність інформації для користувачів, що є важливим У 
багатьох сферах діяльності. 
4 Зменшення витрат: Інформаційні системи можуть знизити витрати на 
робоqу силу, обладнання та програмне забезпечення, що є важливим для 
підприємств та організацій. 
5 Підтримка прийняття рішень: Інформаційні системи дозволяють зібрати 
та обробити вел.ику кількjсть даних, що підтримує прийняття рішень на 
основі об'єктивних фактів та даних. 
І .2 Актуальні проблеми, що виникають в процесі розробки 
Розробка веб-додат1'.')' моніторингу навчального процесу може зустрічати 
р1зн1 проблеми, які варто врахувати. Перерахуємо декілька актуальних проблем, 
що можуrь виникнути під час розробки такого додатку: 
І Інтеграція з існуючими системами: Часто у навчальних установах вже 
~снують різні системи управління навчальним процесом, таю як системи 
електронного журналу, системи планування розкладу тощо. Проблемою може 
бути інтеграція нового веб-додатку з існуючими системами, щоб забезпечитц 
взаємодію та обмін даними між ниr..m. 
2 Забезпечення безпеки: Оскільки веб-додаток монпорингу навчального 
процесу буде містити конфіденційну інформацію про студентів, важливо 
забезпечити належну безпеку цієї інформації. Проблемами можуrь бути витоки 
даних, несанкціонований доступ до системи, недостатня захищеність паролів та 
інші потенційні загрози безпеки. 
З Маштабованість та продуктивність: В залежності від розміру навчальної 
установи, кількості користувачів та обсягу даних, може виникнути проблема 
масштабування та продуктивності системи. Додаток повинен бути здатний 
ефективно працювати навіть при великій кількості одночасних користувачів та 
9 
ЧДТУ .232102.007 ПЗ 
обробttі uе.,111ю1х о6сягіu дn1111х . 
4 Зруч11іст1, uикор11стш1ня: Однією з ключових проблем є забезпечення 
зручного та і11туїт11u1ю зрозумілого і1перфейсу для користувачів. Додаток 
1юu1111с11 6ут11 легю,м у u11користа11ні та надавати вс1 необхідні функції, щоб 
1'ор11стувзчі і\t01·л11 зручно мо11іторити 11авчальний процес та отримувати потрібну 
інформаці 10. 
5 Піnтрнмка та оновлення: Після впровадження веб-додатку в 
експлузтзцію важл11во забезпе•1ити його підтримку та регулярні оновлення. 
Проблемою може бути відсутність достатньої технічної підтримки або відсутність 
оновлень, що може призвести до проблем з безпекою, стабільності та зручності 
в11кор11стання. 
Зaraлol\•t , успішна розробка веб-додатку моніторингу навчального процесу 
в11маrає вирішення цих та івших проблем, що можуть виникнути в процесі роботи 
над проектом . Важливо провести аналіз вимог, правильно спроектувати систему, 
розробити ефективну архітектуру та забезпечити якість реалізації та тестування. 
І .З Методи та засоби, які вже використовуються для розробки 
Для розробки веб-додатку моніторингу навчального процесу вже 
використовуються різні методи та засоби. Перерахуємо декілька з них: 
І Фреймворки розробки веб-додатків: Фрейr,шоркн, такі як Spring, Ruby on 
H.ails, Django, Laravel або ASP.NET, надають зручний спосіб організації та 
розробки веб-додатків. Вони мають готові компоненти та структуру, що 
допомагають прискорити процес розробки. 
2 Бази даних: Для зберігання даних про навчальний процес 
використовуються різні системи управління базами даних, такі як MySQL, 
PostgreSQL, MongoDB тощо. Вони дозволяють структурувати та зберігати дані 
про студентів, предмети, оцінки, пропуски, тощо. 
З Інструменти для фронтенд-розробки: Для розробки користувацького 
інтерфейсу використовуються інструменти, такі як НТМL, CSS, JavaScript і 
фреймворки, такі як React, Angular або Vue.js. Вони дозволяють створювати 
10 
ЧДТУ .232 102.007 ПЗ 
зручний та інтера1<Тив11ий і1перфеіk для користуваt1ів. 
4 REST або Grapl1QL АРІ: Для забезпечення озаємодїї між клієнтською та 
сероерною частинами використовуюп,ся АРІ. REST або GraphQL АРІ дозволяють 
отримувати та передаоати дані між клієнтом та сервером, що дозволяє реалізувати 
функціональність монітори11гу 11авчаль11ого процесу. 
5 Аnтоматизоване тестування: Для забезnечеиля якості розробки веб­
додатку використовуються різні інструменти для автоматизованоrо тестування, 
такі як JUnit, Selenium, Jest, PНPUnjt тощо. Це дозволяє перевіряти роботу 
функціональності та забезпечити стабільність та надійність додатку. 
б Засоби для контролю версій: Для організацїї спільної роботи 
розробників та контроmо версій використовуються системи контролю версій, такі 
$LK Git. Вони дозволяють відслідковувати та керувати змінами в коді, сптьно 
пра1.0овати над проектом та вирішувати конфлікти. 
1.3 Конкретизація завдань роботи 
При розробці веб-додатку моніторингу навr~альноrо процесу уюверситету 
можна визначити наступні конкретні завдання: 
1. Створити реляційну базу даних предметної області; 
2. Реалізувати зберігання конфіденційних даних в зашифрованому вигляді; 
З. Забезпечити функціональність по авторизації та реєстрації користувачjв; 
4. Реалізувати АРІ: 
4.1 для викладача, що повертає: 
інформацію про викладача що авторизувався; 
список предметів викладача; 
список rруп по вказаному предмету; 
- і нформацію про обрану rpyny; 
- список студенті в вказаної групи; 
всі оцінки обраного студента rpynи; 
всі проnусжи обраного студента групи; 
11 
ЧДТУ.232102.007 ПЗ 
- інформацію про студента. 
4.2 для студента, що повертає: 
- інформацію про студента що авторизувався; 
- список предметів; 
- всі оцінки студента; 
- всі пропуски студента. 
Технічні характеристики 
Сервер на якому встановлена система повинен мати насrупн1 
характеристиками: 
- CPU: 2х Intel Xeon 2Ghz; 
- RАМ 4096 МЬ; 
- LAN: 1 ОО МЬрs; 
- Встановлений: сервер додатків Apache Tomcat, та БД: Postgres. 
Клієнт повинен мати наступні характеристики: 
- CPU: 2xCore 1G hz; 
- RАМ 1024 МЬ; 
- ОС: Aлdroid. 
12 
ЧДТУ.232 I02.007 113 
2 ЛРОЕКТУВЛНІ ІЯ ПРОГРЛМІ-ІОГО ЗЛБGЗПЕЧШ JJ ІЯ СИСТЕМИ 
2. 1 І ІрСJtМСТІШ обJІnСТІ> MO)tCJIIO0UIIШI 
2. 1.1 Модель 11рс1,мст1юї області 
І-Іижче 1~аосде 110 заrат>1-1у модель предметної області мон,торинrу 
наnчалмюrо процесу у11іuсрситсту: 
Користуоачі: 
- адміністратори : Виконують адміністративні фун1<ції, управляють 
системою, налаштовують доступ та права 1<ористувачів; 
виt<Ладачі: Ведуть навt.1альні заняття , оцінюють студентів, надають 
інформацію про курси та програми ; 
- студенти: Зареєстровані в системі, відвідують курси, подають роботи, 
отримують оцінки та інформацію про навчання; 
- батьки: Можуть мати обмежений доступ до системи для перегляду 
академічного прогресу своїх дітей. 
2 Курси та програми: 
курси: Представляють окремі навчалью одиниц1, включають в себе 
назву, опис, викладача, кількість кредитів та інші атрибути; 
програми: Групи курсів, які формують певну спеціалізацію або 
навчальний план. Включають в себе список курсів, обов'язкові та 
вибіркові, послідовність вивчення та інші деталі. 
З Розклад: 
- розклад занять: Відображає розклад лекцій, семінарів, практичних 
занять та інших навчальних активностей для кожного курсу. Містить 
інформацію про дату, час, місце проведення та викладача. 
4 Оцінювання: 
- оцінки: Зберігають інформацію про оцінки, які отримали студенти за 
виконання завдань, контрольних робіт, екзаменів тощо; 
- перевірки: Включають дату, викладача, тип завдання (контрольна 
13 
ЧДТУ.232102.007 ПЗ 
робота, тест, проект) та оцінку. 
5 Академічний прогрес: 
- журнали: Відображають відві,дуваність студента.мн занять_, вкаючаюч.н 
відмітки про присутність та відсутність; 
загальний прогрес: Відображає академічний прогрес студенга. 
включаючи середній бал, кредити, успішно пройдені курсн -ro інші 
показники . 
б Комунікація: 
повідомлення: Дозволяють студентам, викладаЧfu\1 та ад!\1іні<.,--rрз.wра..\І 
обмінюватися повідомленнями щодо нав'-1альноrо процесу, зюаватн 
питання, надавати рекомендації тощо; 
оголошення: Служать для публікації важливої інформації, ономе~ 
змін в розкладі або програмах. 
7 Звіти та аналітика: 
зв1ти про успішність: Надають статистику щодо rо-.--адем~ч.ноrо 
прогресу студентів, середніх балів, відвідуваності, дНН&\1ікн про.гресу 
тощо; 
аналпика: Допомагає анашзувати даю про навчапьннй nроцес- ~ 
виявлення тенденцій, проблем, вдосконалення пporp&'d тощо. 
Представлена загальна модель предметної області, я.ь.с1. мо~---е- бутн. 
використана при розробці веб-додатку моніторингу навчмьноrо n-роцес-у 
уншерситету. 
2.1.2 Словник предметної області 
Перерахуємо терміни та визначення, що використовуються в npeд:\l.emi~i 
області веб-додатка моніторингу навчального процесу універси"Тету: 
1 Веб-додаток моніторингу навчального процесу: Снстема~ ЩQ д~€' 
відстежувати та керувати академічним прогресом студенті~ роз.кл~Q..'\І. З8R&1t~ 
оцінками та іншими аспектами навчання університету через веб-іаrерфей~. 
2 Курс: Окрема навчальна одиниця, я_ка включає в себе назву~ QRH.t-~ 
ЧДТУ.232102.007 ПЗ 
вию1r1N1чn, кіm,1,ість кредитів тn і11111і nтрибути . Студенти зареєстровані на курси, 
щоб в~,шчnти 11со11і теми обо 11рсдмстн. 
З Програма: Група курсів, які формують певну спеціалізацію або 
наочш11, 11нй плnн. Про,~рамн можуть мати обоо'язкооі та оибіркові курси, вказану 
ПОСJ Іідооніст1) ВНОЧСІІНЯ П\ інші деталі. 
4 Розклад занять : І рафік, який відображає дати, час та місце проведення 
лею ~ій , семінарі о, практичних занять та інших а~<адемічиих занять. 
5 Оцінка: Результат, який отримує студент за виконання завдань, 
ко11тролм1их робіт, е1<Заменів тощо. Оцінки можуть бути представлені у вигляді 
чисел, буко або інших форматів. 
6 Академічний прогрес: Інформація про успішність студента, включаючи 
середній бал, кількість кредитів, пройдені курси та інші показники, що 
відображають його а 1,адемічну вдачу . 
7 Відвідуваність: Інформація про присутність або відсутність студента на 
за1-1я ·г1·ях, яка може бути відображена в журналі або системі моніторингу. 
8 Викладач: Виконавець навчального процесу, який веде лекції, проводить 
семінари, оцінює роботи студентів та надає інформацію про курси. 
9 Студент: Особа, яка зареєстрована на курси університету та приймає 
участь у навчальному процесі. Вона може відвідувати заняття, подавати роботи, 
~отримувати оцінки та спілкуватися з викладачами та адміністраторами. 
1О  Адміністратор: Користувач системи, який має особливі права доступу та 
від11ооідалr,ність за адміністрування веб-додатка моніторингу навчального 
процесу. Адміністратор може 1<ерувати користувачами, налаштувати розклади, 
генерувати звіти тощо. 
2.1.3 Елементи моделювання предметної області 
Елементи моделювання предметної області включають в себе: 
Сутності - це об'єкти або концепції, які існують в предметній області. У 
вашому проекті можуть бути наступні сутності: Адміністратор, Викладач, 
Студент, Предмет, Оцінка, )Куриал відвідувань. 
15 
ЧДТУ .2321 02.007 ПЗ 
Атрибути - це хара~тер11сntк11 сутностей, які мають значення і дозволяють 
і.]е1пнфі1-:увати та опнсуватн сутності. У нашому проекті можуть буrи наступні 
атрнбуrи: для сутності Адміністратор - ім'я, прізвище, лог,н та пароль, дл.я 
сутності Викладач - ім'я, прізвище, електронна адреса. лог1н та пароль, для 
С)ТНОсті Оuінка - кількість бал.ів, предмет, дата та ін. 
Відносини - це зв'язки між сутностями. У нашому проекті можуrь бути 
нас1упнj відносини: Адміністратор може додавати, редагувати та видаляти будь 
які лані в базі даних, переглядати інформацію про стан навчального процесу. 
Викладач може авторизуватися, переглядати інформацію про предмети, студентів 
їх відвідуваність та успішність. Студент може авторизуватися та переглядати 
інфор~fацію про предмети, пропуски та оціюси. 
Асоціації - це відносини між сутностями, що показують, як вони пов1язані 
МІЖ собою. У вашому проекті можуrь бути наступні асоціації: Викладач має 
дос·rуп до інформаци про групу студентів. Викладач може мати багато предметів 
на яких навчаються багато студентів. Студент може мати багато предметів. За 
кожен nре,щ.1ет студент отримує одну підсумкову оцінку яка буде відображена в 
Д}fПЛОМl. 
При проектуванні системи та модеmованні предметної області ми будемо 
використовувати мову UМL [2]. Для створення д1аrрам в мові UМL 
використовуються три типи візуальних позначень: графічні символи, зв'язки, що 
об'єднують елементи, та текст. 
2.1.4 Робоча область моделювання 
Робоча область модеmовання веб-додатку моніторингу навчального процесу 
університету включає насrупні аспекти: 
1 Користувачі та автентифікація: 
реєстращя користувачш: Модель включає процес реєстрації 
користувачів, де вони можугь створювати облікові записи для 
доступу до системи; 
автентифікація та авторизація: Розроблена модель повинна включати 
16 
ЧДТУ.232102.007 ПЗ 
мсха11ізми аотснтифікації корнстува1.1ів та щща1111я прnв доступу о 
залежності від їх ролі (адміністратор, викладач, студент і т.д.). 
2 Курси та програми : 
модель повинна описувати структуру курсів і програм, включшочи їх 
назви, опис, викладачів та і_иші деталі; 
взаємозв'язок м1ж курсами та програмами : Модель повинна 
відображати зв'язок між курсами та програмами, вказувати, які курси 
входять до певної програми і в якому порядку їх потрібно проходити. 
З Розклад занять: 
модель повинна включати розклад занять, який відображає дати, час 
та місце проведеЮІЯ лекцій, семінарів, практичних занять та інших 
академічних заходів; 
зв'язок з курсами та викладачами: Модель повинна . відображати, які 
курси мають свій власний розклад і з якими викладачам:и вони 
пов'язані . 
4 Оціmовання: 
модель повинна включати систему оцінювання, де студенти МО:>і\.'УfЬ 
отримувати оцінки за виконання завдань, контрольних робіт, прое1.-тів 
тощо; 
зв'язок з курсами та викладачами: Модель повинна показувати, яю 
курси мають свою систему оціюовання та які викладачі відповідають 
за її проведення. 
5 Прогрес та аналітика: 
модель повин_иа включати засоби відстеження академічного прогресу 
студентів, такі як середній бал, кредити, пройдені курси тощо; 
звіти та аналітика: Модель може містити засоби для аналізу даних та 
створення звп1в про успішність студентів, прогрес у програмах та 
курсах тощо. 
6 Комунікація: 
17 
ЧДТУ.232102.007 ПЗ 
- модель повинна мати засоби для 1<омунікації м1ж користувачами, 
включаючи повідомлення, чат, форуми тощо; 
оголошення: Модель може включати систему оголошень, де викладачі 
та адміністратори можуть публікувати важливу інформацію для 
студентів. 
2.2 Формування та аналіз вимог до програмного забезпечення 
2.2.1 Первинні і детальні вимоги 
Первинні вимоги для веб-додатку моніторингу навчального процесу можуть 
включати наступне: 
І Автентифікація та авторизація: Додаток повинен. мати систему 
авторизації корисrувачів і механізми автентифікації, щоб корисrувачі могли 
увійти до системи з відповідними правами досrупу. 
2 Управління корисrувачами: Додаток повинен надавати можлив1сть 
адм1юстраторам керувати користувачами, включаючи студентів, викладачів та 
інших зацікавлених осіб. 
З Оцінки та академічний прогрес: Додаток повинен дозволяти 
адм1юстраторам, на основі переданої викладачем відомості успішності вносити 
оцінки, а також відстежувати академічний прогрес сrудентів. 
4 Комунікація: Система повинна забезпечувати можливість комунікації 
м1ж студентами, викладачами та адмш1страторами, наприклад, через систему 
повідомлень. 
5 Звіти та аналітика: Додаток може мати функціонал для генерації звітів та 
аналітики, що дозволить адміністраторам та викладачам аналізувати дані про 
прогрес студентів, успішність курсів тощо. 
6 Мобільна підтримка: Додаток може бути доступним для мобільних 
пристроїв, щоб користувачі могли отримувати доступ до інформації та 
функціоналу додатка з різних Android пристроїв. 
7 Безпека та конфіденційність: Система повинна забезпечувати захист 
18 
ЧДТУ.232102.007 ПЗ 
даних користувачів, а також забсзr1ечувати конфіденційність особисто·і 
інформації. 
8 Локалізація : Додаток може підтримувати р1зн1 мови та регіональні 
налаштування для зручності іноземних студентів. 
2.2.2 Вимоги замовника і розробника. Функціональні та не функціональні 
вимоги 
При розробці веб-додатку моніторингу навчального процесу, замовник 
встановив наступні вимоги: 
Автентифікація та авторизація: Необюдно щоб користувачі веб-додатку 
проходили процедуру автентифікації для доступу до системи. Крім того, може 
буrи встановлений рівень доступу для різних типів користувачів, таких як 
студенти , викладачі та батьки. 
Система оцінювання: Потрібно включити систему оцінювання веб-додатку, 
де викладачі можуть виставляти оцінки студентам за їхні роботи та виконані 
завдання. 
Комунікація та сповіщення: Бажано мати в наявності системи сповіщень та 
комунікації веб-додатку, яка дозволить студентам, викладачам та адміністрації 
обмінюватися повідомленнями. 
Персоналізація: Бажано, щоб веб-додаток мав можливість персоналізації 
користувачів, де вони зможуть налаштовувати свої налаштування та 
переглядати персоналізовану інформацію. 
Звітність: Необхідно, щоб веб-додаток надавав можливість генерувати звіти 
та статистику (середні значення) щодо навчального процесу, успішності 
студентів, відвідування занять тощо. 
Інтеграція з іншими системами: Вимогу щодо інтеграції веб-додатка з 
іншими системами, такими як системи управління навчальним процесом, 
електронний )курнал, тощо. 
Вимоги розробника веб-додатку моніторингу навчального процесу можуть 
включати: 
19 
ЧДТУ.232102.007 ПЗ 
1 Фую<ціональні вимоги: 
реєстрація та авте,-~тифікація користувачів; 
- відображе1-11-1я розкладу занять, включаючи інформацію про час, 
м1сце та тип заняття; 
ведення журналу присутності студентів на заняттях; 
відображення інформації про устшшсть студе~пв, включаючи 
оціюш та рейтинги; 
можливість завантаження та перегляду матеріалів занять, завдань та 
інших ресурсів; 
система сповіщень та повідомлень для користувачів; 
забезпечення можливості студентам та викладачам взаємодіяти та 
обмінюватися інформацією. 
шдтримка аналітичних звітів та статистики щодо навчального 
процесу. 
2 Технічні вимоги: 
використання сучасних веб-технологій, таких як Java; 
розробка на основі фреймворків та бібліотек, наприклад, Spring 
Framework; 
використання бази даних для збереження інформації про 
користувачів, предмети, групи, оцінки, відвідуваність тощо; 
забезпечення безпеки даних та захисту персональної інформації 
користувач ~в; 
розробка масштабованої арх1тектури, що дозволяє шдтримувати 
багато користувачів та обробляти великий обсяг даних; 
тестування та забезпечення якості програмного забезпечення. 
З Вимоги до дизайну та інтерфейсу: 
розробка зручного та інтуїтивно зрозумшого інтерфейсу, що 
задовольняє потреби користувачів; 
використання зручної навігації та візуалізації даних; 
20 
ЧДТУ.232102.007 ПЗ 
- адаптація додатку до різних пристроїв та розмірів екранів. 
Основні функціональні вимоги для веб-додатку моніторингу навчального 
процесу уюверситету включають наступне: 
1 Автентифікація та авторизація: 
- забезпечити механізми автентифікації користувачш для доступу до 
системи; 
- надати різні ролі та права доступу ( студент, викладач, адміністратор). 
2 Завдання та оцінки: 
відображати оцінки та прогрес студенпв відповідно до виконаних 
завдань та оцінок. 
З Комунікація: 
забезпечити систему обміну повщомленнями м1ж студентами, 
викладачами та адміністраторами. 
4 Аналітика: 
надати можливість анашзу даних про усшшюсть студенпв, 
академічний прогрес, відвідування тощо для виявлення тренд1в та 
покращення навчального процесу. 
5 Мобільна підтримка: 
розробити мобільну версію додатка для зручного доступу з мобільних 
пристроїв; 
забезпечити адаптивний дизайн, щоб додаток коректно відображався 
на різних розмірах екранів. 
б Безпека та конфіденційність: 
застосувати механізми шифрування для захисту конфіденційної 
інформації користувачів. 
забезпечити мехаюзми контролю доступу та захисту вщ 
несанкціонованого доступу до даних. 
7 Інтеграція з існуючими системами: 
забезпечити можливість інтеграції з іншими внутрішніми системами 
21 
ЧДТУ.232102.007 ПЗ 
університету, наприклад, системою управління навчальними курсами 
або електронною бібліотекою. 
Основні нефункціональні вимоги до веб-додатка моніторингу навчального 
процесу ун1верситету включають наступне: 
Надійність та доступність: 
система повинна бути надійною і функціонувати без перебоїв, 
забезпечуючи доступність користувачам протягом установленого часу 
роботи; 
забезпечити резервне кошювання даних та можливість відновлення 
системи у випадку виникнення помилок або аварійних ситуацій. 
2 Продуктивність: 
система повинна працювати ефективно, забезпечуючи швидкий відгук 
на запити користувачів; 
здатність обробляти великий обсяг даних та багатокористувацькі сесії 
без втрати продуктивності. 
З Масштабованість: 
додаток повинен мати можливість масштабуватися для впорядкування 
зростаючої кількості користувачів та обсягу даних; 
забезпечити гнучюсть системи, щоб додавати ресурси та 
розширювати її функціональність без значних змін в архітектурі. 
4 Інтерфейс та користувацький досвід: 
забезпечити зрозумілий та ергономічний інтерфейс користувача, що 
дозволить легко орієнтуватися та взаємодіяти з системою; 
- забезпечити відповідність стандартам дизайну та веб-розробки для 
поліпшення користувацького досвщу. 
5 Безпека та конфіденційність: 
застосувати механізми шифрування та ідентифікації для забезпечення 
конфіденційності та цілісності даних; 
_ забезпечити механізми авторизації та контролю доступу для 
22 
ЧДТУ.232102.007 ПЗ 
обмеження прав доступу до інформації. 
6 Сумісність : 
забезпечити сум1сюсть системи з різними веб-браузерами та 
операційними системами; 
- підтримувати сучасні веб-стандарти та протоколи для взаємодії 3 
1ншими системами . 
7 Підтримка: 
- забезпечити документацію та ресурси для користува.чів системи, щоб 
допомогrи їм з орієнтацією та використанням функціоналу; 
- забезпечити технічну підтримку для вирішення можливих проблем та 
надання допомоги користувачам. 
2.2.3 Формування вимог за допомогою діаграми прецедентів 
Діаграма прецедентів відображає функціональність системи з точки зору 
користувачів, і дозволяє аналізувати взаємодію між користувачами та системою. 
Б результаті проведення моделювання предметної області, формуванню словника 
та представлення вимог до системи, ми сформували наступну діаграму 
використання (рисунок 2.1 ). 
На даній діаграмі описано функціональні можливості викладача, студента та 
адміністратора системи. При авторизації викладач отримує доступ до інтерфейсу 
який дає йому змоrу переглядати інформацію про групи в яких він викладає в 
обраному ним семестрі, предмети в обраних групах. Також він має можливість 
переглянути інформацію про відвідуваність та успішність кожного окремого 
студента групи в яких він веде дисципліни. 
Студент авторизувавшись в системі отримує доступ до інтерфейсу який дає 
йому змоrу переглядати інформацію свою академічну інформацію, список 
предметів а також інформацію про відвідуваність та успішність. · 
Адміністратор системи, вводить останню інформацію про стан навчального 
процесу груп відповідно до журналу відвідування заповненого старостою групи. 
23 
ЧДТУ.232102.007 ПЗ 
~.. Peд.tryІ.tHHR 
~ clude 
--І- Меню :.. .---.i:. 
' ···. 11 
· кІ 
___.,.  _ ·•.. 
8ИМЛJД3Ч ··-... ---~нт  
АдмІнІстратор 
\ i11clude 
Переrл11д Р1д.srу1.sнн11 ~ 
' 
nponycкl1 
~ 
список 
ІІДМІТІІ 
студент 
Рисунок 2. l - Діаграма прецедентів 
2.3 Проектування логічної структури програмного комплексу 
2.3.1 Діаграма класів 
Діаграма класів є одним із видів діаграм в рамка~ мови моделювання lЛvfL 
Вона використовується для відображення класів, їх взаємодій та залежностей між 
ними в об'єктно-орієнтованому програмуванні. Діаграма класів містить класи, 
атрибути, методи, асоціації, спадкування та інші відношення між класами, що 
дозволяє проектувати та аналізувати архітектуру програмного забезпечення. 
Діаграма класів розробленого веб-додатку представлена на рисунок 2.2. 
Дана діаграма описує основні класи, що використовуються .в  системі. Клас 
Teacher (викладач) описує викладачів університету. Клас Student (студент) описує 
сутність студента. Клас StudentGroup (академічна група) описує групи в яких 
навчаються студенти . Клас CourseForGroup (предмети для груп) описує зв'язок 
між академічними групами та предметами які в них викладаються, певним 
викладачем. Клас Grade (оцінка) описує журнал оцінок студентів. Клас Absence 
24 
Ч)tТУ .232102.007 ПЗ 
(відсутність) 01111сус жур11ол niJtOi}\)'0011ocтi студснтіо гру11и . 
Реал ізація юшсіn в111<011nно на моnі проr-рамуоання Java, сама діаграма 
побудована засобами інтеr-рооаного середовища розробки Intellij IDEA. 
• О о І о о О о о t О о о 
. . . .... . .... ... .. . ....... . ... ·. .. .. ... ... . . 
. . . . . . . . . . . 
; :: : : : : .  :: : : : : 1 >~ ... ·~:' : - ~ :_:- ~  ~ ~ -~ -~ .. :: : .: .:  .: .: .: .: : : : : : : : ~  . .. . . . .. J 
: . ... . .... .. о; ,. ТаЬІе 
·а
.''   ..... . ....... .. . 
с Cours~sForGroup .......... l<:'J: ~ · .д.'ь~~~~~ т 'ё: ., Grade 
t-----~І І . І 1---І- · ---; 
с O Teacher @ а s,ude~t ,.:;J (&) '• Stud~tGroup--1 
1------~1 .-1- ---11 ...--1- ----11 
Рисунок 2.2 - Діаграма класів 
2.3.2 Діаграма пакетів 
На рисунку 2.3 представлена діаграма пакепв розробленого веб-додатку. 
DispatherServlet це передній контролер у веб-додатках Spring. Він 
використовується для створення веб-додат1<ів і служб REST у Spring МVС. 
Головний контролер управляє контролерами які містять бізнес логіку додатку, які 
в свою чергу імпортують постачальників даних з бази даних проекту. 
0ispatcherServlet Controllers І Repositorie,s 
~ POST ~ Student~greeRepo 
~ GЕТ almport» ffij r e a cher Repository 
~ StudentGroupRepo 
1§1 GradeRepository 
~ AЬsenceRepos1tory 
Рисунок 2.3 - Діаграма пакетів 
25 
-
ЧДТУ.232102.007 ПЗ 
2.4 Архітектурне проектування 
2.4.1 Діаграма компонентів 
Діаграма компонентів - це вид діаграми, що використовується в розробцj 
програмного забезпечення для відображення архітектури системи та залежність 
:між її компонентами. Діаграма компонентів зображує окремі компоненти 
програмної системи, їх інтерфейси та залежності між ними. Ця діаграма 
допомагає у розумінні, як окремі компоненти системи взаємодіють між собою та 
як вони розподілені між фізичними або логічними областями. 
На діаграмі компонентів (рисунок 2.4) нашої системи, зображено взаємодію 
компонент1в яю відповідають за відображення успішності (Gтade) та 
відвідуваності (Absence) здобувача вищої освіти (Student), що авторизувався в 
систем~. 
Grade 
Grade details 
Absence details 
Student 
User details 
User 
Рисунок 2.4 - Діаграма компонентів 
26 
ЧДТУ .232 102.007 ПЗ 
2.4.2 Розгортання 11ро1тшм1юї снстсми 110 nноратних засобах. Діаграма 
роз гор та 1-1н я 
Діаграма 1юз1·орта~ 111я [ 111 (0 111 ·л. dcploy111c11t diogram) - діаграма о UML, на 
якій оідоброжаються 061 111сл10нru11,11і uузли під час роботи програми, компоненти , 
та об'скт11 , що виконуються на цих вузлах. 
На рисунку 2.5 зображена діаграма розгортання Spring Boot веб-додатку, що 
оп~1сус фізичну архітектуру системи і відображає компоненти та їх розташування 
на різних серверах або вузлах. 
ccdevlc.e►► 
О1tаЬаи Sorver 
ccdata~и 1yalmi>► 
Poa19ros SQL 14 
<<use>> 
ТСР/ІР РО/1 54;~, ', L...;.....:':'; ...';.:·_'_ .:::.::::.. :....:..::::.-=.=....:..=;..:..;.;;,.._.....;..___;;..._=-=.;:....;;...1 
«devlce>> СІ 
EmЬedded Tomc.t Server 
І <<anirac~> 
-ь_.pprк:ation.ww 
<<use>·>" - ...... 
~.'- ... ! . 
НУТР Por1 8080 ' ' r ~-- ·. ·,. ·. •,-~ - •·: <<devlce►►-
:..c11tnt'sPC 
., \ • \ .._. І 
.,  , ,.  ·- . І.'~~г~~~.,,;:.,=-.?~= ;;;.,,;,:-t"r.І--
Рисунок 2.5 - Діаграма розгортання 
Основні компоненти, що присутні на діаграмі розгортання: . 
Веб-сервер: Це сервер, який приймає та обробляє НТТР-запити від клієнтів. 
В Spring Boot зазвичай використовує вбудовані веб-сервери, такі як Tomcat, Jetty. 
Додаток Spring Boot: Це основний компонент, який містить бізнес-логіку 
27 
ЧДТУ.232102.007 ПЗ 
вашого веб-додатку. Він розrортнєт1,ся 110 осб-сервсрі обробляє І·ІТТР-запити, 
надаючи відповіді клієнтnм. 
База даних: База даних може бути po:пniuoooш1 110. 01<рсмому ccpnepi або 
використовувати хмарні послуги баз дnних. 
Клієнти: Користувачі, що 1щцсипшоть НТ'ТР-зоnити до ш1шоrо Dеб-додатку. 
2.5 l'vІоделювання поведінки системи 
2.5 .1 Діаграми діяльності 
На рисунку 2.6 представлений загальний алгоритм використання системи У 
вигляді діаграми діяльності. 
і\вТОрІІJОUІя 
(О~ІСТ),'80ЧО 
т•• 
nереrмд ІІіформnцІІ nороm!Ід ІнфоІ)J,ІоцІІ 
Про 81\ІU'ІІІДс\ЧВ npo с:тудонто 
nереrмд слI1с~у nредмоТ1в пороrмд c.nиcq 
ВІІІ:/18ДВЧВ ПJ)ОДІ.ІО110 
nepernяд с1щсху груп дпя 
пороrляд проnускІо то 
sиОраноrо nредметз ОЦІН()І( 
переrІІ!ІА ІМформаur, 
npo rpyny 
nepernм сnиску студентІо 
rpynи д1111 в11браноrо 
Пред!.ІОТ8 
пореr11;1д nponye-qo то оцІ110~ 
ДЛІІ оибраноrо студо1Iта 
Рисунок 2.6 - Діаграма послідовності 
28 
J 
модеJ\\()Щ\ННН, НК\\\\ Щ\~0\ЧІ\.'\\\\\~Т \'М'Ч ДЮt нр '.'\ , ,,~\\І._І\ 'ННЧ \\\\\'J\ \ 1\\\ЩЮ ' \ '\ \\\'1 ~\()\' 
операціі'l )' С\Н.'1~М\ t\()O Hp\)\\t.'\'\, 
2.5.- Дінгр~,мн П\"І\'.1 \U\О\~щ,\' 1·і 
Діnгрnмn ПОІ.'J\і;\онності \\\' шн\ Jtіщ·рщ,щ, Н\'-' нtJ.\'-'бt~'~'Ш' tI0\\1\t:\\ШHk ,·,, 
внконnння nо"t>ц\омнсн~ між '-'б\·ктщ,,н \\ р~,м~1,~ ~ Ч\К\ ,,·н1.Ч\\ \.'\\ ·нщ,,,н ,, ~щ·м\. ;\ії, 
Вонn дозвоJ\Нf інюструщїїн. н~ об' "7\'\\ ,~·:\t'М\.\І\ію,·,, М\Ж \''-'(''-)''-' н н~нщ,:-.\у '"-'t ~\~У 
Tfl Чf\СОВОМ)' проміжку ДJЩ ДО\.'Н\'Н~Н\\ \ Нt'ЩЮ\' Mt''\'\\ Н(),\_) \ЩК \\Щ\Н\~ \\t'\\Н\,у функнії, 
Hn рнсунку 2.7  ··ображена діщ'р~,~ш \\P(.)\\.t'\'Y М'-Ч\\ t\)рнш·у н:щч:\.!Н,Н'-Ч\\ щ, \\~ 'У 
викладnчеr,.,,. 
~ 
етуденr 
' ' \ 
і getT011cherOrSt1Jd0t)IВ)•Eщ~Щl)ІЩ\II) 1 j 11\Щ~ru~'\a Д;Ші~~ ~ \ll\ : 
j◄ ······· ···· ....... StІJdOІH =······ ......... ] ......................" .. ........ ~. . ............................. ~.Q 
''  
; ootCoursc sBy Еш111ІА11(1 So111os1cф>11l{lll.$0IIWSI0f) : \ :.\'ttІ\)'\і~ЩН.Я J.\~\ll'l~ : 
.i◄ ················ !'~J~.~'!~~! . ................... .і• • -- ............................... 0.. .............................0  
' \ 
' \ 
і oetGг-,des8yStude111E11111IІ(e111all.froщ,10) : : 3\\11\~'(}ШІНЯД~Ш\~ : 
..j ~J  •• •• ••••• • •• • tІ~!9.Гі!~.о.~~9~~jуf!.слІ.s. .............l  . ................................ ~.  ............................. ~ ' ' \ 
' : ' 
j oeІAbse11cosByStudo111Emall(o1111111.1ro111,101 : : ;\\\lll)'\},\Нt~l J\~\IUl~ : 
..~ ◄  ···· ....... _l!H~!>~.e11c;~~f~!.S.l!J.Ф!1!!! . ........ ) .. ... •· •·· •····· •·· •··· ........ •·· J. .............................. ) 
. ' \ ' 
\ \ 
' 
.:  : :' ' 
..   : 
' 
' . 
.''   ... '   
.' . 
...
'    ..'' 
:  .   .  
Рисунок 2.7 - Ді(н·рnмn нос.11іJЩН\\Q\:'\'і 
2.5.3 Діаграми комунікn\\ії 
Діаграма комунікnції зобрnжснfІ но µнсунку 2.8, оннсу<' по~.Н\J\0\3\\\е'\'Ь дШ 
викладача для отримання акодсr-., ічної інформоції нро uнGpf\\IO\\) ТУJ\~нта. 
ЧДТУ.232 102.007 ПЗ 
Сnисо~ 
Лмдсм.rруn 
,,.,, 
,, ,, ,, ''.. ... .2.  ОибІр nрЄJ\МСТV 
... 
, ,, ,, ,, ,, ,, ", 0~1І бр rpynи ' .. ,. ___ _____, 
Сnнсон 
nредметІо 
Викладач І 
\ І 
І 
\ І 
\ 
\ 5: ШдображеннR ІнформацІТ ,'з : 8ибІр студента 
\ І 
\ І 
\ І 
\ ,І  
' 
Сторінка 4: ОцІнни/Проnусни 
Сnисон 
ІнформацІі ◄----------- --- студеюІо 
Рисунок 2.8 - Діаграма комунікацій 
2.5 .4 Діаграми скінченого автомата 
На рисунку 2.9 зображена діаграма скjнченого автомату для нашої системи. 
Діаграма скінченого автомата (ДСА) - це графічне представлення поведінки 
системи з обмеженою кільюстю станів та переходів між ними. 
У розробці програмного забезпечення (ПЗ) дана діаграма використовується 
для моделювання різних сценаріїв та керування програмою. ДСА допомагає 
визначити реакцію системи на події, планувати тестуванн.ц та аналізувати 
помилки. Вона забезпечує краще розуміння та управління послідовністю подій у 
програмі для покращення її якості та надійності . 
Розробка ПЗ з використанням ДСА має юлька переваг. По-перше, вона 
допомагає визначити реакцію системи на різні вхідні події. Це дозволяє точно 
визначити функціональні вимоги до програми та її поведінку в різних сценаріях. 
По-друге, ДСА допомагає у плануванні тестування. Використовуючи 
діаграму, розробник може створити тестові сценарії, які охоплюють різні 
переходи та стани системи. Це сприяє виявленню помилок та некоректної роботи 
програми на ранніх етапах розробки. 
зо 
.. 
ЧДТУ.232102.007 ПЗ 
• 
А3ТОрІОаl!А 
І':О~Уо!СТ)'ВёNЗ 
Авторизувався 
[, cтyдet-rr 
їtере..т..~ і-,форщ;1.,rії перегляд інформацїі 
про s.• Фадача npo студента 
у 
r:epeo-nF.,:; СІІі!Щ П~!.Іі:113 перегляд списку 
:. !.'_ (Г~а,..а nред1.1етіз 
n~em.-=~ СІ- ~елу груіі дr.я nepernяд nponycxia та 
~~брё..:.;оrо гр-ещ.~єта ---• оці;;ок 
пе~.,:. і.-$0~1.щії 
n:po rpy;;y 
iiepem?..,4 cnao.'}' CiY.J.Єfffi3 
і'J}у;їІ1 для :>1fбраноrо 
Пре,.3.t.tета 
їteperrcr.д nропусхіз та оціно ;: 
для :~1іраноп> сrудента 1---------' 
Рисунок 2.9 - Діаграма скінченого автомату 
31 
ЧДТУ.232102.007 ПЗ 
3 КОНСТРУІОВАННЯ ПРОГРАМНОУ СИСТЕМИ 
3 .1 Розробка nрограмного комплексу 
3.1.1 Обrрунтування вибору засобів реалізації 
Засобами реалізації з самого початку були обрані Java зі Spring Framework 
на бекенді, системою керування базою даних було обрано PostgreSQL. Загальна 
схема використаних технологій та засобів показана на рисунок З .1 . 
АРІ 
Програмна 
BackEnd реалізація запитів FrontEnd 
зареєстрованих 
користувачів 
[fJ 
Spring Framework PostgreSqL 
Java 
Рисунок З .1 - Схема використаних технологій розробки 
Java є однією з найпопулярніших. мов програмування у світі, і це не без 
причин. Ось деякі переваги мови програмування Java: 
Переносимість: Java розроблена з урахуванням концепції "Write Once, Run 
Anywhere" (WORA). Код, написаний на Java, може працювати на будь-якій 
платформі, яка має відповідну віртуальну машину Java (JVМ). Це дозволяє легко 
переносити та виконувати Jаvа-проrрами на різних операційних системах без 
необхідності змінювати вихідний код. 
Об'єктно-орієнтоване програмування: Java є повноцінною об'єктно­
орієнтованою мовою. Вона пропонує концепції класів, об'єктів, спадкування, 
поліморфізму і інших основних принципів ООП. Це сприяє створенню 
32 
ЧДТУ.232102.007 ПЗ 
модульного, розширюваного та підтримуваного коду. 
Велика е1<0систсма: Java має велику та активну спільноту розробників, що 
приз,зодит1> до великої екосистеми інструментів, бібліотек і фреймворків. Це 
дозооляє розробникам ефективно ви кону вати завдання, викор~стовуючи готов~ 
рішення та стандартизовані підходи . 
Висока продуктивність: Java використовує компіляцію в байт-код, який 
виконується на віртуальній машині Java (JVM). JVМ використовує оптимізації, 
що дозволяюп> досяп·и високої продуктивності виконання програм. Крім того, в 
Java доступю потужні ІНструменти для профілювання та оптимізації 
nродуктивност1. 
Безпека: Java має вбудовану систему безпеки, яка дозволяє обмежувати 
доступ до ресурсів, контролювати виконання коду і запобігати потенційно 
небезпечним операціям. Це робить Java популярною для розробки безпечних 
. . 
систем I додатюв. 
Підтримка баrатопоточності: Java надає вбудовану лjдтримку 
баrатопоточності, що дозволяє розробляти програми, які виконуються паралельно 
та ефективно використовують ресурси системи. Це особливо корисно для 
розробки серверних додатків, які мають обробляти багато запитів одночасно. 
Широке застосування: Java застосовується у багатьох сферах, включаючи 
веб-розробку, мобільну розробку (з використанням Android), розробку платформи 
Enterprise, наукові дослідження та багато іншого. Це робить Java універсальною 
мовою програмування. 
Враховуючи ці переваги, Java є привабливим вибором для розробників при 
створенні веб-додатків, особливо для підприємственоrо рівня проектів. 
Spring Framework. 
Spring Framework є одним з найпопулярніших фреймворків для розробки 
програмного забезпечення на мові Java. Він надає розширення та інструменти для 
створення різних видів додатків, включаючи веб-додатки, мікросервіси та додатки 
r,ідприємницького рівня. Основні можливості Spring Framework включають: 
33 
ЧДТУ.232 102 .007 ПЗ 
Інверсія управління (ІоС): Sp.-iпg оикористооує ,,ри~щип JoC, що дозволяє 
змінювати керування життєnим циклом об'єктів. Ви можете визначати змежності 
між об'єктами за допомогою конфігураційних файліn або 01-юпщій, і Spring буде 
автоматично створювати та керувати цими об'єктами. 
Система ін'єкцій залежностей (Depe11dency Injectioп - DI): Spring надає 
механізми для автоматичної ін'єкції залежностей між об'єктами . Ви можете 
оголосити залежності в класах та дати Spгing відповідальність за їхнє створення та 
передачу. 
Аспектна-орієнтоване програмування (Aspect-Oriented Progгamшing - ЛОР): 
Spring підтримує АОР, що дозволяє вам розділити логіку, пов'язану з Ісількома 
компонентами, на окремі модулі, які називаються аспектами . Це дозволяє 
зосередитися на основній бізнес-логіці та легко виконувати перехоплення, 
лоrування, транзаІЩії та інші аспекти додатку. 
Spring МУС: Spring надає реалізацію патерну Model-View-Controller (МVС) 
для створення веб-додатків. Spring МУС дозволяє легко визначати контролери, 
в'юшки та моделі для обробки НТТР-запитів та відповідей. Він також надає різні 
можливосn для обробки форм, валідації даних, обробки виключень та багато 
іншого. 
Spring Data: Spring Data надає спрощений спосіб роботи з базами даних у 
вашому додатку. Він підтримує різні технології доступу до даних, такі як JPA) 
ЮВС, MongoDB, Redis і багато інших. Spring Data дозволяє зменшити кількість 
коду, пов'язаного з доступом до даних, та автоматично генерує SQL-запити або 
команди для інших технологій доступу до даних. 
Spring Security: Spring Security є потужним інструментом для забезпечення 
безпеки вашого додатку. Він надає можливості аутентифікації, авторизації, 
керування сеансами, захисту від атак і багато іншого. Завдяки Spring Secw-ity ви 
можете легко захистити ваш веб-додаток та керувати доступом до ресурсів. 
Тестування: Spring надає підтримку для тестування додатків) включаючи 
34 
ЧДТУ.232 102.007 ПЗ 
модУльне тестування, інтеграційне тестува1111я та автоматичне тестування. Ви 
можете легко виконувати тести на різних ріонях додатку, використовуючи 
спеціальні інструменти та підходи, що надаються Spring. 
Це лише деяк і основні можливості Sp1·ing Framework. Враховуючи його 
широкі фуш<ціональні можливості та підтримку спільноти розробників, Spring 
frainework стає потужним інструментом для розробки різноманітних програмних 
проектів на мові Ja va. 
Spring Framework є провідним фреймворком для побудови бекенд-частин 
веб-застосунків на Java. Він є розгалуженою, з багатьма потрібними складовими 
основою для побудови програм від середніх до найбільших та найскладніших. 
Можливості Spring Framework вказано на початковій сторінці Spring (рисунок 
З.З). 
Spring Framework є цінним не тільки як якісний, зрілий продукт - він також 
має гнучкий та всебічний набір розширень та бібліотеки сторонніх виробників, 
що дозволяють розробникам створювати практично будь-які програми, які можна 
уявити. По суті, функції Inversion of Control (ІоС) та Dependency lnjection (DI) [ 4] 
Spring Framework створюють основу для широкого набору можливостей та 
функціональності. Незалежно від того, чи створюються безпечні, реактивні, 
хмарні мікросервіси для Інтернету або складні потоки даних для підприємства, 
Spring має інструменти, які допоможуть. 
Високий рівень безпеки є однією з рис, яка відрізняє його вщ шших 
поширених фреймворків. Spring має перевірений досвід вирішення питань 
безпеки швидко та відповідально. Розробники Spring працюють з фахівцями з 
безпеки, щоб виправити і протестувати будь-які повідомлення про вразливості. 
Сторонні залежності також ретельно контролюються і регулярно оновлюються, 
щоб зберегrи дані та програми максимально безпечними. Крім того, є спеціальна 
частина Spring Framework - це Spring Security, яка полегшує інтеграцію зі 
стандартними галузевими схемами безпеки та забезпечує надійні рішення, які 
захищені за замовчуванням [7] . 
35 
- ---- - ------ -
, 
ЧДТУ.232102.007 ПЗ 
What Spring can do 
~ Q ~ ~ 
Mlcroservlces Reactlve Cloud Web apps 
QuІckly dellver Sprlng·s ,нyщhronous. Your со<Іе. any cloud-•ue·ve l'rameworks (or (ast. secure. 
produc\1011,i;ra de leatures nonblocklng architecture got you covered. Connect and responslve web 
І\11\h Іndepende111Іy means you cJn get more and scale your servlces, appllcations connectcd 10 
evolvable m1c1·oserv1ces. fron1 your comp11tlng whatever your platform. any data store. 
resources. 
rл •~  ~ 
Serverless Event Drlven Batch 
The oltlmate flex1billty. Scale lntegrate v;lth your Automated tasks. orn,ne 
up 01, demand and scale to enterprlse. React to processlng or data at а tlme 
zero 1vl1en tl1Ne's no busІness events. Act on your to sult you. 
demand. stream111g data Іn real!lme. 
Рисунок З .2 - Можливості Spring Framework 
З .1.2 Опис структурної ( функціональноі) схеми 
При побудові додатку використовувались відомі та широко поІШІрені 
архітектурні шаблони Model-View-Controller (МVС) та Representational State 
Transfer (REST). 
Model-View-Controller (МУС) - це архітектурний шаблон, який роздшяє 
додаток на три основні логічні компоненти: модель, вигляд та контролер [8] . Це 
робиться для відокремлення внутрішніх представлень інформації від способів 
подання та прийняття інформації від користувача. Традиційно використовувалась 
для декстопних додатків, але потім модель стала популярною з появою веб­
додатків. Сьогодні майже всі популярні мови підтримують цю архітектуру 
(рисунок З.З). 
36 
ЧДТУ.2З2 102.007 ПЗ 
,, - - - - - Controller 
І 
( lnew )-<------------~ Model 
Рисунок З.З - Схема архітектурного шаблону Model-View-Controller (МVС) 
Модель являє собою дані та правила роботи з ними; дані передається з 
одного шару в інший. View відповідає за показ даних, наявних У програмі. 
Контролер несе відповідальність за прийняття запиту вщ користувача, 
модифікацію моделі та надсилання її до View, який відображається користувачеві. 
Ідея, що стоїть за шаблоном МVС - це чіткий розподіл відповідальностей 
між об'єктами домену, що представляє сутюсть реального св1ту та 
презентаційним рівнем, який відображається на екрані. Об'єкти домену повmmі 
бути повністю незалежними і також працювати без рівня View. Це дає 
можливість, зокрема, мати різний інтерфейс для однієї і тієї ж бекенд-частини 
програми. 
МVС є одним з базових стовшв, на яких базується Spring Framework. 
Програми, що пишуться на основ~ Spring Framework, майже завжди 
використовують підхід МVС. 
REpresentational State Transfer (REST) - архітектурний стиль для 
розподілених гіпермедіа-систем і вперше був представлений Роєм Філдінгом у 
2000 році у своїй дисертації. 
Сутністю REST є 6 керівних обмежень - якщо програма їм повністю 
відповідає, то інтерфейс можна назвати RESTful. Дані принципи перераховані 
нижче. 
Клієнт-сервер архітектура вщокремлюючи питання побудови 
користувальницькоrо інтерфейсу від питань зберігання даних, покращується 
nортативність користувальницькоrо інтерфейсу на кількох платформах та 
37 
ЧДТУ.232102.007 ПЗ 
1101<ращуємо масштабованість) спрощуючи серверні компоненти. 
Stateless - кожен запит від клієнта до сервера повинен містити всю 
інформацію, необхідну для розуміння запиту, і не може скористатися будь-яким 
збереженим контекстом на сервері. Тому стан сесії повністю зберігається на 
клієнт~. 
Кешування - обмеження кешу вимагають, щоб дані у відповіді на запит 
неявно або явно позначали як кешовані або не кешовані. Якщо відповідь є 
кешованою, то кешу клієнта надається право повторно використовувати ці дані 
відповіді для наступних, рівнозначних запитів. 
Unifonn interface - за допомогою застосування принципу загальної інженерії 
програмного забезпечення до компонентного інтерфейсу спрощується загальна 
архітектура системи та покращується видимість взаємодій. Щоб отримати єдиний 
інтерфейс, для керування поведінкою компонентів потрібно кілька архітектурних 
обмежень. REST визначається чотирма обмеженнями інтерфейсу: ідентифікація 
ресурсів; маніпулювання ресурсами через представництва; повідомлення з 
. . 
самоописанням; гшермедш як двигун стану програми . 
Багаторівнева система - рівневий стиль системи дозволяє архітектурі 
складатися з ієрархічних шарів, обмежуючи поведінку компонентів таким чином, 
що кожен компонент не може "бачити" за межами прямого шару, з яким вони 
взаємодіють. 
Код на вимогу (необов'язково) REST дозволяє розширити 
функціональність клієнта, завантаживши та виконавши код у вигляді аплетів чи 
сценаріїв. Це спрощує клієнтів, зменшуючи кількість функцій, необхідних для 
попередньої реалізації. 
Програмне забезпечення розроблено у вигляді окремого проекту - бекенду, 
розробленого на основі J ava 18 та Spring Boot 2.2. Що являє собою сучасний 
підхід, що відповідає REST. 
3.1.З Опис логічної схеми системи 
А . атку представлено на рисунку З .4. Модулі нашого додатку 
рхпектура дод 
38 
ЧДТУ.232 1 02.007 ПЗ 
можна поділити на З основні функціональні частини: 
- view, представлення, для взаємодії користувача з нашим додатком; 
control, контролер, служить для обробки подій які приходять від 
взаємодії користувача з представленням; 
- model, модель, призначена за збереження, вибірки, запис даних 
додатку. 
-., 
" / ' 
с І 
s R 
о 
V Е Е 
N 
р ....... 
І R "--- ~ 
АРІ т о 
, 
Е , V Data base 
R s ,, .,  
w . І 
о ~ І 
'--- ~ 
с т 
L 
Е о 
Е R 
R у 
VieVІ' Contl'OlleJ Model 
,) 
\.. '-
FRONT-END BACK-END 
Рисунок 3.4- Структура модулів системи 
З .1.4 Розробка бази даних 
Спроектована база даних складається з 9 таблиць, що логічно пов' язані між 
собою (рисунок 3.5). Таблиці призначенні для збереження даних про сутності 
навчального процесу. Детально опишемо призначення і структуру таблиць. 
Таблиця course (дисципліна) містить в собі інформацію про навчальну дисципліну 
яка викладається за навчальним планом. Структура таблиці бази даних наведена в 
таблиці 3.1 
39 
,, 
ЧДТУ.232102.007 ПЗ 
7 _,,_ 
/) IW.718__.C 
;-,--- ~ -j:<c. ...._ fl 
j щ,,r.,,_,,, ~ -----
// ~ Y~_'d ~~ -~_J-f-= -~ ~-"' ': __,,. . ­Ji, ,:;х:., ~_с 
~ _,,.,, 
-= - .,..,,., 
~~-..,,,.~ 
: -iJ,f,;,--
~ 
-
: szarж 
Рисунок 3.5 - Модель бази даних 
Таблиця З.І 
Структура таблиці Дисципліна (coorse) 
Кточ Опис 
№п!п Назва поля ТШІ поля 
integer РК Ідентифікатор 
І id 
integer Кредити 
~ credits 
- з hours integer Години 
integer Годин на І кредит 
4 hours per credit 
integer Навчальний семестр 
_ 5 semester FК Назва 
6 course narne id integer 
40 
,, 
ЧДТУ.232102.007 ПЗ 
таблиця course name признач . . · 
- ена для збер1rання унікальних 1мен дисциплш. 
ЇЇ основне призначення, прибрати дублікати імен, для зменшення ймовірності 
помилки. Структура наведена в таблиці З .2 
Таблиця 3.2 
Структура таблиці Назва дисципліни (course_name) 
No п/п Назва поля Тип поля 
id Ключ Опис 
І inte er РК Ідент 
2 nаше Varcha1· 255 Назва кою 
3 nаше en inte er Назва англійською 
Таблиця student призначена для зберігання особової інформації про 
студентів, що здобувають освіту. Структура даної сутності БД наведена в таблиці 
з.з. 
Таблиця З.З 
Структура таблиці Студент (Student) 
Г№пІп Назва поля Тип поля Ключ Опис 
r 
І id 
І bigint РК Ідентифікатор 
2 name Varchar(255) Ім'я 
з sumame Varchar(25 5) Прізвище 
4 patronimic Varchar(25 5) По батькові 
5 sex Varchar(255) Стать 
6 email Varchar(255) Електронна адреса 
7 telephone Varchar(25 5) Телефон 
Таблиця stud  ent  _ d egr ee призначена для зберігання академ.і чної інформації 
про здобувачів освп. и, .1.1.  стру.к т ура наведена в таблиці 3.4. 
Таблиця 3.4 
Структура та бл"ці Здобувач (student_degree) 
-№-n!п Тип поля Ключ Опис 
Назва поля 
г-._1 id bigint РК Ідентифікатор 
-1 Категорія 
active boolean 
r-l__ FK Кількість 
specialization id integer 
г----і student id Varchar(255) FK Опис 
5 student group id Varchar(255) FK Навчальна група 
41 
ЧДТУ.232102.007 ПЗ 
Таблиця student_group при 
значена для зберігання даних про академічну 
в яуій навчаються здобува · · ·-· · · 
rpYn у ЧІ освпи, 11 структура наведена в таблиц1 3.5. 
Таблиця 3.5 
Структура таблиці Група (st d t 
Nonln Назва поля u en ~roup)  
Тип поля 
~ id Ключ Опис 
bigint 
~ 2 name РК Ідентифікатор 
Varchar(255) 
J active Назва групи 
Varchar(255) 
4 begin vears Активність 
Varchar(25 5) Початок навчання 
---5 creation years Varchar(255) Рік встvпv 
-- 6 study semester 
- timestamp Початковий семестР 
7 study vears 
- numeric(l 9, 2) Навчальний рік 
8 tution fonn 
- integer Форма навчання 
9 tution tenn 
- timestamp Термін навчання 
10 specialization id FK Спеціалізація 
11 real begin year Реальний курс 
Таблиця courses_for_groups призначена оргаюзувати зв'язок м1ж 
академічною групою та дисциплінами які викладаються в ній згідно навчального 
плану. Її структура наведена в таблиці 3.6. 
Таблиця 3.6 
Структура таблиці Предмети для груп (c ourses_  for_ groups) 
№п/п Назва поля Тип поля Ключ Опис 
1 id bigint РК Ідентифікатор 
2 exam date Varchar(255) Дата іспиту/заліку 
з course id Varchar(255) Дисципліна 
4 student group id Varchar(255) Група 
5 teacher id Varchar(255) Викладач 
б academic difference timestamp Академічна різниця 
т аблиця teach  er ( та блиця 3 · 7) призначена для зберігання особової 
·І Н· ф  ормац1.1..  про викладач1•в , що на дають освітні послуги здобувачам освіти. 
42 
• 
ЧДТУ .232102.007 ПЗ 
Таблиця 3.7 
Структура табл11ці В11клада'"1 (tс  act1er) 
No п/л Назва поля Тип поля Ключ Опис 
~ id bigint РК Ідентифікатор 
l-z naine УаrсІ,аг(25 5) Ім'я 
~ suman,e Varcha,·(25 5) Прізвище 
~ patro11in1ic УагсІ,а,·(25 5) По батькові 
~ sex Varcl1ar(255) Стать 
~ einail Varchar(255) Електронна адреса 
,_-7 active boolean Активний 
~ 
Таблиця журналу оцінок (grade) призначена зберігати інформацію про 
успішність виконання навчального плану здобувачами освіти. Її структура 
наведена в таблиці 3.8. 
Таблиця 3.8 
Структура таблиці Жур11ал оцінок (grade) 
№ п/п Назва поля Тип поля Ключ Опис 
І id bigint РК Ідентифікатор 
2 gтade integer Кількість балів 
з course id integer FK Дисципліна 
4 student degree id integer FK Студент 
5 created at Varchar(255) FK Дата 
Таблиця журналу оц1нок (grade) зберігає в собі інформацію про 
відвідуваність занять здобувачами освіти згідно навчального плану. Її структура 
наведена в таблиці 3.9. 
Таблиця 3.9 
Структура таблиці Журнал пропусків (grade) 
№п/п Назва поля Тип поля Ключ Опис 
1 id Ьі int РК 
2 course id FK 
з student de ree id FK ент 
4 date Дата заняття 
43 
ЧДТУ.232102.007 ПЗ 
3.1.5 Розробка інтерфейсу к 
ористувача 
В якості інтерфейсу для с . 
пщкування з користувачем у нас виступає АРІ 
(AppJication Programming Interface). 
Розроблений АРІ нашого додатку 
озділяються на дві групи. Перша . . 
Р .• . ••. 3 них вщповщає за методи для отримання 
еобхід1-101 шформацн про здобува .. 
~ . ча вищ01 освіти (студента). Друга група містить 
етоди по обробц1 запитів від ви . 
М кладач1в, та надання йому відповідної інформації. 
}-!а рисунок З .6 представлені розробле · 
Н1 методи двох груп. 
teacher-controller 
student-controller л 
Рисунок 3.6 - Розроблене АРІ системи 
З .1 .6 Опис розробки програмних компонентів 
Детально опишемо призначення кожного методу: 
getTeacherOrStudentByEmail(email) Приймає корпоративний email 
користувача системи і повертає чи належить він викладачу чи студенту. 
Методи які стосуються студента: 
getGradesByStudentEmail(e mail, startDate, endDate) Приймає email 1 
діапазон дати і повертає всі оцінки студента. 
getAbsencesByStudentEmail(e mail, startDate, endDate) - Приймає email 1 
44 
Прніімnс с1по іІ СТУ/\СІІТО повертає 
. фоома_цію про нього. 
111 t 
~1lетодн які стосу10ться о11клодnчо: 
(rt!tCoш·se.В_),•Teac/1(~1·Emai/Іeщnil s .. • 
-=- 1
' ) eшestt11  - При й моє einail викладача 
t•~мс:'СТР повертає спнсо:к предметів внюшдnчn. 
.<::-сm.. tG1·011p.81Emai/Se111este1·1J. 11 dJ, і;,.' со • • C'Jvam e т·sе(ешшl•)  seшester, courseld) 
Прнн·~· .ш. є ешаіl внклuдач·а · ) cerv Іестр, 1'd  предмета 1•  повертає список груп. 
getSt11dentsBySh1dentGт·oupld(courseld) _ Приймає id групи і повертає список 
студентів групп. 
getGradesByStudentEmail(е щаіІ) startDate) endDate) - описаний вище. 
getAbse11cesBySt11dentEmail(е шаіl, startDate, endDate) - описаний вище. 
getGrouplnfo(id) - Приймає id групи і повертає інформацію про неї. 
getTeacl1e1-J11foByEmail(eшaiI) - Приймає ешаіl викладача і повертає 
інформацію про нього. 
getStudentlnfoByEmail ( ешаіl) - описаний вище. 
3.2 Тестування системи 
Для тестування АРІ нашої системи, скористаємось Swagge1·. Swagger є 
інструм:ентом для створення) документування та тестування АРІ. Використання 
S\\,agger для тестування АРІ дозволяє автоматизувати процес перевірки 
правильності взаємодії 3 АРІ) перевіряти різні сценарії та валідувати дані, що 
повертаються. 
3.2.1 Модульне тестування 
в иконаємо перев1•р ки р оботи модуля для робити із студентом) викликавши 
м"=t ОД getGradesByStud ,е п tEm az· z(email , startDate) endDate) , який приймає email і 
д1. аnазон дати . повертає вс~·  0 цінки студента. Заповнимо відповідні поля та 1 
45 
ЧДТУ .232 І 02.007 ПЗ 
нат1 1снемо на кнопку «виконати». На рисунок 3.7 відображено результат, що 
nm'одить від сервера у вигляд-і JSON б' · 
J-Iaµ.•• о ЄІ<Ту оцінки з предмету за вказану дату. 
Детально, результати тестуоання відображені в таблиці З. І О. 
-p,1(1:-'1-fttl'1 
........., . 
$1,rtDJ:• . . 
202Ц\Ц)1 
,v~::1, t,.:.t~, ) 
, ncD,t-e . ~ , .. 
2023-01.()1 
,t-i~S.ІJ:~) 
."1.....-, J 
'"' 
1:.tti,:/~t.-.,,.JЛЬdrutlcrtr,,~twlimt(ASJ.JfC8a.U-o.v.Udar-ot'--i,f1ti'LIOlil6tЬd1u.toa.-&,tartn.t-№t41-'1tlirhll:li8tr-J0:2J-ct cn 
І 
( 
•v..:tr·: ~ • 
•, •: ·~~.i~t tОІ ... uc,r-.•. 
"'O"'t4itei&r: •JeUl·C6· 1011J •J 8'\.>1\ 9 19-8) w• 
) . 
Рисунок З . 7 - Тестування методу getGradesByStudentEmail 
Таблиця 3.10 
Результати модульного тестування 
Вхідн.і  Очікуваний Отриманий результат 
Назва методу 
дана результат (JSОN-формат) 
[{"grade": 46, 
Список "courseCourseNameName": 
email, оцінок для "Спеціалізовані ЕОМ та 
getGradesByStudentEmail startDate, 
студента за системи", "с reatedAt" : 
endDate "2022-06-
обрану дату 
20Т13:4З:05.255979+03:00")-] 
.__ 
взаємодію 1З сервером, через виклик методу 
Перевіримо 
46 
ЧДТУ.232102.007 ПЗ 
ue1CoUІ'sesByEmai!AndSemeste1-( ета і І , seinestr), який приймає email студента та 
;еr,1естр і повертає список предметів (таблиця 3.11 ). Заповнимо відповідні поля та 
J{Зr нс»емо на кнопку «виконати». На рисунок З .В відображено результат, що 
на,.r. rходить від сервера у вигляді JSON масиву об'єктів предметів за вказаний 
семестр. 
~- І ,-рі/,- ---------------------;-
t,dent/g etCo-,,.,ByEm, ilAodSemo, to, п,.,,,., ,m,Л ,.,,.,., І""''"" -""""" "''"'"'"'"'"' л/ І 
;-::p;J-r-.-im--et-ers {.  c:incet ./  
Description 
- ----- -----
І en1ail • "''"ir~d ------- - -
string о. v.zado rozh nyi.f [email protected]. ua 
(q,'<!Г}') 
semester А ІёСu, 1•d 
з 
jpЩtr(Siлt 32) 
(~ii~lj') 
Cl@3r 
Responses 
Curl 
wr'lh t-tІp :'G/ЕДТo'c a\l host:8080/api/student/get<oursesDу [1 1а1. JAnd.Smestu?e11ail;o.v.zadoгozhnyi.fitis2~0chdtu.e<1u.u~9mu-3' ' r~~ 
-Н 'асс t: •1•• 
Request URL 
/Jttil:/nocaltюst:8888/api/student/get<oursesByf1 1ё1ilAndSellerter?a1ail•o.v.zadorolhnyi.fitis20S48chdtu.~u.uшe11erter<>3 
Server respo11se 
Code Details 
----.. 
200 
р исунок з . 8 - тестування методу 
getCouгsesByE111ailAndSe111ester 
47 
ЧДТУ.232102.007 ПЗ 
Таблиця З .11 
Рсзультнти моду;н,1ю1·0 тсстушншя 
Вхід11і 
назва методу О,1 ікущнщй 
--- Отриманий результат 
ДtНІЇ ~СЗУJJІ,Тат (JSОN-формат) 
["Теоретичні основи 
електротехніки частина 1, 2"' 
"Безпека життєдіяльності та 
geJCoш·sesByEm email, Списо1< цивільний захист", 
oi/AndSemester semestr предметів "Техніка високих напруг", 
студента "Іноземна мова (за професійним 
спрямуванням)", 
"Основи метрології та електричних 
с-- вимірювань" 
3.2.2 Інтеграційне тестування 
Перевіримо взаємодію з іншим модулем системи надіславши GET НТГР 
запит, для виклику методу з модуля для робити із викладачем. Викличемо метод 
getCourseByTeacherEmail(emaiI, semestr), що приймає email виющдача і семестр та 
повертає список предметів викладача. Після заповнення необхідних полів та 
надсилання запиту на сервер, ми отримаємо результат зображений на рисунок 3.9. 
Оо--8с,1,н1 u,, 
оmен ... .,.. ......, .,.1 
•t r t"• , nro Іzordo~gmelІ .com 
(qІJ,,.v) 
••meeter .. .. ,..,, ., , #',, 
llc#tit:Wtte&itЩ/ 4І  і# ·41fМft~ OJ• ~r 
200 
І 
4 
( "<n..,.-c -,-,.........->d" '• ~ _:!~:;....,4 "'"'"'""4• r \Q \ f'o:;;._,lo '1 
} •c..uU;r":!I.CC::uuг,e~- ~ і:.. __. ,) ~ --, ~,..,,,_ :'~ 
J 
Рисунок З .9 - Тестування методу getCourseByTeacherEmail 
48 
ЧДТУ.232102.007 ПЗ 
Таблиця 3.12 
Результати інтсграцііі11оrо тсстуоа1111я 
Вхідні 
f{азва методу Очікуваrшй Отр11ма1111й результат 
дані 
льтат JSON-< о мат 
Список [{ 
СоигsеВуТеас email, предметів "cow·seCourseNameld": "4375", 
gel . 
t,е,-ЕП1аІІ semestr викладача за "courseCourseNameName": 
вказаний "Музейна практика" 
семест 
3.2.3 Системне тестування 
Надіславши GET НТТР запит, для виклику методу 3 модуля для робити із 
викладачем, викличемо метод getGroupByTeacherEmail(emaiI), що приймає email 
викладача повертає список академічних груп в яких в~н викладає. Результат 
виконання запиту зображений на рисунок 3.10. 
І, ·г-~] /ap!./teochЩs~tGraup8~-Tшherwil "'-:""'' •":"'.""•~:• І_~. .~ ~~,.~-~.,.•~~-_ 
Panmettrs 
І 
emoll · ·,-:-,., 
Jt" i nc ssshazador@gma,І con1 
((V('ty) 
с1,., 
Responset 
Codt O.t.>Us 
200 
Рисунок З. І 0 _ Тестування методу getGroupByTeacherEmail 
49 
ЧДТУ.232102.007 ПЗ 
заповнивши необхідні поля 
. та натиснувши кнопку «виконати» запит буде 
діслано на сервер, шсля виконання 
t1a ~ якого, ми отримаємо JSON масив об' єктів 
УІТ в яких дании викладач веде па 
rp ' РИ У вказаному семестрі (таблиця З.ІЗ). 
Таблиця З.ІЗ 
Результати системного тестування 
gазва методу Вхідні дані Очікуваний Отриманий результат 
результат 
t.--- (JSON-dюpмaт) 
[ 
{" studentGroupld": 11 1749", 
"studentGroupName1 "ПФ-20911
': }, 
oetOroupByT each Email Список груп {11studentGroupI~": 11 150911 
:rвmail викладача ВИЮІадача 11studentGroupName11 11
: ПФ-199"}, 
{"studentGroupid": 111120", 
11studentGroupName11
: "ПФ-189"} 
1 
3.2.4 Приймальне тестування 
Виконаємо перевірку методу getStudentsByStudentGroupld(courseld) який 
приймає id навчальної групи та повертає список студентів цієї групи. Для цього 
. . 
наднплемо GET НТТР запит на сервер заповнивши ВІДПОВІДНО поле 
ідентифікатора групи та натиснемо кнопку «виконатю>. Резуµьтат виконання 
даного запиту зображений на рисунок З .11. 
Таблиця З.14 
Результати приймального тестування 
Вхідн Очікуваний Отриманий результат 
Назва методу .і  
- резvльтат (J SON-dюpмaт) 
дан1 
[ 
{ 
"name": "Лариса", 
"patronimic": "Альберт .. ", 
список 
getStudentsByStu "surname11
: "АЬуеіда", 
студеНТІВ 
dentGroupld courseld "email": "sЗ0886@g" 
вказаної групи 
}, 
... 
1 
50 
r '-U1
"T ·\ · ·-"'-"' - \О~ .007 1П  
л 
ci:inc11 j 
~'і!" ~ 
----------
Рисунок 3.11 - Тестування методу getStudentsByStudentGroupld 
51 
.. 
ЧДтУ,232102.007 ПЗ 
висновки 
В роботі була виконана 
розробка програмної системи для запитів 
зареєстрованих користувачів. Завдання ... 
. . . ЦІє~ системи полягає в спрощенні процесу 
моюторингу усп1шност1 навчальног 
0 процесу як зі сторони викладачів так і зі 
сторони здобувачів вищої освіти. 
У результаті розробки б ло . 
.., . У усшшно створено веб-додаток, який забезпечує 
ефективнии монпоринг навчальн . 
ого процесу уюверситету. Веб-додаток надає 
розробникам зручний інтерфе -- . 
ис та наб1р функцій дЛЯ відстеження та аналізу 
академічної діяльності. 
Розроблений веб-додаток забезпечує · б 
централ1зовану систему з ору та 
аналізу даних про різні аспекти навчального процесу, включаючи відвідування 
занять, успішність студентів та інші показники. Це дозволяє забезпечити більш 
ефективний контроль та керування навчальним процесом. 
Веб-додаток використовує сучасні технології та фреймворки, такі як Java 
Spring Boot, Swager, PostgreSQL, для реалізації функціональностj та забезпечення 
швидкої та надійної роботи. Крім того, використання бази даних дозволяє 
зберігати та керувати великим обсягом інформації про навчальний процес. 
Розроблений веб-додаток проходив тестування, яке включало модульні, 
інтеграційні та системні тести. Це дозволило перевірити функціональність, 
надійність та відповідність вимогам системи. Результати тестування підтвердили 
ко б б атку та його відповідність поставленим вимогам. ректну ро оту ве -дод 
в · н·гу навчального процесу уюверситету демонструє 
еб-додаток моютори 
. . ф ктивності та якості навчального процесу. Він 
nотенщал для пол1пmення е е 
... ІІ1Ирокі можливості аналізу даІ-{их та підтримку 
забезnеqує зручність взаємодн, 
· влених сторін. Застосування такого типу 
nриЙНяrrя рішень для різних зац1ка . 
. . енню академ~чних результатів студентів та 
систем може сприяти пщвищ 
ф ьНИМ закладом. 
е е1пивному управлінню яавчал 
52 
ЧДТУ.232102.007 ПЗ 
СПИСОК ВvП<ОРИСТА НИХ ДЖЕРЕЛ 
І АІІ)~11 ІНlН'ІНЛІ,ш~х зnш~ть тn їх орієнтовна структура [Електронний 
111,,,урс І • - Рt'Ж\Ш доступу: І,ttp://ccts.\10 .ua/p1·epod/vidi%20zanjat.pdf 
'2 Уніфі1'овrнш t\IOBn моделювання [Електронний ресурс] . - Режим доступу: 
t,ІІр:-:// ttk. " 'ik і pcd in.ot·g/,vi ki/Un і tied _Model ing_ Language 
J J loнr) t. Jн,,n в хмарі. Spt·ing Boot, Spring Cloud, Cloud Foundry / Лонr д., 
\;н~ТtІ ІІі l{ ... 20 \ С). - 624 С. 
4 О~рснdснсу injectioп шаблон проектування. Матеріал з вікіпедії 
\EJ1~11.,·pommi\ ресурс] Режим достуnу: 
1,11р://сн. \\1ik і pcd in. 01·g/,viki/Dependency _inj ection 
5 Гутьєррес Феліпе. Spt'iпg Boot 2: найкращі практики для професіоналів./ 
Ф. Г'ут1,єррсс, 2020. - 464 с. - (Бібліотека програміста). 
6 Докукn О. Пр~,,ика реактивного програмування у Spring 5 І О. Докука, 
\. Лозінськні\., 2019. - 508 с. 
7 Уоллс К. Spгing в дії/ Крейг Уоллс., 2022. - 544 с. - (6-е вид.). 
8 Модель-вид-контролер [Електронний ресурс]. - Режим доступу: 
І11tрs://нk.\\1іkіреdіа.огg/,~іkі/Модель-вид-контролер 
9 Вадим Станкевич. Знайомимся з Spring Framework [Електронний 
ресурс]. - Режим доступу: l1ttp://W11/W.kv.by/index2009291108.htm 
10 Вікіпедія . Архітектура клієнт-сервер. [Електронний ресурс] . - Режим 
дocryny: l1ttps://нk. \1/ik.i реdіа.оrg/,1/іkі/Клієнт-серверна_ архітектура 
J 1 Вікіпедія. Діаграма розгортання. [Електронний ресурс]. - Режим 
дocryny: J1ttps://t1k." ''ikipedia.oi·g/wiki/Дiarpaмa _розгортання 
12 Мартін, Р . Чистий код: створення, аналіз, рефакторинг [Текст]/ Р. 
Мnртін - СПб.:Пітер, 2019 - 464 с. 
13 Система питань і відповідей про програмування (Електронний ресурс]._ 
Режнм доступу: l1ttp://stacko,1erflo,~.con1/ 
53 
-
r 
ЧДТУ .232 1 02.007 ПЗ 
\4 Керівництво по Нibernate [Електронний ресурс). - Режим доступу: 
:JJ\'ІWW .tutorialspoint.com/hibemate/ 
~ -
15 Публікація по Spring 3 МVС + Spring Security + Hibemate [Електроннии 
сурс). - Режим доступу: http://habrahabr.ru/post/l 11102/ 
~ 
16 Вікіпед1.я . Формат даних JSON [Електронний ресурс) . - Режим достуn y· 
· 
http://uk.wikipedia.org/wiki/JSON 
54 -
l 
ДОДАТОК А 
ЗАТВЕР/\)КШ 10: 
Зао. 1<афсдри ПЗЛС, 
с.в. 
/ 
ПРОГРАМНА РЕАЛІЗАЦІЯ ЗАГD1ТІВ ЗАРЕЄСТРОВАНИХ КОРИСТУВАЧІВ 
Специфікація 
482. ЧДТУ .232 102-0 І 
Листіо 2 
Розроб1-1ик: Сіоаков В.О. 
Керівник: Салапатов В.І. 
Півень О.Б. 
Норма контроль: 
Черкаси 2023 
r 
482.ЧДТУ.232 І 02-0 І 
2 
Позна•1с1111я 
Найме11ува1111я 
2 чдтУ.2з2 102-01 12-01 Примітка 
%-дтУ.232 102-01 Текст програми 
482, 34-0 l 
Інструкція користувачеві 
~482Д, ТУ .23 2102-0 l 90-.О l 
Графічні матеріали 
,----------+-----------t -1 
i----------~ -------1 --~I 
,~--- -------------++---------------тt-----,,  
i----------+--------1 --, 
.i-------------+-----,-- , 
,----
г 
г--
,----==========t========I===1 
• 
ДОДАТОК Б 
ПРОГ Р М1НА РЕАШЗАЩЯ ЗАГШТІВ ЗАРЕЄСТРОВАНИХ КОРИСТУВАЧІВ 
Текст програми 
482.ЧДТУ.232102-01 12-01 
Листів 7 
Розробник (/j Сіваков В.О. 
Черкаси 2023 
482. ЧЛТУ.232 1 02~0 1 12-0 1 2 
ЗМІСТ 
І J3ЛCІ J( l "N f) LJЛ orf 'fAf ,-л 
,' ' І ....................... ................................ .. з 
................................. ..... . 
І . І 1(; 1 ,fн;. ' /'с <,-1'с І1 с1. С  011L1 .0  11 c,1. .,1' ,f 1va ........................................................ . З 
........................ .. 
1.2 Кт1с S' tucІ  c11t С 011t1·0 І І c ,·.J· ava .................................................................................. . 5 
58 
482 .ЧДТУ.232 102-0 І 12-0 І з 
І BACKEND ЧАСТИНА 
1. 1 Клас Teacl1erController.java 
@RestContt·oller 
@RequestMapping("/api/teacher") 
@RequiredAt·gsConst1·uctor 
public class TeacherController { 
p~vate fmal TeacherRepository teacherRepository; 
pr~vate final StudentDegreeRepository studentDegreeRepository; 
pnvate final StudentGroupRepository studentGroupRepository; 
@Operation(summary = "Приймає email викладача і повертає інформацію про 
ньоrо. 11) 
@GetMapping("/getTeacherlnfoByEmail") 
public ResponseEntity getTeacherlnfoByEmail(@RequestParam(''email") String 
email) { 
Teacher teacher = teacherRepository.findВyEmail(e mail).getQ; 
ModelMapper modelMapper = new ModelМapperQ; 
retum ResponseEntity .ok(modelМapper.map(teacher, Тe acherDto.class) ); 
} /lhttp://localhost:8080/api/teacher/getTeacherlnfoByEmail?email=tl@g 
@Operation(summary = "Приймає email викладача і повертає список його rpyn.11
) 
@GetMapping("/  getGroupByTe acherEmail ") 
public ResponseEntity getGroupByTeacherEmail(@RequestParam("email") String 
email) { 
List<StudentGroup> groups = 
studentGroupRepository.findGroupByTeacherEmail(email); 
ModelMapper modelMapper = new ModelMapperQ; 
List<StudentGroupSmallDto> groupsDto = groups.stream() 
.map(group -> modelMapper.map(group, StudentGroupSmallDto.class)) 
.collect(Collectors.toList()); 
retum ResponseEntity .ok(groupsDto ); . . 
} //http://localhost:8080/api/teacherlgetGroupByTeacl1erEmйll?emйll=t914@g 
@Operation(summary = "Приймає id групи і повертає список студентів групи.") 
@GetMapping("/  getStuden tsByS tudentGroupid" ) 
public ResponseEntity getStudentsByStudentGroupid(@RequestPal'am("id") lnteger 
id) { 
List<Student> students = . 
studentDegreeRepository .findStudentВyS tudentGroupld( id); 
ModelMapper modeІMapper = new ModelMapperO; 
List<StudentDto> studentDto = students.stream() 
59 
-
,.. 
4 82. ЧДТУ .23 2102-01 12-0 І 4 
.map(stlldent -> modelMapper·.map(student, StudentDto.class)) 
.col lect(С о) І ectors. toList()) ; 
return ResponseEntity .ok(studentDto) ; 
} l/htlp:lllocalhost:8080/apilteacher/getStudentsByStudentGroupfd ? id= 1067 
@Operatio~(sш~н11a1y = "Приймає id групи і повертає інформацію про неї.") 
@GetMappшg( /getGrouplnfo") 
public ResponseEntity getGrouplnfo(@RequestParam("id") Integer id) { 
StudentGroup group = studentGroupRepository.findA!JByld(id); 
ModelMapper mode]Mapper = new Mode]Mapper(); 
retum ResponseEnti ty. ok(m odelMappecmap(group, StudentGroupDto.class)) ; 
} llhttp:/llocalhost:8080/apil teacherlgetGrouplnfo?id=2 і 7 і 
@Operation(summary = 11Приймає email і повертає чи належить він викладачу чи 
студенту.") 
@GetMapping(" Іg etTe acherOrS tudentByEmai І") 
public String getTeacherOrStudentByEmail(@RequestParam("email") String email) 
{ 
String table = teacherRepository.findTeacherOrStudentByEmail(email); 
retum table; 
} //http://localhost:8080/apilteacherlgetTeacherOrStudentByEmail?email=t914@g 
@Operation(summary = "Приймає email викладача і семестр -- повертає список 
предметів викладача.") 
@GetMapping(" / getCou rseByTe acherEmail ") 
public ResponseEntity getCourseByTeacherEmail(@RequestParam("email" ) String 
email, 
@RequestParam("semester") Integer semester) { 
List<CoursesFo rGroup> groups = 
studentGroupRepository .findCourseByTeacherEmail(e mail, semester~; 
ModelMapper modelMapper = new ModelMapper(); 
List<CoursesForGroupDto> groupsDto = groups.stream() 
.map(group -> modelMapper.map(group, CoursesFo rGroupDto.class)) 
.distinct() 
.col lect( Collectors. toList() ); 
retum ResponseEntity .ok(groupsDto) ; 
l/h~p:/llocalhost: 8080/api/teacher/getCourseByTeacherEmail?е та і/ =t9l  4@g&semest e 
r==З 
@о . (s um.mary -- "Приймає email викладача, семестр, id предмета і 
peratюn 
пов е.р тає список rpyn. ") 'lS t AndldNameCourse") 
@GetMapping(" / getGroupBУ E mai emes er 
60 
482. ЧДТУ .23 2102-0 І 12-01 5 
pt1l>lic ltcspo11scE11tity 
gclG  1·ощ) Ву l2iпn і I s~mcstci·Л псІ І dNa111cCoшsc(@RcquestParam(11 email ") String email, 
@RequcstPai·am("semester") Integer semester, 
. С . r. @f{cquestPш·am("id") Jntege,· id) { 
IJ1st<  ош ses,·•0 1·G1·ot1p> g1·otips = 
sІ11cle11tG 1·?tІpKcposi toi-y •f i пс\G1·щ1рВуЕ1паі ISemesteгAлdJ dNameCourse( email, 
sc111cstc1·, 1d); 
~ode\Moppcl' modelMappe1· = псw Mode1Mappe1·(); 
L1st<Stt1deпtGІ'OupS1пallDto> g1·ot1psDto = g1·oups.stгeam() 
. тар(gІ'ОLІр -> 111odelMappe1·.map(g1·ot1p, StudentGroupSmallDto.class)) 
.со І lect( Со\ І ecto1·s. toList()) ; 
1·ett11·п RespoпseEпtity .ok(gюнpsDto ); 
} 
///1t1p://loca ІІ юs t: 8080/a p1їteacher/getG,-·oupByEmai!SemesterA nd!dNameCourse? email 
=t914@g&semester=З&id=2075 
1.2 Клас StudentControl\er.java 
@RestCont1·0I Ieг 
@RequestМapping("/api/stude11t11) 
@Requi1·edArgsCoпstгuctoг 
public class StudentContгolle1· { 
private final GradeRepository gradeRepository; 
pгivate final AbsenceRepository absenceRepository; 
private final StudentDegreeRepository studentDegreeRepository; 
private final CoursesForGroupRepository coursesForGroupRepository; 
@0peration(suшшary = 11Приймас email і діапазон дати і повертає всі оцінки 
студента.") 
11
@GetMapping(" / getGt·adesByStt1dentEmail ) • 
public ResponseEntity getGradesByStt1dentEma1l(@RequestParam("email11
) String 
email, 
@Req uestPa1·ai11('' sta11Date 11
) @DatcT imeF ormat(iso = 
DateTiшeFoi·mat.ISO.DA ТЕ) Loca!Date sta1·tDate, 
@RequestPaгam(''endDate") @DateTimeFoгmat(iso = 
DateTimeF ormat.ISO. DAТ Е) LocalDate endDate) { 
List<Grade> grades = . 
gradeRepositoгy .findByStudentEmailAndCreatedAtBetween(e ma1l, 
sta1·tDate. atS tartOfDaу (). atOffset(ZoneOffset. UTC), 
endDate.atStartOfDay() .atOffset(ZoneO ffset. UTC) ); . 
ModelMappeI" modeIMapper = new ModelMapper(), 
61 
,... 
482 .ЧДТУ.232 102-0 1 12-0 1 б 
f..,ist<GradeDto> gradeOto = grades.stream() 
.map(gi·adc -> modelMapper.map(grade, GradeOto.class)) 
.col lect(Col lectors.toList()); 
return ResponseEntity.ok(gradeOto); 
} 
//hІІp:/llocalhost:8080/apilstudentlgetG,·adesByStudentEmail?email=sЗOOOJ@g&start 
Date=2022-0l-0J &endDate=2023-0J-OJ 
@Operation(summary = "Приймає email і діапазон дати і повертає всі пропуски 
студента. 11 ) . 
@G:tMapping("/ge~AbsencesByStudentEmail") 
р~ЬІ1с ResponseEnt1ty getAbsencesByStudentEmail(@RequestParam("email") String 
еmа1І , 
@RequestParam("startOate") @OateTimeFormat(iso = 
DateTimeFormat.lSO.DAТ Е) LocalDate startOate, 
@RequestParam("endDate") @DateTimeFormat(iso = 
DateTimeFormat.lSO.DAТ Е) LocalDate endDate) { 
Li st<Absence> absences = 
absenceReposit ory.f indB yS tudentEmai lAndDataBetween(e mail, 
startDate.atStartOfDay().atOffset(ZoneOffset.UTC), 
endDate.atS tartOfDay().atOffset(ZoneOffset.U TC)) ; 
ModelMapper modelMapper = new ModelMapper(); 
List<AbsenceDto> absenceDto = absences.stream() 
.map(absence -> modelMapper.map(absence, AbsenceDto.class)) 
.collect(Collectors.toList()); 
return ResponseEn ti ty .ok( absenceDto) ; 
} 
/lhttp://localhost:8080/apilstudentlgetAbsencesByStudentEmail?email=sЗOOOl@g&star 
tDate=2 022-01-01 &endDate=2 023-01-01 
@Operation(summary = "Приймає email студента і повертає інформацію про 
нього.") 
@GetMapping("/getStudentlnfoByEmail") . • • 
11 11 
public ResponseEntity getStudentlnfoByEma1l(@RequestParam( email ) Strmg 
email) { 
StudentDegree student = studentDegreeRepositoгy .findAllByStudentEmail(e mail); 
ModelMapper modeIMapper = new ModelMapper(); · 
return ResponseEnti ty .ok(modelMapper.map(s tudent, Stu~entlnf?Dto.class)) ; 
} l/http://localhost:8080/ap1їstudent/getStudentlnfoByEma1l?ema1l=sЗ0006@g 
@о . ( гу - "Приймає e111ail студента і семестре -- повертає список 
peratюn sшnma -
предметів.") . ") 
@GetMapping("/getCoursesByEma1ІAndSemester 
62 
7 
puL1lic R~spoпseEпtity getCou1-sesByEiпni1AndSc1пestc1·(@Reqt1cstPn111111("e1110i l 11 ) 
Striнg etнai І, 
... = @Reчl1esU>nt·n111(''se111cstc1·") І ntcgc1· sc111cste1·) { 
List<Stтiпg> cou1·ses 
cot11-sesf oгGroupReposito111 .fi11dByStнdeпtE111n і \AпdCoнгscScmcstc1·( с111 11і І ) sc111estc1·); 
МоdеІ1'Ларре1· шode\i\1lappe1· = пе\\, N1ode1Mappc1·(); 
retнm RespoпseEпtity.ok(courses); 
} /11ttp:!ЛocalІ юs t: 8080/api/studentlgetB ySt11de11t Ета і/Л 11c/Coш·seSemesleІ'? ета і/ =s З О 
006@g&semeste1·=S 
\ 
J 
63 
-
ДОДАТОК В 
ПРОГРАМНА РЕАЛІЗАЦІЯ ЗАПИТІВ ЗАРЕЄСТРОВАНИХ КОРИСТУВАЧІВ 
Інструкція користувачеві 
482.ЧДТУ.232102-01 34-01 
Листів 7 
Розробник Сіваков В.О. 
Черкаси 2023 
-
,,, 
2 
482. ЧДТУ .232102-01 34-01 
ЗМІСТ 
1 використання методу get·Grade.vByStudentEmail ............................................. 3 
2 використання методу getCoursesByEmai/AndSemester. .................................. 3 
з Використання методу getCourseByTeach-erEmail ............................................ 4 
4 Використання методу getGroupByTeacherEmail ............................................. 5 
5 Використання методу getStudentsByStudentGroupfd ....................................... 6 
65 
482. ЧДТУ.232 І 02-0 І 34-0 І З 
І Ви 1<орнста111н1 метоl\у getG1·a(/esByS1ude11tEmai/ 
Метод getG,·adesByStucle111Email(e1пai l , stai·tDate; cпclDatc) приймає е111аіІ і 
діапазон дати I повертає осі 01tі11ки студе11та. Запош1имо оідrюоідн і поля та 
натнснемо на кноn1<у «оикош.1ти». 1-Іа рис. В. І відображс,ю резулr,тат, що 
надходить ощ сервера У вигляді JSON об'є1пу оці1-110,1 з предмету за вказану дату. 
л 
-P.itJtnt-1tt-\ 
tm•IІ ' .... 
♦ttltt 
("-fl) ,І 
otJrtDate · ' " 
2021.01.01 
,. .., ,,, 
endD•te · ·• •· 
2опо,.о, 
. U'!•-tH.JJlt>) 
r• . ..-.,·J 
cwl •І •g-r• \ 
•t1tt,:/IUC11мtt1ІO•/.цii/stuotnt/cn{.r&dcttylt8dmt(aal.1Jdi8.U-o.v,~Jla7i.l1tt~Wtv.l'dll,ue&.start0.ltc--№t t-t 8Lln!Жltt--IOU·tl·Ot' \ 
• 11 ·•1c«,t: •t•• (а 
•tt,1//~t1-,Jap1/1t8llalt/~tudc8ttм1Jtc.U~.'f.UldoroIIWJ'f,,liUiКМ,lc...,,_••C\'18,•u&lt8"1:D,at~JCl-et 1Uitld2tt~J Ol·et 
Cc:at 
І 
І 
·v.s.r-' "' . 
•,:QIFV(ouмdм81'4.-•: •,мv .... ,. ..... rca ,. ••ctf'8·. 
•a-e,ta:.At•, •101!-06 18JUi•J:O'\.l'SИ70•4) W• 
І. 
Рисунок В. І - Використання методу getGradesByStude11tEmail 
2 Використання методу getCoursesByEmai/AndSemeste,· 
Метод getCoursesByEmailAndSemeste!'(email, semestI), приймає email 
студента та семестр і повертає слисок предметів. Заповнимо відповідні поля та 
натиснемо на кнопку «виконати». На рис. 3.8 відображен<? результат, що 
надходить вщ сервера у вигляді JSON масиву об' єктів предметів за вказаний 
семестр. 
66 
4 
[_ c:1nct1 
PDSCІJ111\01' 
en1:tll • " '' "'·' 
itrini o.v.zodorozlюyi fi11s20@cMІu.otlшю 
(UJ•'"'·' 
se1нester • ,. ., ,. ·· ' 
intcc<r(~\11t з 
3~) 
(qu(r,•I 
c1,:ir 
Responses 
\ curl 
Server respo11se 
Code Oolalls 
200 Rosponso body 
•r;e..,nnrш amтeJ1lnnьt1oпi то 111шJль~а,~ зм11сr•, 
·теорrТІNІІі ОСІІІІОd СJІСІ[Т{ІОТеJІІІІІІІ Ч~(11ІІШ t, 2·, 
•1,-ао.1WІ мооо (,о 11poc)cc:lil1u1111 t111)ІМ)'1WІ8ІІІІО)", 
•т со,іао oiкouuc 11onpyr••  
•оа,оо.и aerpOJІoгil то епrктрмч,оuс 1111.ii-o,u,• ~ Downlo:ad 
Рисунок В.2 - Використання методу gctCoш·sesByEшnilAнdScшcstei· 
З Використання методу ge1Com·seByTeac/l(л·Email 
Метод getCourseByTeac/1e,-Email(eшai\) scшestt)) приймає спщН ошщn,дnча 1 
семестр та повертає список предметів DИІ<Лодоча. Після запооненшt необхідних 
полів та надсилання запиту на сервер) ми отримаємо результат зоброжений иn рис. 
В.з. 
67 
-
482 .ЧДТУ.232102-01 34-01 5 
------
C.:incel 
Cle:ir 
~ ~.:і?: 
! 
{ ~::·=-. 
-=~q;~• 
і} ~ r: -
РwсуЕок В3 - Використання методу getCourseByTeacherEmail 
4 Використання методу getGroupByTeacherEmai/ 
~ , і~вFFІН! GЕТ І-ГПР запит, для ВИКЛ:ИЬ..J' методу з модуля для робити 1з 
~~.::v. 8 ~1 ... ш;ч:е.,.ю метод getGroupByTeacherEmail(email, semestr), що 
~~ е,~,;.,,~ вш,а.адача і сез..'1естр та повертає список предметів вию1адача. 
Jaш:os~nm :н.еобхіпні поля. та натиснувпn1 КНОІТhJ' «виконати» запит буде 
~;::,•~о н:а сер~°Р=- після виконання якого, ми отримаємо JSON масив об'єктів 
~ •1] 8 rnn ;mmm: вm;;:пала~ веде пари у вказаному семестрі. Результат виконання 
%~ ~ -~нар- ис . В.4. .  
" 
68 
,,1 І 
'---~-:Іf_\.:_•_,І І 
CltM 
' Cotlt 
Рису11O1< В.4 - Використошш методу getCoнl'seByTeacl,ei-Eшail 
5 1Зи1<ориств111н1 методу getStudentsByStudentG,·oupld 
Метод getStuclentsByStuclentG1·ouplcl(coш·seld) приймає id навчальної групи 
її\ ноuсртnє снисо1< студентіо цієї груни. Дня цього надішлемо GET НТТР запит на 
ссроер 3011O01-н,шwи nідповід110 11оле ідентифікатора групи та натиснемо кнопку 
«0t11(онатн». Резуш,тат nн1сонtш~н1 даного зrшиту зображений на рис. В.5. 
69 
ї 
id • . 
1067 
iD~ei;e,- i Sirt !1) 
m є ,+; 
Responses 
СШ1 
СІІІ"l -Jt •tzr• \ 
•11tq1:/Дocal.llost:6822/~/g..К.--..C:._._.,._T~~ • 
-¾І-~= •р• -~~-............,.Ur= \ ~ 
R~O?Sl URL 
ьrtp: І/ ]Dalmst 11888/api/t:.eadier/a:rtStDde!JtsltJS~Id?icl-1SБ7 
sтгr resporisг 
Code 
200 ResPonse tюс:Іу 
Рисунок В.5 - Використання методу getStudentsByStudentGroupld 
70 
додлтокr 
пРОГР АМJ-ІА РЕАmзлщя ЗАІШТІВ ЗАРЕЄСТРОВАНИХ КОРИСТУВАЧІВ 
Графічні матеріали 
482.ЧДТУ.232102-01 90-01 
листів 10 
Розробник IJI Сіваков В.О. 
Черкаси 2023 
4Н2. ЧІ (ТУ .2З 210 2-0 І 90-0 І 2 
Програмна реалізація запитів 
зареєстрованих користувачів 
СТУДЕНТА ГРУПИ ПЗС-2044 
СІВАІ{ОВА В.О. 
КЕРІВНИК: 
К.Т.Н,ДОЦЕНТ 
САЛАПАТОВ В.І . 
Рисунок Г.1 - Слайд презентації №1 
'ПРОГРАМН'А РЕАЛІЗАЦІЯ ЗАПИТІВ 
ЗАРЕЄСТРОіВАНИХ КОРИСТУВАЧІВ 
Метою дослідження є розробRа інформаційної 
систе:vrи, що реалізує запити зареєстрованих 
:користува"rів. 
06'е ~,:т розробки: процеси моніторинrу нав·чальноrо 
процесу. 
Предмет дослідження: моделі, технології, стру1,."Т,Ури, 
засоби та методи розро~о ки ве 6 -додатю.в . 
Рисунок Г.2 - Слайд презентації №2 
72 
482.ЧДТУ.232102-01 90-01 з 
ЗАДАЧІ ПРОЕКТУВАННЯ: 
· Предметна об.rrасть моделювання 
· ФормуваНRя та аналіз вимог до ПЗ 
· П роеь."І'УВаНRя .тrогічної структури 
· Архітеь.'ТУРне nроек'Тj'вання 
• 1іоде.rrювавня nоведін:ки системи 
• Реа.пізувати програмні модулі. 
• Провести тестування :мобільного додатку. 
Рисунок Г.З - Слайд презентації №3 
Рисунок Г.4 _ Слайд презентації №4 
73 
482 .ЧДтУ.232102-ОІ l 
90-01 
4 
ДІАГРАМА nосл1довност1 
Ом(l,і:,,: ~,- E-~-·""-""-:J l'- ·--.~...-... -І 
Qt-Іlt~:i..,o, 5Іu<1t1110,(me1ч...,.,,-, 
Іtat11t1,,tudt11t 
:•··········-···-····-···-···-······-·-········· 
: ,,,,со.,,,. . 
. ◄•··········· · ···························· · ·· · · 
1 1 . 
!. ...~ ~·~:;:~::.:.:::::~.. і········ ......................... ~ 
:.  ,.~О.nи,а,,_...,, __,  .;  11.  
1• ············~i1t:!.>i".'~~!r!)!~.~ ~~1., ...........! " ................................. І 
Рисунок Г.5 - Слайд презентації №5 
ДІАГРАМА КЛАСІВ 
··· · ·· ·· · .... .... . 
... ·. ......- : ...... .. ; ...., . .... . 
1с, ·~ Cou1s•f sfo,G1oup <с • AЬsence І 
І~---=---,1 ~--І---,1 1 ------.,. 
1~._ ,. r,1,, SІudont 1r 1' -1~ "' Studcn\G1oup 
1cachc.--i•І І _І 
Рисунок г ·6  _ Слайд презентації №6 
74 
ДІАГРАМА КОМПОНЕНТІВ 
~ І 
81 
ЛІJІЮІЮІ 
ДІАГРАМА 
СКІНЧЕНОГО 
АВТОМАТУ 
5 
482.ЧДТУ.232 1 02-0 1 90-01 6 
ДІАГРАМА РОЗГОРТАННЯ 
СИСТЕМИ 
----
r ___ _ 
,~·-=-Qj 
Рисунок Г.9 - Слайд презентації No9 
СТРУКТУРА РОЗРОБЛЕНОЇ СИСТЕМИ 
Ае! 
о Clients 
Server 
КЛіиtТН 
Рисунок Г.10 - Слайд презентації №10 
76 
482.ЧДТУ.232102-01 90-01 7 
ТЕХНОЛОГІЇ 
{ REST АРІ } 
• Java 8 
• Hibernate ~ ♦• 
• PostgreSQL Apache H I BERNдTE 
Tomcat 
• Spring Boot 2.2 ) 
• Maven ~( 
• JSON ~) 
• Swager 
Рисунок Г. 1 1 - Слайд презентації №1 1 
г-------- ·:_ -·--- .. ---
>< .. - ,, __ --l 
s: ·- ··- ·-. І -- ~-.• ~- , ---
ж ... -,.._. 
<( І І ,·---·- 
!- І 
-· ·,-- -І .-
!'-• :;.-....4-~ l. 1--· 
.. .. ,, -~ --
s: J ,.,,.__ І 
2-
І ·-  І .,-- ..... -,._..,_.._..  
м . -·· 
<( ,, __  :ii -• 
І .. 
ш 
І ·- ·-
1 - , ~-----~ ~-
е- .... -
<( .,•_• .,.. 
f ·-: - .. ,, __. _ 
а. . , __ ;:.J 
~ І ·
. - ·.- 
:.:: ,_-. ... ··--- .·- -
>. І "--- ·,.,_- ] 
а. L_:__ -,··_  
t-
(J ···,_-
-
- 
-
Рисунок Г.12 - Слайд презентації №12 
77 
8 
ТЕСТУВАННЯ: ОТРИМАННЯГРУП 
] •• , •••. -.. .. '"" .... ~ •• t.~'-• tц\\ , ....... ,....__ ~- ..... -
.......q ~" 
.=, -~'-.:, . .~\  -----....... ,_..___ _, ..,... . _,_, - \ • 
Рнсунок Г.13 - Слайд презентації N.olЗ 
ТЕСТУВАННЯ:ОТРИМАННЯСТУДЕНТІВ 
~ ,_ ! 
1:; .. \WS@; і!± 
-:..~ ..  ~-~...  ...... ._.,.,_ .,,.,_.,.,....._.._,.,. .... \ . 
І"" ок Г 14 - Слnйд презентації .№ 14 
"НСУН · 
78 
• 
482 -чдтУ.232 102-01 90-01 9 
Тестування·•  оц1. нки та пропуски 
.. . ....... . , . .... .... . ... . 
• .:: -~- .. • .. • .. ~ · .. • n -. n . ... . .. • .. • ., • 
• (J • І 
-11') 
Рисунок Г .15 - Слайд презентації № 15 
висновки 
- Прове,:J,еВО ава..-rіз пр~ої oo.,,:acri. 
-Спроеьтова.яо стр5 БІ} ру базя даних. 
-Прове;хево проеRТ)ВЗ.В:НЯ архітеR"rурп свете~ 
-ВІ!БОнана реа.~-rізація проrра...'1ВИХ ~о;J:J'лів. 
-Проsе;r:ено тестував:яя 
Рисунок Г .16 - Слайд презентації № 16 
79 
...... 
і.О 
ДЯКУЮ ЗА 
УВАГУ! 
Рисунок Г.17 - Слайд презентацїї №17 
80