Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал:
https://er.chdtu.edu.ua/handle/ChSTU/8850| Назва: | Розробка Telegram боту "Абітурієнт Черкаського державного технологічного університету |
| Автори: | Немов, Руслан Григорович Кудь, Денис Олександрович |
| Дата публікації: | 12-чер-2024 |
| Короткий огляд (реферат): | АНОТАЦІЇ
Виконавець: Кудь Денис Олександрович.
Назва курсової роботи: "Телеграм бот Абітурієнт ЧДТУ".
Спеціальність: 121 «Інженерія програмного забезпечення».
Установа: Черкаський державний технологічний університет (ЧДТУ).
Місто, рік: Черкаси, 2023 рік.
Основні ідеї, результати та висновки курсової роботи:
Основні ідеї:
розгляд реальних потреб цільової аудиторії – абітурієнтів Черкаського державного технологічного університету (ЧДТУ);
аналіз широкого спектру функцій, спрямованих на допомогу абітурієнтам: інформація про вступ, розклад вступних випробувань, консультації, та інші корисні сервіси;
Результати:
аналіз та обґрунтування вибору Java та Spring Boot для реалізації бота. Опис архітектури та використані технології;
Висновки:
аналіз конкурентоспроможності університету та залученню більше абітурієнтів;
оцінка технічних аспектів реалізації, переваг та недоліків використання Java та Spring Boot. ABSTRACT Performer: Kud Denis Oleksandrovych. Title of the coursework: "Telegram Bot Applicant CDTU." Specialty: 121 "Software Engineering." Institution: Cherkasy State Technological University (CDTU). City, year: Cherkasy, 2023. Main ideas, results, and conclusions of the coursework: Main ideas: examination of the real needs of the target audience – applicants of Cherkasy State Technological University (CDTU); analysis of a wide range of functions aimed at assisting applicants: information about admission, schedule of entrance exams, consultations, and other useful services. Results: analysis and justification of the choice of Java and Spring Boot for0020bot implementation. Description of architecture and technologies used. Conclusions: analysis of the competitiveness of the university and attracting more applicants; • Evaluation of technical aspects of implementation, advantages, and disadvantages of using Java and Spring Boot; evaluation of technical aspects of implementation, advantages, and disadvantages of using Java and Spring Boot. |
| URI (Уніфікований ідентифікатор ресурсу): | https://er.chdtu.edu.ua/handle/ChSTU/8850 |
| Розташовується у зібраннях: | 121 Інженерія програмного забезпечення (Інженерія програмного забезпечення) |
Файли цього матеріалу:
| Файл | Опис | Розмір | Формат | |
|---|---|---|---|---|
| Кваліфікаційна робота бакалавра_Кудь Денис Олександрович.pdf Restricted Access | 4.36 MB | Adobe PDF | Переглянути/Відкрити Запит копії |
Усі матеріали в архіві електронних ресурсів захищено авторським правом, усі права збережено.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет інформаційних технологій і систем
Кафедра програмного забезпечення автоматизованих систем
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи
бакалавра
на тему: Телеграм бот «Абітурієнт ЧДТУ»
Виконав: студент 4 курсу, групи ПЗ-2244
Спеціальності
121 «Інженерія програмного забезпечення»
(шифр і назва напряму підготовки)
Студент Кудь Д.О.
(прізвище та ініціали)
Керівник Немов Р.Г.
(прізвище та ініціали)
Рецензент
(прізвище та ініціали)
Черкаси 2024
____________________Черкаський державний технологічний університет____________
повне найменування вищого навчального закладу
Факультет інформаційних технологій і систем
Кафедра програмного забезпечення автоматизованих систем
Освітній рівень бакалавр
Спеціальність 121 «Інженерія програмного забезпечення»
Освітня програма Інженерія програмного забезпечення
ЗАТВЕРДЖУЮ
Зав. кафедри ПЗАС, професор
___________ _________С. Голуб
«___» _______________ 2024 року
З А В Д А Н Н Я
НА КВАЛІФІКАЦІЙНУ РОБОТУ СТУДЕНТУ
________________________Кудь Денис Олександрович____________________________
(прізвище, ім’я, по батькові)
1. Тему проекту (роботи) Розробка телеграм бота Абітурєнт ЧДТУ
Керівник проекту (роботи) Немов Руслан Григорович ассистента кафедри____________
(прізвище, ім’я , по батькові, науковий ступінь, вчене звання)
Затверджені наказом Черкаського державного технологічного університету від « 26 »
лютого 2024 року №60/04
2. Строк подання студентом проекту (роботи) 7 червня 2024 р____________
3. Вхідні дані до проекту (роботи) стандарти програмного забезпечення; процеси
управління; вимоги до проекту; календарне планування проекту; управління ризиками
проекту; управління ресурсами_________________________________________________
4. Зміст розрахунково-пояснювальної записки (перелік питань, які потрібно розробити)
Вступ;
1. Розділ Наявні методи та засоби розв’язання поставлених завдань;
2. Розділ Впровадження результатів досліджень у практику проектування програмного
забезпечення інформаційних систем;
3. Розділ Розробка та тестування програмного забезпечення;
Висновки;
Список використаних джерел;
Додатки.
2
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових робіт проекту;
Діаграма класів, Діаграма пакетів, Діаграма компонентів, Діаграма діяльності, Діаграма
комунікації, Діаграма скінченного результату.____________________________________
6. Консультанти розділів проекту (роботи)
Прізвище, ініціали та посади Підпис, дата
Розділ
консультанта Завдання видав Завдання прийняв
1
2
3
7. Дата видачі завдання 02 грудня 2023 р._________________________________________
КАЛЕНДАРНИЙ ПЛАН
Строк
виконання
№
Назва етапів випускної роботи етапів Примітки
п/п випускної
роботи
1 Постановка задачі 05.12.2023 виконано
2 Підготовка завдання 13.12.2023 виконано
3 Погодження завдання 16.12.2023 виконано
4 Затвердження завдання 19.02.2024 виконано
Основна стадія
1 Підбір матеріалів 27.02.2024 виконано
2 Аналіз шляхів вирішення поставленої задачі 04.02.2024 виконано
3 Розрахунок основних параметрів роботи 10.03.2024 виконано
4 Вибір кінцевого варіанту проектного рішення 17.03.2024 виконано
5 Оформлення первісної редакції роботи 25.03.2024 виконано
Заключна стадія
1 Узгодження прийнятих проектних рішень з 31.04.2024 виконано
керівником
2 Оформлення пояснювальної записки роботи в 13.05.2024 виконано
кінцевій редакції
3 Попередній захист роботи 30.05.2024 виконано
4 Затвердження роботи 02.06.2024
5 Рецензування роботи 06.06.2024
6 Захист роботи 07.06.2024
Студент _____________________ Кудь Д.О.
(підпис) (прізвище та ініціали)
Керівник проекту (роботи) _____________________ Немов Р.Г.
(підпис) (прізвище та ініціали)
4
АНОТАЦІЇ
Виконавець: Кудь Денис Олександрович.
Назва курсової роботи: "Телеграм бот Абітурієнт ЧДТУ".
Спеціальність: 121 «Інженерія програмного забезпечення».
Установа: Черкаський державний технологічний університет (ЧДТУ).
Місто, рік: Черкаси, 2023 рік.
Основні ідеї, результати та висновки курсової роботи:
Основні ідеї:
розгляд реальних потреб цільової аудиторії – абітурієнтів
Черкаського державного технологічного університету (ЧДТУ);
аналіз широкого спектру функцій, спрямованих на допомогу
абітурієнтам: інформація про вступ, розклад вступних випробувань,
консультації, та інші корисні сервіси;
Результати:
аналіз та обґрунтування вибору Java та Spring Boot для реалізації
бота. Опис архітектури та використані технології;
Висновки:
аналіз конкурентоспроможності університету та залученню
більше абітурієнтів;
оцінка технічних аспектів реалізації, переваг та недоліків
використання Java та Spring Boot.
5
Performer: Kud Denis Oleksandrovych.
Title of the coursework: "Telegram Bot Applicant CDTU."
Specialty: 121 "Software Engineering."
Institution: Cherkasy State Technological University (CDTU).
City, year: Cherkasy, 2023.
Main ideas, results, and conclusions of the coursework:
Main ideas:
examination of the real needs of the target audience – applicants of
Cherkasy State Technological University (CDTU);
analysis of a wide range of functions aimed at assisting applicants:
information about admission, schedule of entrance exams, consultations, and
other useful services.
Results:
analysis and justification of the choice of Java and Spring Boot
for0020bot implementation. Description of architecture and technologies used.
Conclusions:
analysis of the competitiveness of the university and attracting more
applicants; • Evaluation of technical aspects of implementation, advantages, and
disadvantages of using Java and Spring Boot;
evaluation of technical aspects of implementation, advantages, and
disadvantages of using Java and Spring Boot.
6
ЗМІСТ
АНОТАЦІЇ .............................................................................................. 5
ЗМІСТ ..................................................................................................... 7
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ .................................................... 9
ВСТУП .................................................................................................. 10
1. РОЗДІЛ ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ
ПОСТАВЛЕНИХ ЗАВДАНЬ ..................................................................... 13
1.1 Призначення та область застосування програми для
дослідження сценаріїв взаємодії в ерготичних системах ..................... 13
1.2 Аналіз існуючих програм для дослідження сценаріїв
взаємодії в ерготичних системах. .......................................................... 14
1.3 Переваги та недоліки ............................................................ 19
1.4 Постановка задачі ................................................................. 20
1.5 Висновок до розділу ............................................................. 21
2. РОЗДІЛ ВПРОВАДЖЕННЯ РЕЗУЛЬТАТІВ ДОСЛІДЖЕНЬ У
ПРАКТИКУ ПРОЕКТУВАННЯ ................................................................ 22
2.1 Моделювання предметної області ....................................... 22
2.2 Формування та аналіз вимог ................................................ 26
2.3 Проектування логічної структури програмного комплексу
31
2.4 Архітектурне проектування ................................................. 33
2.5 Моделювання поведінки системи ........................................ 36
2.6 Висновок до розділу ............................................................. 43
3. РОЗДІЛ РОЗРОБКА ТА ТЕСТУВАННЯ ПРОГРАМНОГО
ЗАБЕЗПЕЧЕННЯ ....................................................................................... 44
3.1 Розробка програмного комплексу ....................................... 44
7
3.2 Тестування системи .............................................................. 67
3.3 Приклади впровадженого програмного комплексу ............ 72
3.4 Висновки до розділу ............................................................. 72
ВИСНОВКИ ......................................................................................... 74
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ............................................. 75
Додаток А ............................................................................................. 79
Додаток Б .............................................................................................. 81
Додаток В .............................................................................................. 84
Додаток Г .............................................................................................. 91
8
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ
Чат-бот: комп'ютерна програма, яка імітує розмову з користувачем.
API: програмний інтерфейс прикладних програм, що дозволяє різним
програмам взаємодіяти між собою.
База даних: система зберігання та управління даними.
NLP: обробка природної мови, галузь штучного інтелекту, що
досліджує взаємодію між комп'ютерами та людською мовою.
IDE: інтегроване середовище розробки, що полегшує написання,
налагодження та тестування коду.
Git: система контролю версій, що використовується для відстеження
змін у коді.
Docker: платформа віртуалізації, що використовується для упаковки
та розгортання програм.
Діаграма сутностей та зв'язків: використовується для візуального
представлення зв'язків між сутностями системи.
Діаграма потоків даних: використовується для візуального
представлення потоків даних між різними компонентами системи.
9
ВСТУП
Актуальність теми:
Актуальність теми викликана необхідністю розробки програмного
забезпечення інформаційного телеграм бота, що забезпечить користувача
стабільною та продуктивним ПЗ, яке дозволить переглядати інформацію
щодо вступу та переліку певної інформації онлайн без потреби відвідувати
портал ЧДТУ сайту. Тому створення телеграм боту ПЗ що дозволить
користувачам легко взаємодіяти із телеграм ботом для абітурієнтів ЧДТУ
буде корисною та необхідною.
Мета роботи і завдання розробки
Мета роботи – розробити аналіз потреб абітурієнтів і спроектувати
функціональності Телеграм Бота "Абітурієнт ЧДТУ" з використанням Java
та Spring Boot бібліотеки. Для досягнення цієї мети виконувались такі
завдання:
1. Визначити існуючі методи і засоби для розв’язання поставленої
задачі. Аналіз результатів інформаційного пошуку. Формалізація
поставлених задач.
2. Вибрати і застосувати технології проектування ПЗ.
3. Вибрати та застосувати конструювання ПЗ.
4. Вибрати та застосувати технологію тестування ПЗ.
5. Використати отримані результати в практику створення ІС
Об’єкт розробки: Програмне забезпечення користувацького
характеру телеграм бот, спрямований на абітурієнтів Черкаського
державного технологічного університету, надаючи інформаційну підтримку
та допомогу з вступним процесом на прикладі факультету Інформаційних
технологій і систем.
Предмет розробки:
Предметом розробки є процес розробки програмного забезпечення
для телеграм бота, призначеного для абітурієнтів ЧДТУ. Цей бот надає
інформаційну підтримку та допомогу з вступним процесом, включаючи
10
актуальну інформацію та сервіси, що спрощують і оптимізують процес
вступу.
Методи проектування та конструювання
Для проектування було використано об’єктно орієнтований підхід до
створення ІС. Мова програмування була обрана Java з використанням Spring
Boot для серверного рішення. База даних використовувалася PostgreSQL.
Використані технології забезпечують стабільну роботу системи та зручність
у її експлуатації
Опис отриманих результатів
В процесі аналізу та проектування ПЗ, частини системи
використовується мова UML, що дозволить створити чітку та
структуровану модель системи.
В процесі розробки вдалося добитись прийнятних результатів, що
забезпечують досягнення мети. Було розроблено телеграм бота для
абітурієнтів ЧДТУ. В процесі розробки було пройдено такі етапи:
1. Сформульовані вимоги до ПЗ.
2. Спроектована база даних.
3. Створено клієнтську частину для взаємодії із сервером, а саме:
перелік спеціальностей та кафедр, додаткова інформація про факультет,
інформація щодо термінів навчання та вартості, додані коефіцієнти вступної
компанії.
4. Створено серверну частину, що забезпечить бізнес-правила ІС. На
основі спроектованого ПЗ було представлено діаграми. А в процесі
тестування ІС було пройдено всі етапи, що демонструють виконання ПЗ
відповідно до вимог.
Практичне значення отриманих результатів
Було побудовано програмну систему для взаємодії абітурієнтів з
університетом за допомогою телеграм бота, що забезпечує доступ до
актуальної інформації та сервісів, необхідних для вступу. Головною
11
необхідністю при використанні системи є пристрій з браузером чи
встановленим додатком та доступ до мережі Інтернет.
Особистий внесок автора
Автор проаналізував етапи програмної розробки бота, а саме: аналіз
вимог, проектування, архітектура та змодельовані моделі поведінки, також
розроблена програмна частина самого боту з винесеною швидкою
взаємодією користувача з усім наданим функціоналом.
В процесі розробки було застосовано об’єктно орієнтоване
програмування, що дозволило зручно представляти дані в об’єктах для
подальшої взаємодії з ними та завантаження цих даних до бази даних, що
спрощує оновлення інформації.
12
1. РОЗДІЛ ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ
ПОСТАВЛЕНИХ ЗАВДАНЬ
1.1 Призначення та область застосування програми для
дослідження сценаріїв взаємодії в ерготичних системах
Абітурієнти закладу – це особи, які подають заяви щодо вступу до
певного навчального закладу [1]. Процес вступу в університет або інший
вищий навчальний заклад зазвичай включає кілька кроків:
Перший крок для абітурієнтів – це вибір навчального закладу, до
якого планується вступати. Це може бути університет, коледж, технікум або
інший вищий освітній заклад [20].
Після вибору закладу абітурієнт повинен обрати спеціальність та
факультет, з урахуванням пріоритетності навчання.
Абітурієнт готує необхідні документи для подачі вступної заяви.
Входить в список документів: атестат про повну загальну середню освіту,
результати зовнішнього незалежного оцінювання (ЗНО) чи інші тестові
результати, рекомендаційні листи та інші документи.
Абітурієнт реєструється в системі вступу до вибраного закладу після
чого подає вступну заяву, вказуючи обрані спеціальності та інші необхідні
дані.
У багатьох країнах або закладах абітурієнти проходять
стандартизовані тести, наприклад ЗНО чи НМТ, або інші вступні
випробування, щоб визначити свої академічні здібності.
Після проведення тестів, оголошуються результати. Абітурієнти, які
успішно пройшли тести, реєструються на конкурс, який враховує оцінку
конкурсних балів.
Абітурієнти, що пройшли конкурс, зараховуються на обрані
спеціальності та розпочинають навчання у вищому навчальному закладі.
13
1.2 Аналіз існуючих програм для дослідження сценаріїв
взаємодії в ерготичних системах.
Кожен заклад має свої власні правила та процедури вступу, тому
кроки відрізнятися в залежності від установи та системи освіти в країні [2].
Загальний підхід із застосуванням технічних знань та засобів.
Чат-бот — це автоматизований багатофункціональний помічник, який
збирає та показує інформацію підписникам за їхнім запитом згідно зі
заздалегідь підготовленим сценарієм [15].
Найчастіше чат-боти використовуються для автоматизації
обслуговування клієнтів. Боти швидко та ефективно відповідають на
запитання та запити клієнтів 24/7, автоматично збирати зворотний зв'язок
від клієнтів після покупки чи обслуговування. Для цього необхідно
створити сценарій бота з необхідними командами, які вибиратиме
підписник для розв'язання своїх питань [16].
Боти можуть надсилати миттєві повідомлення через розсилки про
нові акції, події або важливі оновлення бізнесу, що допомагає тримати
клієнтів у курсі подій та підвищувати впізнаваність бренду [3].
Розробка Телеграм ботів часто виконується з використанням мов
програмування, таких як Python чи JavaScript. Для цього можна
використовувати бібліотеки, такі як python-telegram-bot [4] для Python або
Telegraf [5] для JavaScript, а для Java – Telegram Bot API [6].
Зберігання інформації про абітурієнтів, розклади, інші корисні дані
можна використовуючи бази даних. Зазвичай використовуються: MySQL,
PostgreSQL, MongoDB, чи Firebase Realtime Database.
Для отримання актуальних даних використовують API відповідних
ресурсів, наприклад, отримувати дані про вступні бали, розклади, новини
від університету. Інтеграція з іншими сервісами може покращити
функціонал бота [24].
Для взаємодії з користувачами іноді застосовують техніки обробки
природної мови (NLP). Використання бібліотеки, як SpaCy [7] або Natural
14
Language Toolkit (NLTK)[8], або навіть глибокі нейронні мережі, наприклад,
засоби засновані на бібліотеці Transformers [9].
Забезпечення безпеки та конфіденційності даних – це важлива частина
розробки бота. Коректне зберігання та обробка – усе це дуже важливо [25].
Інтеграція з інструментами аналітики, такими як Google Analytics чи
власні системи відстеження, може допомогти вам розуміти, як користувачі
взаємодіють з ботом та як його вдосконалити [10].
Для створення Телеграм Бота для абітурієнтів з використанням Java
та Spring Boot бібліотеки, можна використати різні методи та засоби, а саме:
мова програмування Java для реалізації бізнес-логіки бота.
Популярня, масштабована та надійна мова програмування;
бібліотека Spring Boot дозволяє швидко розгортати та
налаштовувати програми, забезпечуючи зручну реалізацію та управління
компонентами.
взаємодіє з Telegram за допомогою офіційного Telegram Bot API
для обробки повідомлень та взаємодії з користувачами;
використання Java бібліотек, таких як "TelegramBots" або
"Telegram Bot API for Java", для спрощення взаємодії з Telegram API.
IntelliJ IDEA, Eclipse або VStudio – використання інтегрованих
середовищ розробки (IDE) для Java для зручного написання, налагодження
та тестування коду;
MySQL, PostgreSQL або інші реляційні бази даних зберігання та
управління даними, такими як інформація про абітурієнтів, через реляційні
бази даних;
Git та GitHub (або GitLab, Bitbucket): Застосування системи
контролю версій для зберігання та спільної роботи над кодом;
JUnit, Mockito або TestNG – написання та виконання
автоматизованих тестів для перевірки правильності роботи коду;
15
Docker – використання контейнеризації для упаковки та
розгортання додатку разом із всіма залежностями.
Інструменти та методи можуть створити ефективний та
функціональний Телеграм Бот для абітурієнтів, забезпечуючи якісну
розробку та зручність взаємодії з користувачем [11],[12],[13].
1.2.1 Telegram Bot «Vstup»
У період активних змін в системі освіти, виникає необхідність в
глибокому аналізі інструментів, призначених для поліпшення
управлінських процесів. В такому контексті досліджено та оцінено
існуючий телеграм-бот, спрямований на абітурієнтів (див. на рисунки 1.1,
1.2,1.3).
Рисунок 1.1 – Інформація із заголовку телеграм боту
16
Рисунок 1.2 – Вітальне сповіщення в чаті
Бот створений у Харківському національному економічному
університеті імені Семена Кузнеця та доступний українською мовою.
Використовується на будь-якому пристрої з доступом до Інтернету.
Розрахунок результатів відбувається згідно Національного
мультипредметного тесту (НМТ) для розрахунку конкурсного балу вступу
до вищого навчального закладу України [14].
Корисний інструмент для вступників до вищих навчальних закладів
України. Допомагає розрахувати бал та оцінити шанси на вступ.
17
Рисунок 1.3 – Приклад використання розрахунку конкурсного балу
Рисунок 1.4 – Результат обрахунку конкурсного балу
18
1.3 Переваги та недоліки
Переваги:
Допомога у вступі до університету: Бот може допомогти абітурієнтам
з такими завданнями, як:
Бот може розрахувати конкурсний бал абітурієнта на основі
результатів НМТ.
Бот може допомогти абітурієнтам оцінити їхні шанси на вступ
до певної спеціальності в певному регіоні.
Бот може допомогти абітурієнтам порівняти конкурсні бали на
різних спеціальностях та в різних регіонах.
Бот доступний на будь-якому пристрої з доступом до Інтернету, що
робить його зручним для абітурієнтів.
Бот доступний українською мовою, що робить його доступним для
абітурієнтів, які не володіють англійською мовою.
Недоліки:
Відсутність деяких функцій: Бот не має деяких функцій, які могли б
бути корисними для абітурієнтів, наприклад:
Доступ до вступної інформації: Бот не надає абітурієнтам
доступу до такої інформації, як правила вступу, перелік
спеціальностей, дати подачі заяв тощо.
Можливість подачі заяв: Бот не може допомогти абітурієнтам
подати заявки на вступ до університету.
Абітурієнтам потрібно вводити свої результати НМТ вручну, що може
бути незручно.
Точність розрахунку конкурсного балу може залежати від точності
введених абітурієнтом даних.
19
1.4 Постановка задачі
Аналіз потреб абітурієнтів Черкаського державного технологічного
університету (ЧДТУ) виявив кілька важливих аспектів, які потребують
покращення. Серед них найбільш актуальні наступні: абітурієнти змушені
шукати інформацію про вступ, спеціальності, та важливі дати на різних
ресурсах чи в документах, що часто призводить до плутанини і втрати
важливих даних.
Метою даної роботи є розробка телеграм бота для абітурієнтів ЧДТУ,
який надасть централізований доступ до всієї необхідної інформації і
допоможе оптимізувати процес вступу. Для досягнення цієї мети
передбачається виконати такі завдання:
1. Вивчення наявних рішень для розв'язання поставлених задач, їхні
переваги та недоліки.
2. Розробка архітектури системи, яка враховуватиме всі необхідні
функції для абітурієнтів.
3. Вибір відповідних технологій і інструментів для реалізації
проекту.
4. Проведення тестування розробленого ПЗ, виявлення і виправлення
помилок, впровадження системи в експлуатацію.
Опис задач
1. Телеграм бот повинен забезпечити зручний доступ до всіх
необхідних даних для абітурієнтів, включаючи правила вступу, перелік
спеціальностей, і важливу інформацію щодо факультету чи кафедри.
2. Інтерфейс повинен бути інтуїтивно зрозумілим і доступним для
користувачів будь-якого рівня технічної підготовки.
Таким чином, розробка телеграм бота для абітурієнтів ЧДТУ є
актуальним і необхідним завданням, яке сприятиме підвищенню
ефективності процесу вступу і полегшить доступ до необхідної інформації.
Виконання поставлених задач дозволить створити інструмент, що буде
20
корисним для абітурієнтів і сприятиме підвищенню якості надання освітніх
послуг.
1.5 Висновок до розділу
Бот допомагає оцінити шанси на вступ використовуючи конкурсний
бал для оцінки шансів вступника на певну спеціальність у певному регіоні.
Приклад зображений на рисунку 1.3, 1.4, як бот використовується –
вступник вводить результати НМТ, щоб дізнатися конкурсний бал для
вступу до бажаної спеціальності або використовується для порівняння
конкурсних балів з різних спеціальностей з різних регіонів, щоб визначити,
де найкращі шанси вступу.
Мета аналізу альтернативного рішення полягає в розробці та
впровадженні телеграм боту для абітурієнтів, враховуючи недоліки, а саме
відсутність описаного функціоналу та доступ до вступної інформації та
доданню нових можливостей для зручної та ефективної взаємодії з
абітурієнтами.
Процес розробки та аналізу передбачає додавання нових сервісів та
врахування повноцінного функціоналу для найточнішої відповідності
потребам.
Загалом, розробка Telegram-бота для абітурієнтів може бути корисним
інструментом для допомоги абітурієнтам вступити до університету.
21
2. РОЗДІЛ ВПРОВАДЖЕННЯ РЕЗУЛЬТАТІВ ДОСЛІДЖЕНЬ У
ПРАКТИКУ ПРОЕКТУВАННЯ
Метою даного розділу є проведення аналізу первинних і детальних
вимог до розроблюваної системи, а також проведення проектування
системи за допомогою діаграм UML, таких як: послідовності, прецедентів,
пакетів, станів, діяльності, класів та скінченого автомату.
У результаті проектування буде сформована модель телеграм бот
орієнтованого на інформування абітурієнта ЧДТУ, яка повинна повністю
реалізовувати поставлені вимоги.
2.1 Моделювання предметної області
Деякі ключові аспекти з предметної області та можливі елементи
моделювання які використовуються при розробці наведено в сутностях.
Сутності (Entities): абітурієнт: ім'я, прізвище, дата народження,
адреса, електронна пошта, телефон, попередній навчальний заклад освіти,
університет: назва, адреса, контактна інформація, спеціальність: назва, код,
факультет, опис.
Взаємодії та відносини предметної області можуть бути різними,
дивлячись на функціонал та можливості телеграму, можна реалізувати
інтегрований підхід з навчальним закладом чи інформаційний, спрощений
ресурс.
Далі наведено бізнес-процеси та можливі логічні зв’язки: вступний
конкурс – абітурієнт подає заяву на участь у конкурсі. Спеціальності
конкурсу визначаються на основі вибору абітурієнтів та кількості доступних
місць, подання документів – Абітурієнт подає необхідні документи для
вступу. Документи перевіряються та обробляються університетом,
взаємодія з Телеграм Ботом – абітурієнт може звертатися до бота для
отримання інформації про вступ, розклад випробувань, стан подання
документів тощо.
22
2.1.1 Предметна область моделювання. Модель предметної
області. Словник предметної області
Предметною областю моделювання є процес взаємодії абітурієнтів з
ЧДТУ за допомогою телеграм бота. Цей процес включає збір і обробку
інформації про абітурієнтів, вибір спеціальностей, перелік необхідних для
подання документів, а також надання необхідної інформації та підтримки в
процесі вступу. Метою моделювання є створення інформаційної системи,
яка автоматизує та спрощує всі ці етапи, забезпечуючи зручний доступ до
інформації для абітурієнтів та підвищуючи ефективність роботи
приймальної комісії університету.
Модель предметної області (англ. Domain model) — шаблон
проєктування, який пропонує реалізувати бізнес-логіку, використовуючи
підхід ООП [18].
Модель та словник предметної області реалізовано нижче.
Абітурієнт: Властивості: ім'я прізвище, дата реєстрації, нікнейм.
Відносини: обирає спеціальності, документи, кафедри та факультет.
Спеціальність (Specialization). Властивості: назва (Name), код (Code).
факультет (Faculty), опис (Description), акредетація, освітній рівень,
коефіцієнти. Відносини: має багато Абітурієнтів, бере участь у багатьох
Вступних Конкурсах.
Перелік для подання Документів (Document Submission). Властивості:
назва.
Словник предметної області:
Абітурієнт (Applicant): Особа, яка подає документи на вступ до
університету. Властивості: ім'я, прізвище, електронна пошта, телефон.
Спеціальність (Specialization): Конкретний напрямок навчання в
університеті. Властивості: назва, код, факультет, опис.
Вступ (Admission): Процес прийняття абітурієнта до університету.
Властивості: тип вступу (контракт або бюджет), дата вступу, стан вступу.
23
Подання Документів (Document Submission): Процес надання
необхідних документів для вступу. Властивості: дата подачі, статус.
Телеграм бот (Telegram Bot): Програмне забезпечення, яке взаємодіє
з користувачами через месенджер Telegram і надає інформацію та послуги,
пов'язані з вступом до університету.
Ця модель і словник є основою для розробки інформаційної системи,
яка автоматизує процес вступу, забезпечуючи зручний доступ до інформації
та підвищуючи ефективність взаємодії абітурієнтів з університетом .
2.1.2 Елементи моделювання предметної області
При побудові моделей встановлюється (або обирається) чітка
підмножина використаних або необхідних елементів і зв’язків мови UML.
При виборі більшої підмножини ніж необхідна для використання, може
впасти рівень прозорості і інформативності моделей
24
Рисунок 2.1 – Елементи мови UML
Рисунок 2.2 – Зв’язки мови UML
Рисунок 2.3 – Основні діаграми UML
При проектуванні ПЗ кваліфікаційної роботи необхідно
25
використовувати основні діаграми мови UML для моделювання предметної
області, формування та аналізу вимог до системи, логічної і фізичної
структури та поведінки системи (рисунок 2.3).
2.1.3 Робоча область моделювання
Для розробки якісної та корисної системи необхідно визначити всі
вимоги до системи та виконувати моделювання згідно з ними. На рис. 2.4
зображено модель предметної області для програми, що розробляється.
Відображено процеси, що виконуються. Основний процес це отримання
інформації про спеціальності, що включає в себе ціноутворення та всю
основну інформацію.
Рисунок 2.4 - Модель предметної області
2.2 Формування та аналіз вимог
Вимоги можна класифікувати на дві групи: первинні і детальні.
Первинні вимоги формуються замовником, а детальні відображають
бачення системи з точки зору програмістів.
Детальні вимоги можуть бути зовсім не зрозумілими замовнику,
оскільки деталізують програмні рішення розробників.
26
2.2.1 Формування вимог до програмного забезпечення. Первинні
і детальні вимоги. Вимоги замовника і розробника. Функціональні та
нефункціональні вимоги
Процес формування вимог до програмного забезпечення включає
визначення основних функціональних та нефункціональних характеристик,
які повинні бути реалізовані в телеграм боті для абітурієнтів ЧДТУ [19].
Вимоги до ПЗ:
Первинні вимоги: забезпечити доступ до актуальної інформації щодо
вступу, спеціальностей, вимог, факультету та кафедр, автоматизувати
процеси реєстрації абітурієнтів, надати можливість зручного взаємодії з
системою через телеграм бот.
Детальні вимоги: реалізувати функціонал реєстрації користувачів із
верифікацією даних, забезпечити можливість надання переліку необхідних
документів, реалізувати відображення коефіцієнтів предметів для кожної
спеціальностей.
Вимоги замовника (ЧДТУ):
Надання зручного інструменту для абітурієнтів, що спростить
процес ознайомлення з вимогами вступу та надання необхідних документів.
Автоматизація обробки інформації про абітурієнтів для
зменшення навантаження на приймальну комісію.
Забезпечення безперебійного доступу до інформації та підтримки
абітурієнтів в процесі вступу.
Вимоги розробника:
Використання сучасних технологій для забезпечення надійності та
безпеки системи.
Зручність у розробці, тестуванні та впровадженні телеграм бота.
Забезпечення масштабованості системи для можливості
розширення функціональності в майбутньому.
Функціональні вимоги:
27
Реєстрація та авторизація: можливість створення облікового запису
абітурієнта з верифікацією даних, авторизація користувачів через телеграм
бот.
Надання переліку документів: перелік необхідних для вступу
документів з детальною інформацією про кожен з них.
Інформаційна підтримка:
Надання актуальної інформації про умови вступу, важливі дати.
Нефункціональні вимоги:
Захист персональних даних абітурієнтів, використання сучасних
методів шифрування та аутентифікації.
Забезпечення швидкої обробки запитів та високої швидкості відповіді
системи, масштабованість системи для підтримки великої кількості
користувачів одночасно.
Висока доступність системи та мінімізація часу простою, відновлення
роботи системи у випадку збоїв.
Інтуїтивно зрозумілий інтерфейс користувача, підтримка
багатомовного інтерфейсу.
Підтримка різних платформ і пристроїв для доступу до телеграм бота.
Функціональні вимоги повинні містити: відображення доступних
спеціальностей та їхніх властивостей, подача онлайн-заявки на вступ на
обрані спеціальності, перегляд інформації щодо вступних конкурсів та
мінімальних балів.
Нефункціональні вимоги: система повинна відповідати швидко на
запитання користувача, повинна працювати на будь-якому пристрої і бути
доступне тільки при наявності інтернету, захист даних абітурієнтів від
несанкціонованого доступу.
28
2.2.2 Формування вимог за допомогою діаграми прецедентів
Рисунок 2.5 – Діаграма прецедентів
Діаграма прецедентів описує систему "Телеграм бот для абітурієнта".
Актори:
абітурієнт: використовує бот для отримання інформації щодо
вступу;
система: бот, який надає послуги абітурієнту.
Прецеденти:
введення та редагування особистих даних: абітурієнт може ввести
та відредагувати свої особисті дані;
перегляд списку спеціальностей: абітурієнт може переглянути
список доступних спеціальностей;
отримання повідомлень: абітурієнт може отримувати
повідомлення від бота;
перегляд умов вступу: абітурієнт може переглянути умови вступу
на обрану спеціальність;
Відносини:
29
асоціація: абітурієнт може використовувати один або кілька
прецедентів;
узагальнення: прецедент "Отримання повідомлень" узагальнює
інші прецеденти, де бот надсилає повідомлення абітурієнту.
Інші елементи:
межа системи: окреслює межі системи.
30
2.3 Проектування логічної структури програмного комплексу
У даному підрозділі необхідно обрати технологію проектування. На
даний момент найбільш поширеними є дві технології: структурно-
орієнтована і об’єктно-орієнтована технології.
Розглянувши позитивні і негативні сторони наведених технологій,
вимоги до розроблюваного програмного забезпечення, а також враховуючи
попередній досвід проектування, було обрано об’єктно-орієнтовану
технологію проектування. Вона дозволить уникнути складної структури
проекту і за коротший час реалізувати програмний засіб наочної
демонстрації виконання sql-запитів.
2.3.1 Діаграми класів
Основними будівельними блоками детального проектування є класи.
Результат етапу детального проектування повинен бути відображений на
діаграмі класів (що містить опис всіх операцій та атрибутів класів), які
призначені для статичного моделювання об’єктів.[21]
Рисунок 2.6 – Діаграма класів
31
Діаграма класів описує систему "Телеграм бот для абітурієнта".
Класи:
абітурієнт: клас, який описує абітурієнта, який використовує бот
для вступу до університету;
спеціальність: клас, який описує спеціальність, на яку може
вступити абітурієнт;
повідомлення: клас, який описує повідомлення, яке бот надсилає
абітурієнту;
умови вступу: клас, який описує умови вступу на спеціальність.
Асоціація:
одна спеціальність може мати кілька умов вступу;
одному абітурієнту може бути надіслано кілька повідомлень.
Агрегація:
заявка містить інформацію про абітурієнта та спеціальність;
повідомлення містить інформацію про заявку.
Інші елементи:
межа системи: окреслює межі системи.
Рисунок 2.7 - Заповнена діаграма класів
32
2.3.2 Діаграми пакетів
Рисунок 2.8 – Діаграма пакетів
Діаграма пакетів зображує структуру пакетів у системі "Телеграм бот
для абітурієнта".
Presentation: містить класи, що відповідають за візуальне
представлення інформації.
BusinessLogic: містить класи, що відповідають за бізнес-логіку
системи.
DataAccess: містить класи, що відповідають за доступ до даних.
Utilities: містить допоміжні класи.
Залежності, які використовуються: пакет Presentation залежить від
пакету BusinessLogic та пакет BusinessLogic залежить від
пакетів DataAccess та Utilities.
2.4 Архітектурне проектування
Створення архітектури – це проектування на найвищому рівні.
Логічна архітектура описує систему в термінах її принципової організації у
вигляді пакетів, програмних класів і підсистем. Вона називається логічною,
оскільки не визначає способи розгортання цих елементів у різних
33
операційних системах або на фізичних комп’ютерах в мережі (це
відноситься до архітектури розгортання) [22].
Етап архітектурного проектування ІС повинен бути відображений
шляхом опису процесу об’єктно-орієнтованої декомпозиції системи до
рівня переліку підсистем та їх зв’язків, опису її логічної структури у вигляді
пакетів компонентів (діаграма компонентів) [23].
2.4.1 Діаграма компонентів
Рисунок 2.9 – Діаграма компонентів
Компоненти:
бот: компонент, який відповідає за взаємодію з абітурієнтом;
веб-сервіс: компонент, який надає API для бота;
база даних: компонент, який зберігає дані про
абітурієнтів, спеціальності, заявки та повідомлення;
файлова система: компонент, який використовується для
зберігання файлів, наприклад, фотографій абітурієнтів.
Зв'язки:
бот використовує веб-сервіс для отримання та надсилання даних;
веб-сервіс використовує базу даних для зберігання та отримання
даних;
бот може використовувати файлову систему для зберігання
фотографій абітурієнтів.
2.4.2 Розгортання програмної системи на апаратних засобах.
Діаграма розгортання
Щоб розгорнути програмну систему, потрібно такий вид апаратного
засобу. Налаштувати сервер та підготувати для встановлення операційної
34
системи. Визначити необхідні програми та інструменти для бота. Створити
та налаштувати базу даних. Встановити та налаштуйте сервіси повідомлень.
Завантажити виконавчий файли Телеграм бота на сервер. Запустити бота та
переконатися, що все працює на серверах. Виконати тести.
З’єднання
Рисунок 2.10 – Діаграма розгортання
Діаграма розгортання описує систему "Телеграм бот для абітурієнта".
Вузли:
сервер бота: сервер, на якому запущено бот;
веб-сервер: сервер, на якому запущено веб-сервіс;
база даних: сервер, на якому розміщена база даних.
Компоненти:
бот: компонент, який відповідає за взаємодію з абітурієнтом;
веб-сервіс: компонент, який надає API для бота;
база даних: компонент, який зберігає дані про
абітурієнтів, спеціальності, заявки та повідомлення.
Зв'язки:
35
бот використовує веб-сервіс для отримання та надсилання
даних;
веб-сервіс використовує базу даних для зберігання та
отримання даних.
2.5 Моделювання поведінки системи
Модель поведінки (behavior model) – це опис алгоритму роботи
системи [17].
У UML передбачено декілька різних засобів для опису поведінки.
Вибір того чи іншого засобу диктується типом поведінки, яку потрібно
описати.
Зазвичай, для опису життєвого циклу конкретного об’єкту,
використовуються діаграми станів.
Для опису потоку управління зручно використовувати діаграми
діяльності.
2.5.1 Діаграма діяльності
Рисунок 2.11 – Діаграма діяльності
Діаграма діяльності описує процес подання заявки абітурієнтом через
Телеграм бот.
36
Етапи:
1. абітурієнт обирає команду "Подати заявку";
2. бот пропонує абітурієнту ввести свої особисті дані: ім'я, прізвище,
Email, Телефон;
3. бот перевіряє правильність введених даних;
4. бот пропонує абітурієнту обрати спеціальність;
5. бот зберігає заявку абітурієнта;
6. бот повідомляє абітурієнту про успішне подання заявки.
Рішення: Дані введені правильно? Так: перейти до етапу 4. Ні:
повернутися до етапу 2.
Умови: абітурієнт має ввести всі необхідні дані, абітурієнт має обрати
одну спеціальність.
Інші елементи: початок процесу та кінець процесу.
Опис блоків:
ввести особисті дані: блок, в якому абітурієнт вводить свої
особисті дані;
перевірити дані: блок, в якому бот перевіряє правильність
введених даних;
обрати спеціальність: блок, в якому абітурієнт обирає
спеціальність;
зберегти заявку: блок, в якому бот зберігає заявку абітурієнта;
повідомити про успішне подання заявки: блок, в якому бот
повідомляє абітурієнту про успішне подання заявки.
Стрілки: показують послідовність виконання етапів.
37
2.5.2 Діаграма послідовності
Рисунок 2.12 – Діаграма послідовності
Діаграма послідовності описує процес пошуку інформації
користувачем у системі, поділений на 5 сценаріїв:
Пошук інформації зареєстрованим користувачем:
1. користувач обирає команду "Пошук інформації";
2. система обробляє натискання кнопки;
3. система передає запит на довідник;
4. система отримує результат пошуку з довідника;
5. система формує відповідь для користувача;
6. система повертає результат користувачу.
Перегляд персональних даних:
1. користувач обирає команду "Перегляд персональних даних";
2. система перевіряє наявність даних про користувача;
3. якщо дані є, система повертає їх користувачу;
4. якщо даних немає, система повідомляє про це користувачу.
Пошук інформації не зареєстрованим користувачем:
38
1. користувач обирає команду "Пошук інформації";
2. система перевіряє, чи зареєстрований користувач;
3. якщо користувач не зареєстрований, система переадресовує його
на сторінку реєстрації;
4. якщо користувач зареєстрований, система передає запит на
довідник;
5. система отримує результат пошуку з довідника;
6. система формує відповідь для користувача;
7. система повертає результат користувачу.
Внесення персональних даних:
1. користувач вводить персональні дані;
2. система приймає дані;
3. система обробляє дані;
4. система зберігає дані в базі даних;
5. система повідомляє користувачу про успішне збереження даних.
Помилка:
1. система виявляє помилку;
2. система повідомляє користувачу про помилку.
39
2.5.3 Діаграма комунікації
Рисунок 2.13 – Діаграма комунікації
Схема показує процес спілкування між користувачем та системою.
Користувач:
отримує довідкову інформацію (звертається до системи за
допомогою Телеграм бота);
надає інформацію (вводить дані, наприклад, ім'я, телефонний
номер, адреса тощо);
вводить дані (заповнює форму або надає іншу інформацію).
Система:
перевіряє наявність даних (шукає інформацію про користувача в
базі даних);
отримує персональні дані (зберігає інформацію про користувача);
вступна конкуренція (використовує алгоритм для прийняття
рішення);
зберігає дані (оновлює інформацію про користувача в базі даних).
База Даних – зберігає інформацію про користувачів.
Стрілки – показують напрямок потоку інформації.
Інтерфейс, який використовує користувач для спілкування з
системою.
Користувач може отримати довідкову інформацію, не надаючи своїх
даних.
40
Система може запросити користувача ввести дані, якщо їх немає в
базі даних. Використовує алгоритм для прийняття рішення, ґрунтуючись
на даних про користувача. Зберігає дані про користувача в базі даних.
41
2.5.4 Діаграма скінченного автомату
Рисунок 2.14 – Діаграма скінченного автомату
Процес починається з того, що користувач спілкується з ботом.
Бот отримує вступні дані від користувача, такі як його ім'я, контактні
дані та інформацію про освіту.
Бот перевіряє, чи зареєстрований користувач.
Якщо користувач не зареєстрований, він має ввести реєстраційні дані.
Якщо користувач зареєстрований, він може:
Переглянути свої персональні дані.
Редагувати свої персональні дані.
Користувач отримує список документів, необхідних для вступу.
Користувач отримує перелік спеціальностей, на які він може
вступити.
Користувач може переглянути конкурс на кожну спеціальність.
Користувач обирає кнопку, щоб отримати цікаву йому інформацію.
42
Процес завершується, коли користувач подає заявку на вступ або
отримує необхідну інформацію.
На діаграмі також зображено кілька блоків, які описують різні етапи
процесу.
Блоки з'єднані стрілками, які показують, як користувач може
переходити від одного етапу до іншого.
2.6 Висновок до розділу
Розділ описує процес проектування та розробки телеграм-бота для
абітурієнтів. Цей бот дозволяє абітурієнтам подавати заявки на вступ до
університету, переглядати інформацію про спеціальності та конкурси, а
також отримувати відповіді на свої запитання.
Основні моменти розділу:
Моделювання предметної області: Описані ключові аспекти
предметної області та можливі елементи моделювання, які
використовуються при розробці.
Формування та аналіз вимог: Сформульовано функціональні та
нефункціональні вимоги до програмного забезпечення, а також вимоги
замовника та розробника.
Проектування логічної структури програмного комплексу: Описані
діаграми класів та пакетів, які представляють логічну структуру системи.
Архітектурне проектування: Описана мікросервісна архітектура
системи, а також компоненти та їхні функції.
Моделювання поведінки системи: Описані діаграми діяльності,
послідовності, комунікації та скінченного автомату, які моделюють
поведінку системи.
Розділ 2 надає детальний опис процесу проектування та розробки
телеграм-бота для абітурієнтів. Цей бот може бути корисним інструментом
для абітурієнтів, які хочуть подати заявку на вступ до університету.
43
3. РОЗДІЛ РОЗРОБКА ТА ТЕСТУВАННЯ ПРОГРАМНОГО
ЗАБЕЗПЕЧЕННЯ
3.1 Розробка програмного комплексу
На даному етапі передбачається вибір програмного середовища,
розробка алгоритмів, та кодування, проектування інтерфейсу користувача,
а також передбачається розробка і реалізація бази даних. Для перевірки
розробленої web-орієнтованої інформаційної системи обласного
стоматологічного відділення на допущені помилки під час розробки у кінці
розділу буде проведено тестування.
3.1.1 Обґрунтування вибору засобів реалізації
Для розробки Телеграм бота «Абітурієнт ЧДТУ» було обрано низку
технологій та інструментів, які забезпечують ефективність,
масштабованість та зручність розробки. Нижче наведено обґрунтування
вибору кожного з використаних засобів реалізації:
Java є однією з найпопулярніших мов програмування завдяки своїй
стабільності, потужності та кросплатформеності.
Spring Boot є провідним фреймворком для створення мікросервісів та
веб-додатків.
Основні залежності Spring Boot:
spring-boot-starter: базова залежність для проектів Spring Boot, яка
включає всі необхідні компоненти для запуску Spring-додатку.
spring-boot-starter-data-jpa: забезпечує інтеграцію з Java Persistence
API (JPA) для роботи з базами даних, спрощує роботу з ORM (Object-
Relational Mapping) та дозволяє легко здійснювати CRUD-операції.
TelegramBots API. Бібліотека org.telegram використовується для
інтеграції з API Telegram. Вона забезпечує: простий та зрозумілий інтерфейс
для створення ботів Telegram, підтримку основних функцій Telegram API,
що дозволяє легко реалізувати необхідний функціонал.
44
База даних MySQL - є популярною реляційною базою даних, яка
забезпечує: Високу продуктивність та надійність, велику кількість
інструментів для адміністрування та моніторингу [26].
Хорошу інтеграцію з Java-додатками через JDBC.
Залежність для MySQL: Mysql - драйвер для підключення Java-
додатків до MySQL бази даних.
Emoji-java. Бібліотека com.vdurmont - використовується для роботи з
емодзі у повідомленнях Telegram. Вона забезпечує: легку та зручну роботу
з емодзі, можливість додавання візуальних елементів до повідомлень для
покращення користувацького досвіду [27].
Jackson. Бібліотека com.fasterxml.jackson.core - використовується для
серіалізації та десеріалізації JSON-даних. Це забезпечує: простий та
швидкий спосіб роботи з JSON, високу продуктивність при обробці великих
обсягів даних [28].
Бібліотека Lombok використовується для зменшення кількості
шаблонного коду. Вона забезпечує:
Генерацію гетерів, сетерів, конструкторів та інших методів під час
компіляції.
Підвищення читабельності та підтримуваності коду.
Для тестування використовуються наступні інструменти:
spring-boot-starter-test: включає набір бібліотек для тестування,
таких як JUnit, Mockito, AssertJ тощо. Забезпечує можливість написання та
виконання тестів для перевірки коректності роботи додатку [29].
3.1.2 Опис структурної (функціональної) схеми
Структурна схема програмної системи «Абітурієнт ЧДТУ» включає
наступні компоненти:
Telegram API: Інтерфейс взаємодії користувача з ботом.
Контролери (Controllers): Обробляють запити користувачів.
Сервіси (Services):
45
Сервіс надання інформації про документи для вступу.
Сервіс реєстрації та управління користувачами.
Сервіс інформації про спеціальності.
Сервіс інформації про факультет та кафедри.
Репозиторії (Repositories): Управління даними.
База даних MySQL: Збереження даних.
Рисунок 3.1 – Графічне зображення структурної схеми
Функціональна схема програмної системи показує взаємодію
компонентів між собою та з зовнішнім середовищем, включаючи
інформаційні потоки, склад даних у потоках і зазначення використовуваних
файлів і пристроїв.
Основні функціональні блоки:
Telegram API: отримання повідомлень від користувачів, надсилання
відповідей користувачам.
Контролери: обробка вхідних повідомлень, виклик відповідних
сервісів.
Сервіси:
46
Admission Document Service: Надання інформації про документи
для вступу.
User Service: Реєстрація користувачів, перевірка та видалення
даних.
Speciality Service: Надання інформації про спеціальності,
включаючи терміни навчання та вартість.
Faculty Service: Інформація про факультет.
Department Service: Інформація про кафедри.
Репозиторії - виконання CRUD-операцій з базою даних.
База даних MySQL:
Збереження даних про документи, користувачів, спеціальності,
факультети та кафедри.
47
Рисунок 3.2 – Графічне зображення функціональної схеми
3.1.3 Опис логічної схеми системи
Загальний опис алгоритму функціонування системи
Старт роботи бота:
1. Підключення до Telegram API.
2. Ініціалізація контролерів, сервісів та підключення до бази даних
MySQL.
3. Бот отримує повідомлення через Telegram API.
4. Повідомлення передаються до контролера для обробки.
5. Контролер визначає тип повідомлення (команда, текст, кнопка).
6. Вибір відповідного сервісу для обробки повідомлення.
7. Виконання відповідної бізнес-логіки:
48
Надання інформації про документи: Запит до бази даних для
отримання інформації про перелік документів.
Реєстрація користувача: Збереження даних користувача у базі
даних.
Перевірка даних користувача: Пошук даних у базі даних.
Видалення даних користувача: Видалення записів з бази даних.
Надання інформації про спеціальності: Запит до бази даних для
отримання переліку спеціальностей, термінів навчання та вартості.
Надання інформації про факультет та кафедри: Запит до бази
даних для отримання інформації про факультет та кафедри.
8. Сервіс формує відповідь залежно від результату обробки.
9. Передача відповіді до контролера.
10. Контролер надсилає відповідь користувачу через Telegram API.
Рисунок 3.3 – Блок-схема загального алгоритму функціонування бота
49
Рисунок 3.4 – Блок-схема алгоритму роботи сервісу реєстрації
користувачів
3.1.4 Розробка бази даних
Невід'ємною частиною чисельної категорії інформаційних систем є
бази даних (БД). База даних є єдиним і великим сховищем даних. Це
сховище визначається один раз, а потім багаторазово (і спільно)
використовується різними користувачами або функціональними частинами
системи. Замість окремих файлів з надлишковими даними всі дані в БД
зібрані разом, з мінімальною часткою надмірності.
Також підключення до БД відбувається за допомогою Spring JPA з
використанням hibernate ORM: Додаток Б
50
Рисунок 3.5 – Структура бази даних
Логічна модель. Основними сутностями є:
Users (Користувачі)
chatId (Primary Key)
username
firstName
lastName
registeredAt
AdmissionDocuments (Документи для вступу)
id (Primary Key)
identificationDocumentCopy
taxpayerIdentificationCopy
specialConditionsDocumentsCopies
militaryRegistrationDocumentCopy
previousEducationDocumentCopy
externalEvaluationCertificate
ukrainianLanguageZNOResults
photographs
51
folderWithFiles
envelopesAndFiles
Specialty (Спеціальності)
id (Primary Key)
code
name
educationalProgram
accreditationDate
tuitionFee
studyDurationMonths
educationLevelId (Foreign Key)
Faculty (Факультети)
id (Primary Key)
name
educationLevels (One-to-Many)
Department (Кафедри)
id (Primary Key)
name
link
description
facultyId (Foreign Key)
Фізична модель:
CREATE TABLE Users (
chatId BIGINT PRIMARY KEY,
username VARCHAR(255),
firstName VARCHAR(255),
lastName VARCHAR(255),
registeredAt TIMESTAMP
);
CREATE TABLE AdmissionDocuments (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
identificationDocumentCopy VARCHAR(255),
52
taxpayerIdentificationCopy VARCHAR(255),
specialConditionsDocumentsCopies VARCHAR(255),
militaryRegistrationDocumentCopy VARCHAR(255),
previousEducationDocumentCopy VARCHAR(255),
externalEvaluationCertificate VARCHAR(255),
ukrainianLanguageZNOResults VARCHAR(255),
photographs VARCHAR(255),
folderWithFiles VARCHAR(255),
envelopesAndFiles VARCHAR(255)
);
CREATE TABLE Specialty (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
code VARCHAR(255),
name VARCHAR(255),
educationalProgram VARCHAR(255),
accreditationDate VARCHAR(255),
tuitionFee DOUBLE,
studyDurationMonths DOUBLE,
educationLevelId BIGINT,
FOREIGN KEY (educationLevelId) REFERENCES EducationLevel(id)
);
CREATE TABLE Faculty (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255)
);
CREATE TABLE Department (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
link VARCHAR(255),
description TEXT,
facultyId BIGINT,
FOREIGN KEY (facultyId) REFERENCES Faculty(id)
);
53
3.1.5 Розробка інтерфейсу користувача
Опис інтерфейсу
Головне меню: Забезпечує доступ до основних функцій системи через
кнопки: «Документи для вступу», «Реєстрація користувача»,
«Спеціальності факультету», «Про факультет», «Перелік кафедр»,
«Допомога», «Перевірка персональних даних», «Видалити персональні
дані».
Рисунок 3.6 – Додаткове меню команд
Реєстрація користувача: Надсилання персональної інформації від
телеграму до бота, а саме: Імя, Прізвище, нікнейм та дату реєстрації.
Рисунок 3.7 – Взаємодія телеграму з даними користувача
Обираємо перелік документів для вступу та отримаємо певні
документи, які потрібно принести в приймальну комісію.
54
Рисунок 3.8 – Перелік документів для вступу
Можемо обрати за рівнем освіти спеціальності, які хочемо
проглянути:
Рисунок 3.9 – Вибір освітнього рівня
Бакалаврський рівень освіти:
55
Рисунок 3.10 – Перелік спеціальностей за Бакалаврським видом
спеціальностей
Обираємо цікаву нам спеціальність для перегляду додаткової
інформації.
Також маємо можливість повернутись назад
Отримуємо всю інформацію, яка наявна про спеціальність.
Рисунок 3.11 – Детальна інформація за спеціальністю 121
Магістерський рівень освіти:
Рисунок 3.12 – Перелік спеціальностей за Магістерським рівнем навчання
56
Повторюємо кроки, як при виборі бакалаврського рівня освіти
Рисунок 3.13 – Деталі магістерського освітнього рівня 121 спеціальності
При натисканні кнопки «Про факультет», отримуємо відповідну
інформацію з посиланням на портал сайту.
Рисунок 3.14 – Інформація про факультет
Меню перелік кафедр, дає можливість проглянути список присутніх
кафедр та інформацію про неї. Також додано посилання на відповідний
ресурс.
Рисунок 3.15 – Перелік кафедр
Обираємо кафедру для детального ознайомлення.
Рисунок 3.16 – Детальна інформація про кафедру
Кнопка «Допомога» надає нам інформацію по командам, якими ми
можемо відтворити основну навігацію.
Рисунок 3.17 – Допомога користувачу в навігації
58
Реєстрація користувача відбувається в декілька кліків. Лише потрібно
підтвердити надсилання персональної інформації про телеграм користувача
боту.
Рисунок 3.18 – Реєстрація користувача з відповідним підтвердженням
Проглянути додаткову інформацію про персональні дані, можна в
відпвоідній кнопці: «Перевірка персональних даних».
Рисунок 3.19 – Персональні дані, які використовує ТГ бот
Також є можливість видалити ці дані.
Рисунок 3.20 – Видалення персональних даних
59
Взаємодія основних даних з системою, які можна оновити з БД, а саме
спеціальності, що дає змогу змінювати дані в майбутньому.
Рисунок 3.21 – speciality.json файл, який інтегрується до БД
Цей файл дає можливість створити певний вид освітнього рівня за
формою навчання.
Рисунок 3.22 – education_levels.json файл
60
3.1.6 Опис розробки програмних компонентів
Розробка програмних компонентів є ключовим етапом створення
сучасних інформаційних систем. У цьому контексті програмні компоненти
виступають як основні модулі та елементи системи, які взаємодіють для
забезпечення її функціональності та ефективності. Для їх створення
необхідно враховувати кілька важливих аспектів.
Перед створенням, потрібно чітко встановити функціональні вимоги
для кожного компонента. Це означає визначення основних задач, які мають
виконувати компоненти, та їх співпрацю для досягнення загальних цілей.
Однією з головних стратегій при створенні програмних компонентів є
застосування об’єктно-орієнтованого програмування. Цей метод дозволяє
симулювати реальні об'єкти та їх співпрацю, роблячи код більш зрозумілим
та легко змінюваним. Кожен компонент представляється в програмному
коді як об'єкт, який має свої властивості та методи [30].
Для ефективного створення програмних компонентів потрібно
створити модульну архітектуру системи. Кожен компонент має виконувати
певні задачі та бути самостійним модулем. Це дозволяє легко розширювати
та модифікувати систему без впливу на інші компоненти.
Модуль спеціальностей (Specialty Module)
Модуль відповідає за управління інформацією про спеціальності,
включаючи їх код, назву, освітню програму, дату акредитації, вартість та
тривалість навчання.
Зв’язки з іншими компонентами: Взаємодіє з модулем факультетів та
рівнів освіти для забезпечення повної інформації про спеціальності.
Особливості реалізації: використання реляційної моделі для
зберігання інформації про спеціальності, зв'язок з рівнями освіти через
анотацію @ManyToOne.
Specialty class (entity)
package com.example.universitytelegrambot.model.faculty;
import jakarta.persistence.*;
61
import lombok.Data;
@Data
@Entity(name = "specialtiesTable")
@Table(name = "specialties_table")
public class Specialty {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "code")
private String code;
@Column(name = "name")
private String name;
@Column(name = "educational_program")
private String educationalProgram;
@Column(name = "accreditation_date")
private String accreditationDate;
@Column(name = "tuition_fee")
private Double tuitionFee;
@Column(name = "study_duration_months")
private Double studyDurationMonths;
@ManyToOne
@JoinColumn(name = "education_level_id", nullable = false)
private EducationLevel educationLevel;
}
SpecialtyRepository Interface
package com.example.universitytelegrambot.model.faculty;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
62
public interface SpecialtyRepository extends JpaRepository<Specialty, Long>
{
@Query("SELECT s from specialtiesTable s where s.educationLevel =
:educationLevelId")
List<Specialty> findByEducationLevel(@Param("educationLevelId")
EducationLevel educationLevelId);
@Query("SELECT s from specialtiesTable s where s.name=:name")
Optional<Specialty> findByName(@Param("name") String name);
@Query("SELECT s FROM specialtiesTable s WHERE s.name = :name")
List<Specialty> findAllByName(@Param("name") String name);
}
SpecialtyService class
package com.example.universitytelegrambot.service;
import com.example.universitytelegrambot.model.faculty.EducationLevel;
import
com.example.universitytelegrambot.model.faculty.EducationLevelRepository;
import com.example.universitytelegrambot.model.faculty.Specialty;
import com.example.universitytelegrambot.model.faculty.SpecialtyRepository;
import com.vdurmont.emoji.EmojiParser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Slf4j
public class SpecialityService {
private final SpecialtyRepository specialtyRepository;
private final EducationLevelRepository educationLevelRepository;
public SpecialityService(SpecialtyRepository specialtyRepository,
EducationLevelRepository educationLevelRepository) {
this.specialtyRepository = specialtyRepository;
this.educationLevelRepository = educationLevelRepository;
}
63
public List<Specialty> getSpecialistsByEducationalLevel(String
educationalLevel, String studyForm) {
EducationLevel educationLevel =
educationLevelRepository.findByEducationalLevelAndStudyForm(educationalLeve
l, studyForm);
return specialtyRepository.findByEducationLevel(educationLevel);
}
public String sendSpecialityMessage(Specialty specialty) {
StringBuilder message = new
StringBuilder(EmojiParser.parseToUnicode(
":mortar_board: <b>Спеціальність: </b>" +
specialty.getCode() + " " + specialty.getName() + "\n" +
":mortar_board:" + "<b>Освітня програма: </b>" +
specialty.getEducationalProgram() + "\n\n"));
List<Specialty> specialities =
specialtyRepository.findAllByName(specialty.getName());
for (Specialty specialty1 : specialities) {
boolean isIdentityEducationLevel =
specialty1.getEducationLevel().getName()
.equals(
specialty.getEducationLevel().getName()
);
if (isIdentityEducationLevel) {
message.append(EmojiParser.parseToUnicode(":information_source:")).append("
<b>Вартість за семестр на ")
.append(specialty1.getEducationLevel().getStudyForm().toUpperCase())
.append(" форма навчання: </b>")
.append(String.format("%.2f",
specialty1.getTuitionFee())).append(" грн.")
.append("\n");
message.append("<b>Тривалість навчання: </b>");
64
if (specialty1.getStudyDurationMonths() == 4) {
message.append(String.format("%.0f",
specialty1.getStudyDurationMonths()))
.append(" - семестри, навчання 3 роки та 10
місяців").append("\n");
} else if (specialty1.getStudyDurationMonths() == 1.5) {
message.append(specialty1.getStudyDurationMonths())
.append(" - семестра, навчання 1 рік та 5
місяців").append("\n");
} else if (specialty1.getStudyDurationMonths() == 2) {
message.append(String.format("%.0f",
specialty1.getStudyDurationMonths()))
.append(" - семестри, навчання 1 рік та 10
місяців").append("\n");
} else if (specialty1.getStudyDurationMonths() == 3) {
message.append(String.format("%.0f",
specialty1.getStudyDurationMonths()))
.append(" - семестри, навчання 2 роки та 10
місяців").append("\n");
} else {
message.append("<b>Тривалість навчання: </b>")
.append("Не зазначина. Потрібно уточнювати на
порталі університету чи зв'язатись з примальною комісєю.")
.append("\n");
}
message.append("<b>Загальна вартість навчання: </b>")
.append(String.format("%.2f",
specialty1.getTuitionFee() * specialty1.getStudyDurationMonths())).append("
грн.")
.append("\n\n");
}
}
message.append(EmojiParser.parseToUnicode(":calendar:" +
"<b>Акредетація до: </b>"))
.append(specialty.getAccreditationDate()).append("\n");
return message.toString();
}
}
Модуль завантаження даних (Data Loader Module)
65
Модуль відповідає за завантаження даних з файлів у систему,
забезпечуючи ініціалізацію та оновлення даних про факультети, рівні
освіти, спеціальності, вступні документи та кафедри.
Зв’язки з іншими компонентами: Взаємодіє з базою даних для
збереження завантажених даних та з іншими модулями для забезпечення
коректності даних.
Особливості реалізації:
Використання бібліотеки Jackson для зчитування JSON файлів.
Обробка винятків для забезпечення стабільності завантаження даних.
Фрагмент коду:
66
3.2 Тестування системи
Для тестування обрано JUnit, що дозволяє проводити модульне та
інтеграційне тестування. Також використовувалися Mockito для імітації
залежностей та Spring Test для інтеграційного тестування.
3.2.1 Модульне тестування
Модульне тестування – це процес перевірки окремих програмних
процедур (модулів) і підпрограм, що входять до складу програми.
Для модуля створення кнопок клавіатури створено такі тести:
@Test
void testGetInlineKeyboardButtons() {
CreateInlineKeyboardButtonProvider provider = new
CreateInlineKeyboardButtonProvider();
// Створення зразка об'єкта Specialty
Specialty specialty = new Specialty();
specialty.setCode("TEST_CODE");
specialty.setEducationalProgram("Test Educational Program");
// Виклик методу
List<InlineKeyboardButton> buttons =
provider.getInlineKeyboardButtons(specialty);
// Перевірки
assertEquals(1, buttons.size());
InlineKeyboardButton button = buttons.get(0);
assertEquals("TEST_CODE Test Educational Program",
button.getText());
}
У цьому прикладі перевіряється, що метод getInlineKeyboardButtons
створює правильну кнопку з текстом, що включає код спеціальності та
освітню програму.
Таблиця 1 - Результати модульного тестування
Модулі Результат
UniversityTelegramBotAppl Успішний запуск
ication class
67
DataLoader class Успішне завантаження даних з файлів
Speciality class Успішне завантаження даних з файлів та
виведено інформацію
3.2.2 Інтеграційне тестування
Інтеграційне тестування проводиться для перевірки спільної роботи
окремих модулів і передує тестуванню всієї системи як єдиного цілого. У
ході інтеграційного тестування перевіряються зв'язки між модулями, їх
сумісність і функціональність.
Для модуля завантаження даних з файлів проведено такі тести:
package com.example.universitytelegrambot.provider;
import com.example.universitytelegrambot.data.DataLoader;
import com.example.universitytelegrambot.service.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.mockito.Mockito.verify;
class DataLoaderProviderTest {
@Mock
private DataLoader dataLoader;
@Mock
private SpecialityService specialityService;
@Mock
private FacultiesService facultiesService;
@Mock
private DepartmentService departmentService;
@Mock
private AdmissionService admissionService;
@Mock
private EducationLevelService educationLevelService;
@InjectMocks
68
private DataLoaderProvider dataLoaderProvider;
@BeforeEach
void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
void testLoadData() {
dataLoaderProvider.loadData();
verify(facultiesService).saveAndUpdateLoadFaculties(dataLoader.loadFacultie
sFromFile("db/faculties.json"));
verify(educationLevelService).loadAndUpdateLoadEducationLevel(dataLoader.lo
adEducationLevelsFromFile("db/education_levels.json"));
verify(specialityService).updateSpecialtiesAndSave(dataLoader.loadSpecialti
esFromFile("db/specialties.json"));
verify(admissionService).setDataToDBFromFileAdmissionDocuments(dataLoader.l
oadAdmissionDocumentsFromFile("db/documents.json"));
verify(departmentService).setDataToDBFromFileDepartment(dataLoader.loadDepa
rtmentFromFile("db/department.json"));
}
}
У цьому прикладі перевіряється взаємодія між модулем завантаження
даних і сервісами, які обробляють ці дані.
Таблиця 2 – Результати інтеграційного тестування
Інтегровані Компоненти Результат
DataLoader + Speciality Успішне завантаження залежностей
DataLoader + EducationLevel Успішне завантаження залежностей
DataLoader + Department Успішне завантаження залежностей
InlineKeyboard + All services Успішне завантаження залежностей
3.2.3 Системне тестування
Система була перевірена на відповідність вимогам та
функціональність. Було підтверджено, що всі компоненти системи
взаємодіють коректно та виконують свої функції належним чином.
Додати більше тестів від А до Я
69
Таблиця 3 - Результати системного тестування
Функціональність/Сценарій Результат
Register module Виконання успішне
KeyboardMarkupProvider Виконання успішне
SpringBootApplication Успішний запуск
LoadData Виконання успішне
3.2.4 Приймальне тестування
Під час приймального тестування проведено оцінку інтерфейсу
системи. Перевірено, що всі команди працюють коректно і видають
інформацію у повному обсязі.
Рисунок 3.23 – Перелік спеціальностей та документів
Рисунок 3.24 – Відповідь на не валідну команду
70
Телеграм-бот «Абітурієнт ЧДТУ» відповідає технічним та
функціональним вимогам, однак для більш зрозумілого та об’ємного
наповнення потрібно внести більше інформації до бази даних.
Система готова вийти в експлуатацію
Таблиця 4 – Результат приймального тестування
Ендпоінт Очікуваний результат
Видалення персональних даних Видаляє
Персональні дані Надано інформацію
Документи для вступу Надано перелік
Спеціальності факультету Надано перелік
Про факультет Надано інформацію
Перелік кафдр Надано перелік
Допомога Надіслана коротка інформація по
користуванню
Реєстрація користувача Зареєстровано
Створення реклами Створено
Надсилання повідомлення всім Надіслано
користувачам
Видалення реклами Видаляє
3.2.5 Висновки до розділу
Проведене тестування системи університетського телеграм-боту
підтвердило, що система відповідає визначеним вимогам і виконує свої
функції коректно. Проведено модульне, інтеграційне, системне та
приймальне тестування, які показали високу якість та надійність
розробленого програмного продукту. Система готова до експлуатації, проте
рекомендується додати більше інформації до бази даних для покращення
користувацького досвіду.
71
3.3 Приклади впровадженого програмного комплексу
Телеграм бот "Абітурієнт ЧДТУ" розроблений для надання
абітурієнтам Черкаського державного технологічного університету (ЧДТУ)
доступу до інформації про навчальні програми, спеціальності, факультети
та інші аспекти університетського життя. Впровадження цього програмного
комплексу є важливим етапом у покращенні комунікації з абітурієнтами та
сприяє їхньому зручному ознайомленню з університетом.
3.4 Висновки до розділу
У третьому розділі було розглянуто процес розробки та тестування
програмного забезпечення, призначеного для телеграм-бота «Абітурієнт
ЧДТУ». Основні досягнення цього розділу включають:
Розробка програмного комплексу:
Було обрано відповідне програмне середовище, включаючи мову
програмування Java та фреймворк Spring Boot.
Розроблено алгоритми та код, спроектовано інтерфейс користувача.
Реалізовано базу даних, що забезпечує збереження та обробку
необхідної інформації для функціонування телеграм-бота.
Тестування системи:
Проведено детальне тестування розробленого програмного
забезпечення для виявлення та усунення помилок.
Використано різні методи тестування, включаючи юніт-тестування та
інтеграційне тестування, що дозволило перевірити коректність роботи всіх
компонентів системи.
Приклади впровадженого програмного комплексу:
Наведено приклади використання телеграм-бота, що демонструють
його функціональність та зручність для користувачів.
Загалом, результати розробки та тестування підтвердили, що
створений телеграм-бот відповідає вимогам замовника та користувачів,
забезпечує надійну та ефективну роботу, а також сприяє полегшенню
процесу вступу до університету для абітурієнтів. Успішне завершення
72
даного етапу розробки є важливим кроком до впровадження та
використання системи в реальних умовах.
73
ВИСНОВКИ
Тема курсової роботи: телеграм бот «Абітурієнт ЧДТУ».
В рамках дипломної роботи "Телеграм бот Абітурієнт ЧДТУ" було
розроблено та реалізовано телеграм-бот, призначений для допомоги
абітурієнтам Черкаського державного технологічного університету (ЧДТУ)
у процесі вступу.
Під час аналізу предметної області висвітлено користь інструмента
для абітурієнтів ЧДТУ, спрямованим полегшити та оптимізувати вступний
процес.
Основна мета проекту полягала у створенні зручного інструменту,
який дозволяє потенційним студентам швидко та легко отримувати
актуальну інформацію про вступ, прелік кафдр та наявні на факультеті
спеціальності та детальна інформація згідно відповідного освітнього рівня.
Розроблений продукт стає важливим кроком у напрямку цифрових
додатків, процесу вступу до ЧДТУ та створює основу для подальшого
розвитку цифрових сервісів університету, що пришвидшує взаємодію та
зв’язок з потенційними абітурієнтами.
74
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1 Абітурієнт [Електронний ресурс]. – Точка доступу: URL:
moyaosvita.com.ua/osvita-2/xto-takij-abituriyent-i-chim-vin-vidriznyayetsya-
vid-studenta/ – Абітурієнт.
2 Вступ до ВНЗ [Електронний ресурс]. – Точка доступу: URL:
mon.gov.ua/ua/news/vstup-2023-10-krokiv-dlya-vstupu-do-zakladu-vishoyi-
osviti-u-2023-roci – Вступ до ВНЗ.
3 Телеграм бот, його можливості [Електронний ресурс]. – Точка
доступу: URL: sendpulse.ua/knowledge-base/chatbot/telegram/create-telegram-
chatbot – Телеграм бот, його можливості.
4 Python-telegram-bot розробка за допомогою Python
[Документація]. – Точка доступу: URL: sendpulse.ua/knowledge-
base/chatbot/telegram/create-telegram-chatbot – Python-telegram-bot розробка
за допомогою Python.
5 Telegraf.js розробка за допомогою JavaScript [Документація]. –
Точка доступу: URL: sendpulse.ua/knowledge-base/chatbot/telegram/create-
telegram-chatbot – Telegraf.js розробка за допомогою JavaScript.
6 Telegram Bots API розробка за допомогою Java [Документація]. –
Точка доступу: URL: github.com/rubenlagus/TelegramBots – Telegram Bots
API розробка за допомогою Java.
7 Natural Language Toolkit [Електронний ресурс]. – Точка доступу:
URL: sendpulse.ua/knowledge-base/chatbot/telegram/create-telegram-chatbot –
NTL.
8 Spacy.io [Електронний ресурс]. – Точка доступу: URL: spacy.io/ –
Spacy.io.
9 Transformers [Електронний ресурс]. – Точка доступу: URL:
huggingface.co/docs/transformers/index – Transformers.
10 Інтеграція Telegram Bot з Google Analytics 4 [Електронний ресурс].
– Точка доступу: URL: apimonster.ru/connector/bundle/telegramBot/ga4/ –
Інтеграція Telegram Bot з Google Analytics 4.
75
11 Створення боту за допомогою Java I part [Електронний ресурс]. –
Точка доступу: URL: javarush.com/ua/groups/posts/uk.2959.stvorjumo-
telegram-bota-z-vikoristannjam-spring-boot – Створення боту за допомогою
Java I part.
12 Створення боту за допомогою Java II part [Електронний ресурс]. –
Точка доступу: URL: javarush.com/ua/groups/posts/uk.2966.stvorjumo-
telegram-bota-z-vikoristannjam-spring-boot-pt2-quiz-bot – Створення боту за
допомогою Java II part.
13 Все про що повинен знати розробник боту [Електронний ресурс].
– Точка доступу: URL: habr.com/ru/articles/543676/ – Все про що повинен
знати розробник боту.
14 НМТ [Електронний ресурс]. – Точка доступу: URL:
testportal.gov.ua/osnovne-pro-nmt/ – НМТ.
15 Чат-бот [Електронний ресур]. – Точка доступу: URL:
https://sendpulse.ua/knowledge-base/chatbot/telegram/create-telegram-chatbot -
Чат-бот.
16 Найчастіше використання [Електронний ресурс]. – Точка доступу:
URL: https://cases.media/article/chat-bot-dlya-pokrashennya-servisu-5-prichin-
chomu-ce-pracyuye - Часте використання
17 Авраменко В.С. Проектування інформаційних систем /
В.С. Авраменко. [Електронне видання]. – Черкаси: ЧНУ ім. Богдана
Хмельницького, 2015. – 496 с.
18 Модель предметної області [Електронний ресурс]. – Точка
доступу URL : https://www.wikidata.uk-
ua.nina.az/%D0%9C%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_%D0%
BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0
%BE%D1%97_%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D
1%96.html - Модель предметної області.
19 Вимоги до програмного забезпечення [Електронний ресурс]. –
Точка доступу URL :
76
https://uk.wikipedia.org/wiki/%D0%92%D0%B8%D0%BC%D0%BE%D0%B3
%D0%B8_%D0%B4%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%
80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D
0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D
0%BD%D0%BD%D1%8F - Вимоги до програмного забезпечення.
20 Абітурієнт [Електронний ресур]. – Точка доступу: URL:
https://osvita.ua/consultations/42954/ - Абітурієнт.
21 Діаграма класів [Електронний документ]. – Точка доступу: URL:
https://eprints.cdu.edu.ua/1464/1/dipl2018.pdf - Діаграма класів.
22 Архітектура програмного забезпечення [Електронний ресур]. –
Точка доступу: URL:
https://uk.wikipedia.org/wiki/%D0%90%D1%80%D1%85%D1%96%D1%82%
D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D1%80
%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B
3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0
%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F - Архітектура
програмного забезпечення.
23 Етап архітектурного проектування [Електронний ресур]. – Точка
доступу: URL: https://gaz.rv.ua/statti/proektni-roboti/proektuvannya/ - Етап
архітектурного проектування.
24 Користування API [Електронний ресур]. – Точка доступу: URL:
https://inbase.com.ua/integracziya-za-dopomogoyu-api-shho-cze-take-yiyi-
funkcziyi-ta-mozhlyvosti-u-produktah-inbase/ - Користування API.
25 Інтеграція чат-бота [Електронний ресур]. – Точка доступу: URL:
https://cluelabs.com/blog/%D1%96%D0%BD%D1%82%D0%B5%D0%B3%D
1%80%D0%B0%D1%86%D1%96%D1%8F-
%D1%87%D0%B0%D1%82%D0%B1%D0%BE%D1%82-
%D1%80%D1%96%D1%88%D0%B5%D0%BD%D1%8C-
%D0%B4%D0%BB%D1%8F-
77
%D0%BF%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0/ -
Інтеграція чат-бота.
26 База даних [Електронний ресур]. – Точка доступу: URL:
https://promoter.net.ua/articles/baza-danix-mysql.html - База даних.
27 Emoji [Електронний ресур]. – Точка доступу: URL:
https://telegram.org/blog/custom-emoji/uk?ln=a - Emoji.
28 Jackson ObjectMapper [Електронний ресур]. – Точка доступу: URL:
https://javarush.com/ua/quests/lectures/ua.jru.module2.lecture31 - Jackson
ObjectMapper.
29 Lombok [Електронний ресур]. – Точка доступу: URL:
https://javarush.com/ua/groups/posts/uk.2753.bbloteka-lombok - Lombok.
30 ООП [Електронний ресур]. – Точка доступу: URL:
https://uk.wikipedia.org/wiki/%D0%9E%D0%B1%27%D1%94%D0%BA%D1
%82%D0%BD%D0%BE-
%D0%BE%D1%80%D1%96%D1%94%D0%BD%D1%82%D0%BE%D0%B2
%D0%B0%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%
80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1
%8F - ООП.
78
ДОДАТОК А
ЗАТВЕРДЖЕНО:
Зав. кафедрою ПЗАС, професор
_________________ Голуб С.В.
„____” ______________ 2024 р.
Телеграм бот «Абітурієнт ЧДТУ»
Специфікація
482. ЧДТУ 24 2247.008
Листів 2
Розробник ________________ Кудь Д.О.
Керівник ________________ Немов Р.Г.
2
2024
Позначення Найменування Примітка
Документація
482.ЧДТУ. 242247 12 01 Текст програми
482.ЧДТУ. 242247 34 01 Інструкція користувачеві
482.ЧДТУ. 242247 90 01 Графічні матеріали
80
ДОДАТОК Б
Телеграм бот «Абітурієнт ЧДТУ»
Текст програми
482.ЧДТУ. 24 2247 12 01
Листів 2
Розробник ________________ Кудь Д.О.
2024
482.ЧДТУ. 24 2247-01 12 01 2
CREATE TABLE Users (
chatId BIGINT PRIMARY KEY,
username VARCHAR(255),
firstName VARCHAR(255),
lastName VARCHAR(255),
registeredAt TIMESTAMP
);
CREATE TABLE AdmissionDocuments (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
identificationDocumentCopy VARCHAR(255),
taxpayerIdentificationCopy VARCHAR(255),
specialConditionsDocumentsCopies VARCHAR(255),
militaryRegistrationDocumentCopy VARCHAR(255),
previousEducationDocumentCopy VARCHAR(255),
externalEvaluationCertificate VARCHAR(255),
ukrainianLanguageZNOResults VARCHAR(255),
photographs VARCHAR(255),
folderWithFiles VARCHAR(255),
envelopesAndFiles VARCHAR(255)
);
CREATE TABLE Specialty (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
code VARCHAR(255),
name VARCHAR(255),
educationalProgram VARCHAR(255),
accreditationDate VARCHAR(255),
tuitionFee DOUBLE,
studyDurationMonths DOUBLE,
educationLevelId BIGINT,
FOREIGN KEY (educationLevelId) REFERENCES EducationLevel(id)
);
CREATE TABLE Faculty (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255)
);
CREATE TABLE Department (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
82
482.ЧДТУ. 24 2247-01 12 01 3
name VARCHAR(255),
link VARCHAR(255),
description TEXT,
facultyId BIGINT,
FOREIGN KEY (facultyId) REFERENCES Faculty(id)
);
Application.properties
#DB related settings
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/tg_bot?useUnicode=true&ch
aracterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.show-sql=true
#hibernate
spring.jpa.properties.hibernate.connection.characterEncoding=utf-8
spring.jpa.properties.hibernate.connection.useUnicode=true
spring.jpa.properties.hibernate.connection.charSet=utf-8
83
ДОДАТОК В
Телеграм бот «Абітурієнт ЧДТУ»
Інструкція користувачеві
482. ЧДТУ 24 2247 34 01
Листів 6
Розробник ________________ Кудь Д.О.
2024
482. ЧДТУ 24 2247-01 34 01 2
С Розглянута програма представляю собою Телеграм бот «Абітурієнт
ЧДТУ».
При запуску бота, ми отримаємо привітальне повідомлення та базову
функцію, яку повинні виконати для старту.
Рисунок В.1 – Повідомлення перед стартом телеграм бота
Далі ми отримаємо привітальне повідомлення з відкриттям меню, для
ознайомлення, що включає весь базовий функціонал.
Рисунок В.2 – Основне меню з привітальним повідомленням
Обираємо перелік документів для вступу та отримаємо певні
документи, які потрібно принести в приймальну комісію.
Рисунок В.3 – Перелік документів для вступу
Можемо обрати за рівнем освіти спеціальності, які хочемо
проглянути:
85
482. ЧДТУ 24 2247-01 34 01 3
Рисунок В. 4 – Вибір освітнього рівня
Бакалаврський рівень освіти:
Рисунок В. 5 – Перелік спеціальностей за Бакалаврським видом
спеціальностей
Обираємо цікаву нам спеціальність для перегляду додаткової
інформації.
Також маємо можливість повернутись назад
86
482. ЧДТУ 24 2247-01 34 01 4
Отримуємо всю інформацію, яка наявна про спеціальність.
Рисунок В.6 – Детальна інформація за спеціальністю 121
Магістерський рівень освіти:
Рисунок В.7 – Перелік спеціальностей за Магістерським рівнем навчання
87
482. ЧДТУ 24 2247-01 34 01 5
Повторюємо кроки, як при виборі бакалаврського рівня освіти
Рисунок В.8 – Деталі магістерського освітнього рівня 121 спеціальності
При натисканні кнопки «Про факультет», отримуємо відповідну
інформацію з посиланням на портал сайту.
Рисунок В.9 – Інформація про факультет
Меню перелік кафедр, дає можливість проглянути список присутніх
кафедр та інформацію про неї. Також додано посилання на відповідний
ресурс.
88
482. ЧДТУ 24 2247-01 34 01 6
Рисунок В.10 – Перелік кафедр
Обираємо кафедру для детального ознайомлення.
Рисунок В.11 – Детальна інформація про кафедру
Кнопка «Допомога» надає нам інформацію по командам, якими ми
можемо відтворити основну навігацію.
Рисунок В.12 – Допомога користувачу в навігації
89
482. ЧДТУ 24 2247-01 34 01 7
Реєстрація користувача відбувається в декілька кліків. Лише потрібно
підтвердити надсилання персональної інформації про телеграм користувача
боту.
Рисунок В.13 – Реєстрація користувача з відповідним підтвердженням
Проглянути додаткову інформацію про персональні дані, можна в
відпвоідній кнопці: «Перевірка персональних даних».
Рисунок В.14 – Персональні дані, які використовує ТГ бот
Також є можливість видалити ці дані.
Рисунок В.15 – Видалення персональних даних
90
ДОДАТОК Г
Телеграм бот «Абітурієнт ЧДТУ»
Графічні матеріали
482.ЧДТУ. 24 2247 90 01
Листів 1
Розробник ________________ Кудь Д.О.
2024
482.ЧДТУ. 24 2247-01 90 01 2
ЗАСОБИ РОБЗРОБКИ
MySQL
Java
SpringBoot
TelegramAPI
Рисунок Г.1 – Засоби розробки
Рисунок Г. 2 – Презентація вступу 1
Рисунок Г. 3 – Презентація вступу 2
92
482.ЧДТУ. 24 2247-01 90 01 3
Рисунок Г. 4 – Первинні та детальні вимоги
Рисунок Г. 5 – Діаграма прецезндентів
93
482.ЧДТУ. 24 2247-01 90 01 4
Рисунок Г. 6 – Проектування логічної структури
Рисунок Г. 7 – Архітектурне проектування
94
482.ЧДТУ. 24 2247-01 90 01 5
Рисунок Г. 8 – Моделювання поведінки системи
Рисунок Г. 9 – Моделювання поведінки системи 2
95
482.ЧДТУ. 24 2247-01 90 01 6
Рисунок Г. 10 – Структурна та функціональна схема
Рисунок Г. 11 – Логічна схема
96
482.ЧДТУ. 24 2247-01 90 01 7
Рисунок Г. 12 – Структура бази даних
Рисунок Г. 13 – Інтерфейс користувача
97
482.ЧДТУ. 24 2247-01 90 01 8
Рисунок Г. 14 – Інтерфейс користувача з запитами
Рисунок Г. 15 – Тестування
98