Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал: https://er.chdtu.edu.ua/handle/ChSTU/8585
Назва: Інтерактивний помічник електронних сервісів
Автори: МИРОНЕЦЬ, Ірина
ОРЛОВСЬКИЙ, Євгеній
Ключові слова: ТЕЛЕГРАМ;ТЕЛЕГРАМ-БОТ;ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ;БАЗА ДАНИХ;АСИСТЕНТ;ІНТЕРАКТИВНИЙ ПОМІЧНИК;ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ;ЕЛЕКТРОННІ СЕРВІСИ;ДЕРЖАВНА КАЗНАЧЕЙСЬКА СЛУЖБА
Дата публікації: 2023
Короткий огляд (реферат): Пояснювальна записка присвячена розробці та реалізації інтерактивного помічника електронних сервісів у вигляді Телеграм-бота для Державної казначейської служби України (ДКСУ). Актуальність роботи полягає в необхідності покращення взаємодії з користувачами електронних сервісів ДКСУ та надання їм швидкого та зручного доступу до необхідної інформації та функціоналу відповідної служби. Метою роботи є створення та реалізація інтерактивного помічника у вигляді Телеграм-бота, який забезпечує користувачів швидким та зручним способом отримати необхідну інформацію та виконати різноманітні операції пов'язані з електронними сервісами ДКСУ. Об'єктом розробки є Телеграм-бот для ДКСУ, який надає користувачам можливість отримувати актуальну інформацію про фінансові процеси, проводити платежі та отримувати консультації з питань, пов'язаних з електронними сервісами ДКСУ. Основними результатами роботи є розробка функціоналу Телеграм- бота, включаючи отримання актуальної інформації, виконання платежів, запити стану рахунків та інші операції. Також були реалізовані механізми захисту та безпеки для забезпечення конфіденційності та цілісності даних користувачів. Практична цінність отриманих результатів полягає в підвищенні якості доступу до електронних сервісів ДКСУ для користувачів, за рахунок скорочення часу обробки запитів. В першому розділі кваліфікаційної роботи досліджено сучасні тенденції в електронних сервісах та проведено аналіз актуальних проблем, що виникають у взаємодії користувачів з електронним сервісом ДКСУ. Другий розділ присвячено вибору способів та технічних засобів для створення та функціонального наповнення Телеграм-бота. У третьому розділі проаналізовано, вивчено та підібрано документацію для використання бібліотек та інструментів, необхідних для реалізації функціоналу Телеграм-бота. У четвертому розділі розроблено функціонал Телеграм-бота, включаючи отримання інформації, виконання платежів та інші операції. П’ятий розділ присвячено розробці механізмів захисту та безпеки для забезпечення конфіденційності та цілісності потенційних користувачів ДКСУ. Отже, результатом проведеної роботи є практичне рішення, відповідно до сучасних потреб, у збільшенні ефективності доступу до електронних сервісів ДКСУ за допомогою інтерактивного Телеграм-бота. Користувачі зможуть швидко та зручно отримувати необхідну інформацію і виконувати різноманітні операції, що зробить використання електронних сервісів ДКСУ більш зручним та ефективним. Загальний обсяг роботи становить 55 сторінок. У роботі 16 рисунків. Для виконання роботи використано 20 літературних джерела.
URI (Уніфікований ідентифікатор ресурсу): https://er.chdtu.edu.ua/handle/ChSTU/8585
Розташовується у зібраннях:123 Комп’ютерна інженерія (Системне програмування)

Файли цього матеріалу:
Файл Опис РозмірФормат 
1_ТИТУЛКА_ОРЛОВСЬКИЙ_Друк-merged.pdf
  Restricted Access
1.37 MBAdobe PDFПереглянути/Відкрити    Запит копії


Усі матеріали в архіві електронних ресурсів захищено авторським правом, усі права збережено.

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи бакалавра
на тему:
«Інтерактивний помічник електронних сервісів»
ЧДТУ.231929.003 ПЗ
Виконав: студент 4 курсу, групи СП-1906
спеціальності 123 – «Комп’ютерна інженерія»
за освітньою програмою – «Системне
програмування»
Євгеній ОРЛОВСЬКИЙ
Керівник
к.т.н., доцент Ірина МИРОНЕЦЬ
Рецензент
ФОП Антон СОБКО
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ______ Володимир РУДНИЦЬКИЙ
Черкаси 2023 року
Форма № Н-9.01
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет: інформаційних технологій і систем
Кафедра: інформаційної безпеки та комп’ютерної інженерії
Освітньо-кваліфікаційний рівень: Бакалавр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Системне програмування
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ________ Володимир РУДНИЦЬКИЙ
«28» лютого 2023 року
ЗАВДАННЯ
на кваліфікаційну роботу бакалавра студенту
Орловському Євгенію Андрійовичу
(прізвище, ім‘я, по батькові)
1. Тема роботи: Інтерактивний помічник електронних сервісів
Керівник роботи: к.т.н., доцент Миронець Ірина Валеріївна
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «24» лютого2023 р. № 43/04
2. Строк подання студентом роботи: 01 червня 2023 року
3. Вихідні дані до роботи:
 середовище розробки – Visual Studio;
 хостинг помічника – Telegra;
 асинхронна робота БОТа;
 швидкість доступу до мережі Internet: не менша 20 Мбіт/с;
 мінімальна кількість користувачів 60 людей.
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить
розробити):
Вступ
1. Сучасні тенденції електронних сервісів: потреба та актуальність.
2. Мова програмування та середовище розробки.
3. Бібліотеки середовища програмування.
4. Розробка програмного продукту (Telegram - BOT)
Висновки.
Список скорочень та умовних позначень.
Список використаних джерел.
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
6. Консультанти розділів роботи:
Розділ Прізвище, ініціали Підпис, дата
консультанта завдання видав завдання прийняв
7. Дата видачі завдання: 27 лютого 2023 року
КАЛЕНДАРНИЙ ПЛАН
№ Термін
з/п Назва етапів роботи виконання Примітка
етапів роботи
1 Збір теоретичного матеріалу. Постановка
задачі, аналіз актуальності розробки. 28.02 – 12.03 виконано
Аналіз вимог та потреб до розробки.
2 Підготовка середовища розробки. Створення 13.03 – 26.03 виконано
списку функціоналу.
3 Вивчення документації бібліотеки Telebot.
Створення головного меню. 27.03 – 09.04 виконано
4 Наповнення програми функціоналом.
Підв’язування функціонала до меню. 10.04 – 23.04 виконано
5 Тестування програми. Усунення багів. 24.04 – 30.04 виконано
6 Додання нового функціоналу для програми.
Повторне тестування програми. 01.05 – 07.05 виконано
7 Оформлення пояснювальної записки 08.05 – 21.05 виконано
8 Попередній розгляд проведеного дослідження 22.05 – 28.05 виконано
9 Подання роботи на відгук та рецензування 29.05 – 31.05 виконано
Студент ___________________________ Євгеній ОРЛОВСЬКИЙ
(підпис)
Керівник роботи ___________________________ Ірина МИРОНЕЦЬ
(підпис)
АНОТАЦІЯ
Пояснювальна записка присвячена розробці та реалізації
інтерактивного помічника електронних сервісів у вигляді Телеграм-бота для
Державної казначейської служби України (ДКСУ).
Актуальність роботи полягає в необхідності покращення взаємодії з
користувачами електронних сервісів ДКСУ та надання їм швидкого та
зручного доступу до необхідної інформації та функціоналу відповідної
служби.
Метою роботи є створення та реалізація інтерактивного помічника у
вигляді Телеграм-бота, який забезпечує користувачів швидким та зручним
способом отримати необхідну інформацію та виконати різноманітні операції
пов'язані з електронними сервісами ДКСУ.
Об'єктом розробки є Телеграм-бот для ДКСУ, який надає користувачам
можливість отримувати актуальну інформацію про фінансові процеси,
проводити платежі та отримувати консультації з питань, пов'язаних з
електронними сервісами ДКСУ.
Основними результатами роботи є розробка функціоналу Телеграм-
бота, включаючи отримання актуальної інформації, виконання платежів,
запити стану рахунків та інші операції. Також були реалізовані механізми
захисту та безпеки для забезпечення конфіденційності та цілісності даних
користувачів.
Практична цінність отриманих результатів полягає в підвищенні якості
доступу до електронних сервісів ДКСУ для користувачів, за рахунок
скорочення часу обробки запитів.
В першому розділі кваліфікаційної роботи досліджено сучасні
тенденції в електронних сервісах та проведено аналіз актуальних проблем,
що виникають у взаємодії користувачів з електронним сервісом ДКСУ.
Другий розділ присвячено вибору способів та технічних засобів для
створення та функціонального наповнення Телеграм-бота.
У третьому розділі проаналізовано, вивчено та підібрано документацію
для використання бібліотек та інструментів, необхідних для реалізації
функціоналу Телеграм-бота.
У четвертому розділі розроблено функціонал Телеграм-бота,
включаючи отримання інформації, виконання платежів та інші операції.
П’ятий розділ присвячено розробці механізмів захисту та безпеки для
забезпечення конфіденційності та цілісності потенційних користувачів
ДКСУ.
Отже, результатом проведеної роботи є практичне рішення, відповідно
до сучасних потреб, у збільшенні ефективності доступу до електронних
сервісів ДКСУ за допомогою інтерактивного Телеграм-бота. Користувачі
зможуть швидко та зручно отримувати необхідну інформацію і виконувати
різноманітні операції, що зробить використання електронних сервісів ДКСУ
більш зручним та ефективним.
Загальний обсяг роботи становить 55 сторінок. У роботі 16 рисунків.
Для виконання роботи використано 20 літературних джерела.
Ключові слова: ТЕЛЕГРАМ, ТЕЛЕГРАМ-БОТ, ПРОГРАМНЕ
ЗАБЕЗПЕЧЕННЯ, БАЗА ДАНИХ, АСИСТЕНТ, ІНТЕРАКТИВНИЙ
ПОМІЧНИК, ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ, ЕЛЕКТРОННІ СЕРВІСИ,
ДЕРЖАВНА КАЗНАЧЕЙСЬКА СЛУЖБА
ANNOTATION
This explanatory note is dedicated to the development and implementation
of an interactive assistant of electronic services in the form of a Telegram bot for
the State Treasury Service of Ukraine (STSU).
The urgency of the work arises when it is necessary to improve the
interaction with the users of the electronic services of the DKSU and provide them
with quick and convenient access to the necessary information and the
functionality of the corresponding service.
The method of operation is the creation and implementation of an interactive
assistant in the Telegram-bot system, which provides users with a quick and
convenient way to obtain the necessary information and perform various
operations related to the electronic services of the DKSU.
The object is the development of a Telegram bot for the DCSU, which
provides users with the opportunity to receive up-to-date information about
financial processes, make payments and receive consultations on issues related to
the electronic services of the DCSU.
The main results of the work are the development of the functionality of the
Telegram bot, including obtaining up-to-date information, making payments,
requesting account status and other operations. Protection and security mechanisms
have also been implemented to ensure the confidentiality and integrity of user data.
The practical value of the obtained results leads to an increase in the quality
of access to the electronic services of the DKSU for users, due to a reduction in the
time of processing requests.
In the first section of the qualification work, modern trends in electronic
services were investigated and an analysis of current problems, which are
supported in the interaction of users with the electronic service of the DKSU, was
carried out.
The second section is devoted to the selection of methods and technical
means for the creation and functional filling of the Telegram bot.
In the third section, the document was analyzed, derived and selected for the
use of libraries and tools, most of them for the implementation of Telegram-bot
functionality.
In the fourth section, a functional Telegram bot is developed, which includes
receiving information, making payments and other operations.
The fifth section focuses on the development of protection and security
mechanisms to ensure the confidentiality and integrity of DKSU users.
So, the result of the work is a practical solution that meets modern needs,
facilitating the improvement of the efficiency of access to the electronic services of
the DKSU with the help of an interactive Telegram bot. Users can quickly and
conveniently receive the necessary information and perform a variety of operations
that will make the use of electronic services of the DKSU more convenient and
efficient.
The total volume of work is 55 pages. There are 16 drawings in the work. 20
literary sources were used to perform the work.
Key words: TELEGRAM, TELEGRAM-BOT, SOFTWARE, DATABASE,
ASSISTANT, INTERACTIVE ASSISTANT, INFORMATION TECHNOLOGY,
ELECTRONIC SERVICES, STATE TREASURY SERVICE
ЗМІСТ
ВСТУП.....................................................................................................................3
РОЗДІЛ 1 СУЧАСНІ ТЕНДЕНЦІЇ ЕЛЕКТРОННИХ СЕРВІСІВ:
ПОТРЕБА ТА АКТУАЛЬНІСТЬ .......................................................................5
1.1 Актуалізація ідеї....................................................................................5
1.2 Покращення взаємодії з клієнтами....................................................6
РОЗДІЛ 2 МОВА ПРОГРАМУВАННЯ ТА СЕРЕДОВИЩЕ РОЗРОБКИ
.................................................................................................................................10
2.1 Вибір мови програмування ...............................................................10
2.2 Вибір середовища розробки...............................................................11
РОЗДІЛ 3 БІБЛІОТЕКИ СЕРЕДОВИЩА ПРОГРАМУВАННЯ...............12
3.1 Ознайомлення з документацією бібліотек......................................12
3.2 Ознайомлення з офіційною документацією Telegram..................14
РОЗДІЛ 4 РОЗРОБКА ПРОГРАМНОГО ПРОДУКТУ (TELEGRAM-
БОТ)...16
4.1 Схематичне відтворення принципу роботи БОТа........................16
4.2 Розробка головного меню ..................................................................18
4.3 Створення функціоналу відповідно до меню.................................24
4.4 Створення бази даних.........................................................................34
4.5 Створення захисту. ............................................................................. 38
4.6 Асинхронність БОТа. ......................................................................... 43
4.7 Тестування БОТа. ...............................................................................45
4.8 Наповнення функціоналу для програми ........................................49
ВИСНОВКИ ......................................................................................................... 51
СПИСОК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ ............................52
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛЧ...Д....Т..У.......2..3..1...9..2..9.....0..0..3....П...З................54
Змн. Арк. № докум. Підпис Дат
РозрКобив Орловський Є.А а Інтерактивний Літ. Лист Листів
Керівник Миронець І.В 2 55
Рецеанзент Собко А.В. помічник
Н.Контроль Гресько С.О. електронних сервісів Кафедра ІБ та КІ
Затвфердив Рудницький Пояснювальна записка гр. СП-1906
е В.М.
д
р
а
К
К
-
0
6
ВСТУП
У даному дослідженні розглядається процес розробки телеграм-бота з
метою підвищення ефективності взаємодії електронного сервісу Державної
казначейської служби України з потенційними клієнтами. Перед початком
розробки було проведено аналіз існуючих аналогів відповідного програмного
забезпечення та рівень актуальності обраної тематики дослідження.
Для розробки програмного продукту було необхідно обрати технічні
засоби, зокрема – мову програмування та середовище розробки. Вибір мови
програмування залежав від висунутих вимог до проєкту, а також від його
масштабу та складності. Вибір середовища розробки здійснювався з
урахуванням зручності, наявності необхідних інструментів та підтримки
спільноти розробників.
Перед початком розробки програмного продукту, було проведено
ознайомлення з офіційною документацією бібліотек, які будуть використані
при створенні бота, щоб належним чином використовувати їх функціонал.
Сам процес розробки телеграм-бота включав кілька етапів. Перш за
все, була розроблена блок-схема принципу роботи бота, яка визначала
послідовність дій та функціонал. Далі, було розроблено головне меню бота,
яке включало основні опції та команди для користувачів.
На наступному етапі було створено функціонал відповідно до меню. Це
означало – написання коду, який реалізував бажані функції та дії бота. Крім
того, була створена база даних для зберігання інформації, необхідної для
роботи бота.
Окрема увага приділялась захисту програми. Були використані методи
шифрування та автентифікації для захисту конфіденційної інформації та
запобігання несанкціонованому доступу до неї.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 3
а
Оскільки телеграм-боти працюють в асинхронному режимі, було
необхідно забезпечити відповідну асинхронність бота. Це дозволило
оптимізувати роботу програми та підвищити її продуктивність.
Наприкінці розробки було проведене тестування бота, щоб перевірити
його функціональність та відповідність вимогам. Тестування дозволило
виявити та виправити можливі помилки та проблеми.
У цьому дослідженні будуть розглянуті деталі кожного етапу розробки
Telegram-бота, його функціоналу, безпеки та тестування. Всі ці етапи мають
на меті створення ефективного та зручного бота для покращення взаємодії з
клієнтами.
Отже, метою даної кваліфікаційної роботи є створення та реалізація
інтерактивного помічника у вигляді Телеграм-бота, який забезпечує
користувачів швидким та зручним способом отримати необхідну інформацію
та виконати різноманітні операції пов'язані з електронними сервісами ДКСУ.
У ході роботи було поставлено та вирішено наступні завдання:
 провести огляд сучасних проблем в електронних сервісах та
аналіз актуальних запитів, що виникають у взаємодії користувачів з
електронним сервісом ДКСУ;
 розробити та реалізувати інтерактивний помічник електронних
сервісів у вигляді Телеграм-бота для Державної казначейської служби
України;
 спроектувати механізм захисту та безпеки для забезпечення
конфіденційності та цілісності даних потенційних користувачів ДКСУ;
 оцінити ефективність роботи створеного інтерактивного
помічника (телеграм-бота).
Практична цінність отриманих результатів полягає в підвищенні якості
доступу до електронних сервісів ДКСУ для користувачів, за рахунок
скорочення часу обробки запитів.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 4
а
РОЗДІЛ 1
СУЧАСНІ ТЕНДЕНЦІЇ ЕЛЕКТРОННИХ СЕРВІСІВ:
ПОТРЕБА ТА АКТУАЛЬНІСТЬ
1.1 Актуалізація ідеї
У 2020 році світ був змінений невидимим ворогом, яким став
коронавірус, «COVID-19». Ця глобальна пандемія примусила багатьох людей
кардинально переглянути свій підхід до роботи та виконувати свої
зобов’язання віддалено, тобто онлайн. У той час, коли безпека та здоров'я
стали найвищим пріоритетом, дистанційна робота стала необхідним
інструментом для забезпечення продуктивності і збереження зв'язків у
професійному середовищі.[1]
Пандемія «COVID-19» стала каталізатором для швидкого розвитку
роботи та навчання з дому. Технології, такі як відеоконференції, хмарні
сервіси та спільні робочі платформи, наприклад «github», дозволили людям
зберігати комунікацію та продовжувати виконувати свої робочі обов'язки з
точки зору безпеки власного дому. Віддалена робота забезпечила можливість
підтримувати бізнеси та організації, дозволяючи їм тримати рух та
функціонувати навіть у надзвичайних обставинах.
Однак, крім пандемії, Україна зіткнулася з іншим важливим викликом
– війною в 2022 році. Війна привела до масового переселення, руйнування
інфраструктури, особливо тієї, яка забезпечувала безперебійним доступом до
робочих систем. У таких умовах дистанційна робота стала ще більш
важливою, не тільки для збереження здоров'я, а й для забезпечення безпеки
працівників та збереження функціонування бізнесів. Адже одна частина
населення вимушена була іммігрувати в інші країни, а інша – залишатись
вдома задля своєї безпеки.
Завдяки розвитку технологій, війна не стала перешкодою для
здійснення роботи з віддалених місць. Відеозв'язок, електронна пошта,
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 5
а
хмарні сервіси та інші інструменти забезпечили не лише спілкування людей,
а й дозволили спільно працювати, незалежно від фізичної відстані. Це
забезпечило продовження діяльності організацій, навіть якщо працівники
перебували у зоні конфлікту або були евакуйовані до безпечних місць.
Саме тому актуальність телеграм-бота стала пріоритетом в роботі
Державної Казначейської Служби України (ДКСУ). Всі клієнти, які
обслуговуються ДКСУ, тепер не повинні особисто приходити в офіс для
отримання документів, нормативно-правових актів, електронних ключів,
тощо. Вони можуть все це зробити швидко та просто – обрати потрібну
послугу в телеграм-боті і відразу отримати бажану інформацію. Також
важливо враховувати, що існує відсоток клієнтів, які працюють в інших
країнах, з іншими часовими поясами, що робить неможливим офіційне
звернення в робочий час ДКСУ.
1.2 Покращення взаємодії з клієнтами
Державна казначейська служба України в останні роки активно
впроваджує нові технології та інноваційні підходи з метою поліпшення
взаємодії зі своїми клієнтами. Одним з таких революційних кроків стало
впровадження інтерактивного помічника електронних сервісів, який працює
постійно та надає послуги, відповідно до роботи казначейства.
Інтерактивний помічник електронних сервісів є інтелектуальною
системою, заснованою на базі Telegram API , яка забезпечує клієнтам
Державної казначейської служби зручну та ефективну взаємодію. Він
створений з метою спростити процеси обслуговування, надати швидку та
точну інформацію, а також забезпечити доступ до різноманітних сервісів,
пов'язаних з казначейством.
Основна перевага інтерактивного помічника полягає у тому, що він
працює постійно і доступний для клієнтів в будь-який зручний для них час.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 6
а
Клієнти можуть отримати допомогу, задати питання або отримати
необхідну інформацію через інтерактивну систему в режимі реального часу.
Вона вміє розпізнавати запити, аналізувати інформацію та надавати
конкретні відповіді, враховуючи особливості казначейства.
Інтерактивний помічник електронних сервісів надає широкий спектр
послуг, пов'язаних з казначейством. Він може допомогти клієнтам з
питаннями щодо електронних платежів, управління рахунками, отримання
звітності та інших фінансових операцій. Крім того, він може надати клієнтам
актуальну інформацію про законодавство та правила, пов'язані з
казначейським обліком і фінансовими процедурами.
Завдяки інтерактивному помічнику електронних сервісів, клієнти
ДКСУ мають можливість отримувати оперативну та професійну підтримку.
Вони можуть розраховувати на точну інформацію, вирішення своїх питань та
отримання послуг відповідно до вимог казначейства, тому що вона
оновлюється своєчасно відповідальною особою. Це забезпечує більш
ефективне та зручне спілкування між службою та клієнтами.
У результаті впровадження інтерактивного помічника електронних
сервісів ДКСУ покращила свою взаємодію з клієнтами. Цей інноваційний
підхід допомагає забезпечити якісне обслуговування, прискорити процеси та
забезпечити високу ступінь задоволеності клієнтів. В результаті, співпраця
між ДКСУ та її клієнтами стала більш ефективною та прозорою, сприяючи
розвитку та модернізації фінансової сфери України.
На додаток до інтерактивного помічника електронних сервісів, ДКСУ
також розглядає телеграм-бот як оптимальне та сучасне рішення для
поліпшення взаємодії з клієнтами в галузі казначейства. Телеграм-бот
забезпечує зручний та швидкий доступ до інформації та послуг, що
стосуються фінансових операцій та обліку.[2]
Одним з головних плюсів використання телеграм-бота є його
доступність та готовність відповідати на запитання цілодобово. Клієнти
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 7
а
можуть звертатися до бота в будь-який час доби та отримувати швидкі й
точні відповіді на свої питання. Це значно збільшує рівень зручності та
задоволення клієнтів, особливо в умовах вимогливого графіка та розподілу
робочого часу.
Телеграм-бот також відкриває можливості для автоматизації процесів і
зменшення людського впливу на обробку запитів. Він здатен розпізнавати та
обробляти повторювані запити, надавати швидкі стандартні відповіді та
допомагати клієнтам у виконанні певних фінансових операцій. Це дозволяє
звільнити ресурси та зосередитися на складніших завданнях, що вимагають
людської експертизи.
Однак, наявність телеграм-бота також має свої мінуси. Оскільки, це
автоматизована система, вона може бути обмежена у відповідях на складні та
нестандартні запитання. Іноді клієнти можуть потребувати особистої
консультації або деталізації певної інформації, яку бот не може надати.
Також, важливо пам'ятати про можливість технічних помилок та збоїв, які
можуть виникнути в роботі бота.
Остаточний вибір використання телеграм-бота залежить від потреб та
вимог ДКСУ та її клієнтів. Враховуючи плюси та мінуси цього рішення,
важливо знайти оптимальну комбінацію між автоматизованими технологіями
та людським фактором, щоб забезпечити максимальну якість обслуговування
та задоволення потреб клієнтів ДКСУ.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 8
а
РОЗДІЛ 2
МОВА ПРОГРАМУВАННЯ ТА СЕРЕДОВИЩЕ РОЗРОБКИ
2.1 Вибір мови програмування
До вибору мови програмування треба було поставитись дуже
відповідально та обережно. Які причини цьому слугували?
1. Мова програмування повинна була підтримувати Telegram API.
2. Мова повинна бути адаптивна та швидко опрацьовувати дані, які
надходять.
3. На цю мову повинна бути більша кількість бібліотек яка може
бути задіяна в обробці даних.
Провівши повноцінний аналіз, отримуємо результати, представлені на
рисунку 2.1.
Рисунок 2.1 – Таблиця порівняння мов програмування
Однозначно мова Python краще підходить для розробки нашого
телеграм-бота. Переваги вона має за різними показниками.
При розробці телеграм-бота, який виступатиме в якості інтерактивного
помічника електронних сервісів у Державній Казначейській Службі України
(ДКСУ), було вирішено обрати мову програмування Python. Цей вибір був
обґрунтований кількома факторами, які роблять Python ідеальним варіантом
для реалізації даного проєкту.
По-перше, Python є однією з найпопулярніших мов програмування,
особливо в сфері розробки веб-додатків та ботів. Він має велику спільноту
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 9
а
розробників, що означає наявність широкого спектру ресурсів, документації
та підтримки. Це дозволить забезпечити стабільну роботу та ефективне
використання технології в довгостроковій перспективі.[3-7]
По-друге, Python має простий та зрозумілий синтаксис, що робить його
дуже доступним, навіть, для початківців у програмуванні. Це дозволить
швидко навчити розробників, які вже мають базові знання з Python,
працювати з телеграм-ботом та розширювати його функціонал. Крім того,
зрозумілість коду сприяє його легкому супроводженню та вдосконаленню в
майбутньому.
По-третє, Python має багату екосистему бібліотек та модулів, що
сприяють швидкому розробленню різноманітних функціональностей.
Наприклад, для створення телеграм-бота використовують популярну
бібліотеку, таку як telebot, яка надає потужні інструменти для взаємодії з
Telegram API та забезпечення багаторівневої функціональності.
В четверте, Python дуже швидко обробляє вхідні дані. Починаючи від
0.01 мілісекунди.
Крім того, Python підтримує асинхронне програмування, що дозволяє
боту ефективно обробляти багатопотокові запити та взаємодіяти з багатьма
користувачами одночасно. Це особливо важливо для інтерактивного
помічника, який повинен бути доступним та оперативно реагувати на запити
клієнтів.
У підсумку, вибір мови програмування Python для розробки телеграм-
бота в ДКСУ був обґрунтований його популярністю, простотою синтаксису,
наявністю розширеної екосистеми та підтримкою асинхронного
програмування. Всі ці фактори забезпечують швидкий розвиток та ефективну
роботу бота, що сприяє покращенню взаємодії Державної Казначейської
Служби України з клієнтами та наданню якісних послуг згідно з принципами
казначейства.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 10
а
2.2 Вибір середовища розробки
При створенні телеграм-бота, який буде використовуватися як
інтерактивний помічник електронних сервісів в Державній Казначейській
Службі України, було прийняте рішення обрати Visual Studio Code (VS Code)
як середовище розробки. Цей вибір був зумовлений кількома факторами, які
роблять VS Code ідеальним інструментом для втілення даного проєкту.
По-перше, Visual Studio Code є одним з найпопулярніших та потужних
текстових редакторів, спеціально призначених для розробки програмного
забезпечення. Він має велику спільноту розробників, широку підтримку та
активне розвиток, що робить його надійним інструментом для роботи над
проєктами будь-якої складності.
По-друге, VS Code має розширений набір функцій та плагінів, що
дозволяють розробникам розширювати його функціональність. Це дозволяє
легко налаштувати редактор під конкретні потреби проєкту, включаючи
підтримку мови програмування Python, що використовується для створення
телеграм-бота. Засоби автодоповнення, перевірка синтаксису та інші функції
допомагають покращити продуктивність та якість коду.
По-третє, VS Code має інтеграцію з системами контролю версій,
такими як Git, що полегшує спільну роботу над проектом, забезпечує
відстеження змін та дозволяє команді розробників ефективно співпрацювати.
Крім того, VS Code працює на різних операційних системах, що
дозволяє розробникам працювати у зручному для них середовищі. Його
легкість використання та дружній інтерфейс роблять його привабливим
вибором для розробки телеграм-бота.
Варто відзначити, що вибір середовища розробки є індивідуальним і
залежить від особистих вподобань та потреб розробників. Однак, Visual
Studio Code здатний задовольнити потреби проєкту і надати ефективні
інструменти для розробки та підтримки телеграм-бота як інтерактивного
помічника електронних сервісів в ДКСУ.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 11
а
РОЗДІЛ 3
БІБЛІОТЕКИ СЕРЕДОВИЩА ПРОГРАМУВАННЯ
3.1 Ознайомлення з документацією бібліотек
Ознайомлення з офіційною документацією бібліотек для написання
інтерактивного помічника, а саме телеграм-бота на мові програмування
Python, є важливим етапом для успішної розробки цього виду програмного
забезпечення. Існує кілька популярних бібліотек, які дозволяють створювати
потужні та гнучкі телеграм-боти з великим набором функціональних
можливостей.
Однією з найбільш популярних бібліотек для створення телеграм-ботів
на Python є pyTelegramBotAPI. Ця бібліотека забезпечує простий та зручний
інтерфейс для роботи з Телеграм API і надає розширені можливості для
створення взаємодії з користувачами. Офіційна документація python-
telegram-bot містить детальні пояснення та приклади використання різних
функцій і методів бібліотеки, що допомагає розробникам швидко освоїти цей
інструмент.[8-10]
У документації можна знайти такі розділи:
1. Вступ. Цей розділ містить загальну інформацію про бібліотеку, її
функціональні можливості, підтримувані версії Python та посилання на
джерела інформації.
2. Встановлення та початок роботи. У цьому розділі надається
інструкція з встановлення бібліотеки та початку роботи з нею. Він включає
опис структури проєкту, налаштування середовища та інструкції з отримання
токену бота.
3. Основні поняття. Цей розділ пояснює основні поняття, такі як
клас telegram.Bot, повідомлення, клавіатура, розмітка та інші елементи, які
використовуються при роботі з бібліотекою.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 12
а
4. Робота з повідомленнями. В даному розділі описано, як
обробляти різні типи повідомлень, зчитувати та відправляти текстові
повідомлення, стікери, фотографії, відео тощо. Також надаються приклади
коду для кожного типу повідомлення.
5. Взаємодія з клавіатурою. У цьому розділі пояснюється, як
створювати та використовувати клавіатури для інтерактивної взаємодії з
користувачами. Описується використання клавіш, відповідей з певними
діями та інші можливості.
6. Обробка подій. В даному розділі пояснюється, як обробляти різні
події, такі як нові повідомлення, запити від користувачів, зміна статусу
користувача тощо. Надаються приклади коду для обробки кожної події.
7. Додаткові можливості. У цьому розділі наведено інформацію
про додаткові можливості бібліотеки, такі як робота з файлами, аудіо, відео,
розсилки повідомлень, робота зі списками користувачів тощо.
8. Часті питання та проблеми. В даному розділі наведені відповіді
на поширені запитання та вирішення поширених проблем, з якими
розробники можуть зіткнутися під час використання бібліотеки.
Документація pyTelegramBotAPI добре організована і містить багато
прикладів коду, що полегшує розуміння основних концепцій та швидкий
початок роботи. Розробники можуть швидко знайти необхідну інформацію та
отримати підтримку у вирішенні питань та проблем, пов'язаних з
використанням бібліотеки.
При виборі бібліотеки для розробки телеграм-бота важливо
враховувати функціональні вимоги проєкту, рівень складності інтерфейсу,
швидкість реакції, наявність додаткових можливостей та підтримку
спільноти розробників. Крім того, вивчення офіційної документації
бібліотеки є важливим кроком для розуміння основних концепцій та
принципів роботи з нею.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 13
а
В цьому контексті, ознайомлення з офіційною документацією бібліотек
для написання телеграм-ботів на Python стає вирішальним для ефективної
розробки та підтримки інтерактивного помічника електронних сервісів в
Державній Казначейській Службі України.
3.2 Ознайомлення з офіційною документацією Telegram
Ознайомлення з офіційною документацією Telegram та Telegram API є
важливим кроком для розробників, які планують створювати додатки та
сервіси, що використовують можливості Telegram-платформи.
Офіційна документація Telegram надає широкий огляд функціональних
можливостей та інструментів, доступних розробникам. У ній ви знайдете такі
ключові розділи:
1. Загальний опис. Документація починається зі загального опису
Telegram та його основних характеристик. Ви дізнаєтеся про засоби
комунікації, які Telegram надає, такі як особисті та групові чати, канали, боти
тощо.
2. Основні концепції. У цьому розділі описуються основні концепції
Telegram, такі як користувачі, повідомлення, медіафайли, клавіатури та інші
елементи взаємодії з платформою.
3. Telegram API. Цей розділ детально описує Telegram API, який
розробники можуть використовувати для створення своїх додатків та
сервісів. Ви дізнаєтеся про методи, параметри та відповіді API, а також про
автентифікацію та безпеку.
4. Робота з ботами. У цьому розділі розглядається створення та
використання ботів в Telegram. Ви дізнаєтеся, як створити бота, налаштувати
його функціональні можливості, взаємодіяти з користувачами та багато
іншого.
5. Додаткові можливості. Цей розділ присвячений додатковим
можливостям Telegram, таким як групові обговорення, канали, розсилки
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 14
а
повідомлень, сповіщення, виклики та інші функції, які можуть бути
корисними при розробці додатків.
6. Налаштування та підтримка. У останньому розділі документації
надаються поради щодо налаштування та оптимізації додатків, а також
ресурси для отримання підтримки та вирішення проблем.
Ознайомлення з офіційною документацією Telegram API дає
розробникам глибше розуміння того, як працює платформа та як
використовувати її можливості для створення потужних додатків. Вона
містить інформацію про різні методи API, їх параметри, формати даних та
відповіді, а також приклади коду для демонстрації використання API в
реальних сценаріях.
Крім того, офіційна документація Telegram API надає інструкції щодо
налаштування ботів, забезпечення безпеки та автентифікації, керування
доступами та інші корисні поради для розробників.
В підсумку, ознайомлення з офіційною документацією Telegram та
Telegram API є важливим кроком для успішної розробки додатків та сервісів,
що використовують можливості Telegram платформи. Це дозволяє
розробникам глибше розуміти функціонал платформи та ефективно
використовувати його для створення потужних та інноваційних рішень.[11-
14]
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 15
а
РОЗДІЛ 4
РОЗРОБКА ПРОГРАМНОГО ПРОДУКТУ (TELEGRAM-БОТ)
4.1 Схематичне відтворення принципу роботи БОТа.
Схематичний принцип роботи телеграм-бота представлено на
рисунку 4.1.
Рисунок 4.1 – Схема ідеї роботи телеграм-бота
Логіка та принцип роботи телеграм бота:
1. Клієнт заходить в діалог з асистентом.
2. Клієнт пише запит, який його цікавить боту
3. Бот опрацьовує запит клієнта.
4. Бот надсилає відповідь на запит клієнта.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 16
а
Рисунок 4.2 – Поглиблена схема роботи бота:
На рисунку 4.2 зазначено детальнішу роботу бота з клієнтом.
1. Клієнт заходить в діалог з асистентом.
2. Клієнт обирає потрібний пункт в мен.
3. Клієнт пише запит відповідно до меню.
4. Бот відповідає про статус запиту.
5. Бот опрацьовує запит клієнта.
6. Бот відповідає клієнту на запит.
7. Бот надсилає файли, документи на запит клієнта.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 17
а
Рисунок 4.3 – Схематичне відтворення взаємодії бота з клієнтом
1. Адмінстратор вносить інформаційне повідомлення в БОТа.
2. БОТ надсилає інформаційне повідомлення клієнту.
3. Клієнт заходить в чат з ботом.
4. Клієнт отримує інформативне повідомлення.
4.2 Розробка головного меню
Розробка головного меню для телеграм-бота є важливою складовою
процесу створення інтерактивного помічника для Державної Казначейської
Служби України. Головне меню є інтерфейсом, через який користувачі
зможуть взаємодіяти з ботом та отримувати потрібну інформацію або
послуги. Розглянемо процес розробки головного меню та його ключові
аспекти.
Перш за все, розробка головного меню потребує чіткого розуміння
потреб та вимог користувачів. Важливо визначити основні функції та
можливості, які бот має надавати. Наприклад, це може бути отримання
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 18
а
інформації про казначейство, виконання операцій з рахунками, отримання
звітів тощо. Аналізуючи ці потреби, можна створити список пунктів
головного меню, які будуть відображати основні опції та функції бота.
Для розробки головного меню необхідно використовувати зручні та
ефективні інструменти програмування. У випадку розробки телеграм-бота на
мові програмування Python, можна скористатись бібліотекою
pyTelegramBotAPI, яка надає зручний інтерфейс для взаємодії з Telegram API.
За допомогою цієї бібліотеки можна створити основну структуру бота,
включаючи головне меню.[15-17]
Головне меню може бути реалізоване у вигляді кнопок, які користувач
може натискати для вибору потрібного пункту. Кожна кнопка відповідає
певній опції або функції бота. При натисканні на кнопку, бот може
виконувати відповідну дію, наприклад, надсилати повідомлення з
інформацією або запускати певний процес обробки даних.
Важливо також забезпечити логічну організацію головного меню,
розміщуючи кнопки в зручному порядку та групуючи їх за функціональними
або тематичними категоріями. Це сприятиме зрозумілості та зручності
використання бота користувачами, що є важливим аспектом.
Під час розробки головного меню можна використовувати інші
елементи взаємодії, крім кнопок. Наприклад, це можуть бути текстові
команди, які користувач може вводити для активації певної функції бота.
Такі команди можуть бути зручними для користувачів, які володіють
певними навичками або впевненіше використовують текстові введення.
Необхідно також враховувати можливості для подальшого розширення
головного меню.
Залежно від потреб та розвитку сервісу, можуть з'являтися нові
функції, які необхідно буде додати до головного меню. Тому варто
забезпечити гнучкість і легкість розширення.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 19
а
Загалом, розробка головного меню для телеграм-бота, що виступає як
інтерактивний помічник електронних сервісів в Державній Казначейській
Службі України, є важливим етапом. Правильно структуроване та зручне
головне меню (рис. 4.4) сприятиме зручності використання бота
користувачами та поліпшить їх взаємодію з сервісом ДКСУ.
Рисунок 4.4 – Головне меню телеграм-бота
Головне меню телеграм бота у вигляди написаного програмного коду:
# START BUTTON:
@bot.message_handler(commands=['start'])
def welcome(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard= True, row_width= 2)
takeFPO = types.KeyboardButton('Отримати файл FPO') # button 1
takeKEP = types.KeyboardButton('Генерація КЕП') # button 2
importFiles = types.KeyboardButton('Файли імпорту') # button 3
systemSDO = types.KeyboardButton('Система СДО')
takeQuestion = types.KeyboardButton('Потрібна допомога')
markup.add(takeFPO, takeKEP, importFiles, systemSDO, takeQuestion)
bot.send_message(message.chat.id, f'Вітаю, {message.from_user.first_name},
оберіть будь ласка послугу.', reply_markup=markup, parse_mode='html')
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 20
а
# MENU BUTTONS:
@bot.message_handler(content_types=['text'])
def bot_take_message(message):
if message.text == 'Отримати файл FPO':
markup = types.ReplyKeyboardMarkup(resize_keyboard = True,
row_width = 2) # Змінна яка задає параметри майбутніх кнопок.
localBudget = types.KeyboardButton('Місцевий бюджет') # button 2
stateBudget = types.KeyboardButton('Державний бюджет') # button 3
backToMenu = types.KeyboardButton('В головне меню') # button 4
markup.add(localBudget, stateBudget, backToMenu)
# Присвоєння кнопок до змінної.
bot.send_message(message.chat.id, f'{message.from_user.first_name},
оберіть бюджет, будь ласка,', reply_markup = markup , parse_mode='html')
# bot.register_next_step_handler(FPOmsg, FPO_buttons)
elif message.text == 'Файли імпорту':
markup = types.ReplyKeyboardMarkup(resize_keyboard = True,
row_width = 2) # Змінна яка задає параметри майбутніх кнопок.
scructImport = types.KeyboardButton('Структура файлів імпорту')
# button 2
backToMenu = types.KeyboardButton('В головне меню')
markup.add(scructImport, backToMenu)
# Присвоєння кнопок до змінної.
bot.send_message(message.chat.id, f'{message.from_user.first_name},
оберіть бюджет, будь ласка,', reply_markup = markup , parse_mode='html')
elif message.text == 'Система СДО':
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 21
а
markup = types.ReplyKeyboardMarkup(resize_keyboard = True,
row_width = 2) # Змінна яка задає параметри майбутніх кнопок.
dogovirSDO = types.KeyboardButton('Договір СДО') # button 2
connectToSDO = types.KeyboardButton('Заява про підключення клієнта
до СДО') # button 3
giveAccsesToSDO = types.KeyboardButton('Заявка про надання доступу
до СДО.docx') # button 4
removeSDO = types.KeyboardButton('Заявка про скасування доступу до
СДО.docx') # button 5
backToMenu = types.KeyboardButton('В головне меню')
markup.add(dogovirSDO, connectToSDO, giveAccsesToSDO,
removeSDO, backToMenu) # Присвоєння кнопок до змінної.
bot.send_message(message.chat.id, f'{message.from_user.first_name},
оберіть бюджет, будь ласка,', reply_markup = markup , parse_mode='html')
elif message.text == 'Генерація КЕП':
markup = types.ReplyKeyboardMarkup(resize_keyboard = True,
row_width = 2) # Змінна яка задає параметри майбутніх кнопок.
statement = types.KeyboardButton('Додаток №1') # button 1
Addition1 = types.KeyboardButton('Заява-приєднання') # button 2
Addition2 = types.KeyboardButton('Додаток №2') # button 3
Addition3 = types.KeyboardButton('Зразки заповнення') # button 4
exampleStatement = types.KeyboardButton('Додаток №3') # button 5
backToMenu = types.KeyboardButton('В головне меню')
helpInfo = types.KeyboardButton("Пам'ятка користувача")
# button 6
markup.add(statement, Addition1, Addition2, Addition3,
exampleStatement, helpInfo, backToMenu)
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 22
а
# Присвоєння кнопок до змінної.
KEPmsg = bot.send_message(message.chat.id,
f'{message.from_user.first_name}, оберіть файл для скачування, будь ласка.',
reply_markup = markup , parse_mode='html')
bot.register_next_step_handler(KEPmsg, send_file_KEP)
elif message.text == 'Місцевий бюджет':
mbCode = bot.send_message(message.chat.id,
f'<b>{message.from_user.first_name}</b>, введіть будь ласка Ваш код
ЄДРПОУ.', parse_mode='html')
bot.register_next_step_handler(mbCode, MB_CODE)
elif message.text == 'Державний бюджет':
dbCode = bot.send_message(message.chat.id,
f'<b>{message.from_user.first_name}</b>, введіть будь ласка Ваш код
ЄДРПОУ.', parse_mode='html')
bot.register_next_step_handler(dbCode, DB_CODE)
elif message.text == 'В головне меню':
markup = types.ReplyKeyboardMarkup(resize_keyboard= True,
row_width= 2)
takeFPO = types.KeyboardButton('Отримати файл FPO') # button 1
takeKEP = types.KeyboardButton('Генерація КЕП') # button 2
importFiles = types.KeyboardButton('Файли імпорту') # button 3
systemSDO = types.KeyboardButton('Система СДО')
takeQuestion = types.KeyboardButton('Потрібна допомога')
markup.add(takeFPO, takeKEP, importFiles, systemSDO, takeQuestion)
bot.send_message(message.chat.id, f'{message.from_user.first_name},
оберіть будь ласка послугу.', reply_markup=markup, parse_mode='html')
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 23
а
else:
bot.send_message(message.chat.id, 'Таких послуг не існує.')
4.3 Створення функціоналу відповідно до меню
До кнопок в головному меню потрібно створити функціонал який буде
відповідати очікуванням. В нашому випадку це:
1. Отримати файл FPO – клієнт вводить код ЄДРПОУ організації.
Після того, як бот отримав та звірив код, він надсилає користувачу файл FPO
з даними для організації.
Приклад роботи:
 Клієнту потрібен файл FPO з місцевим бюджетом.
 Він запускає бота. Бот просить обрати послугу, яку потрібно надати. В
нашому випадку – це «Отримати файл FPO». В підпункті меню
обираємо місцевий бюджет. Після чого бот просить ввести код
ЄДРПОУ організації.
 В разі невірного вводу даних, бот повідомить про те, що код невірний
(рисунок 4.5).
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 24
а
Рисунок 4.5 – Наглядний приклад роботи кнопки «Отримати файл FPO»
 Якщо введені дані вірні, він надсилає файл FPO (рисунок 4.6).
Рисунок 4.6 – Результат отриманого FPO файлу
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 25
а
Обрати можна «Місцевий» та «Державний» бюджет. Для кожної з
кнопки написана своя функція.
1. Місцевий бюджет:
# BUTTON 'LOCAL BUDGET'
def MB_CODE(message):
MB_Code = message.text
dbf = gp.read_file('FPO/input/MB/fpo.dbf')
# kpol = dbf[dbf.KOKPO == localbudg].KPOL.values[0]
kpol = dbf[dbf.KOKPO == MB_Code]
if message.text == 'Державний бюджет':
dbCode = bot.send_message(message.chat.id,
f'<b>{message.from_user.first_name}</b>, введіть будь ласка Ваш код
ЄДРПОУ.', parse_mode='html')
bot.register_next_step_handler(dbCode, DB_CODE)
elif message.text == 'В головне меню':
markup = types.ReplyKeyboardMarkup(resize_keyboard= True,
row_width= 2)
takeFPO = types.KeyboardButton('Отримати файл FPO')
# button 1
markup.add(takeFPO)
bot.send_message(message.chat.id, f'{message.from_user.first_name},
оберіть будь ласка послугу.', reply_markup=markup, parse_mode='html')
elif kpol.empty:
inCorrectMB = bot.send_message(message.chat.id,
f'<b>{message.from_user.first_name}</b>, введено невірний код ЄДРПОУ.',
parse_mode='html')
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 26
а
bot.register_next_step_handler(inCorrectMB, MB_CODE)
else:
kpol = kpol.KPOL.values[0]
res_slave = dbf[dbf.KRK == kpol]
res_master = dbf[dbf.KPOL == kpol]
res_slave.to_file(f'FPO/outputMB/fpo.dbf')
res_master.to_file(f'FPO/outputMB/fpo.dbf', mode = 'a')
with open('FPO/outputMB/fpo.dbf', 'rb') as misc:
fileMB = misc.read()
bot.send_document(message.chat.id, fileMB, visible_file_name=
'fpo.dbf')
2. Державний бюджет:
def DB_CODE(message):
DB_Code = message.text
dbf = gp.read_file('FPO/input/DB/fpo.dbf')
# kpol = dbf[dbf.KOKPO == localbudg].KPOL.values[0]
kpol = dbf[dbf.KOKPO == DB_Code]
if message.text == 'Місцевий бюджет':
mbCode = bot.send_message(message.chat.id,
f'<b>{message.from_user.first_name}</b>, введіть будь ласка Ваш код
ЄДРПОУ.', parse_mode='html')
bot.register_next_step_handler(mbCode, MB_CODE)
elif message.text == 'В головне меню':
markup = types.ReplyKeyboardMarkup(resize_keyboard= True,
row_width= 2)
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 27
а
takeFPO = types.KeyboardButton('Отримати файл FPO')
# button 1
markup.add(takeFPO)
bot.send_message(message.chat.id, f'{message.from_user.first_name},
оберіть будь ласка послугу.', reply_markup=markup, parse_mode='html')
elif kpol.empty:
inCorrectDB = bot.send_message(message.chat.id,
f'<b>{message.from_user.first_name}</b>, введено невірний код ЄДРПОУ.',
parse_mode='html')
bot.register_next_step_handler(inCorrectDB, DB_CODE)
else:
kpol = kpol.KPOL.values[0]
res_slave = dbf[dbf.KRK == kpol]
res_master = dbf[dbf.KPOL == kpol]
res_slave.to_file(f'FPO/outputDB/fpo.dbf')
res_master.to_file(f'FPO/outputDB/fpo.dbf', mode = 'a')
with open('FPO/outputDB/fpo.dbf', 'rb') as misc:
fileDB = misc.read()
bot.send_document(message.chat.id, fileDB, visible_file_name=
'fpo.dbf')
В обох розглянутих випадках функція працює за одним і тим же
принципом.
Файл формату dbf є досить старим та мало де використовується в наш
час. Щоб відкрити його, потрібна бібліотека для мови програмування Python.
Їх доволі багато, але всі вони на версії Python 2.0, яка не задовольняє вимоги
до даної розробки.
Сама функція працює наступним чином:
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 28
а
1. Бот приймає повідомлення від користувача. В нашому випадку це
код ЄДРПОУ.
2. Геопандас читає наш один великий файл FPO.dbf в якому зібрані
всі організації які обслуговуються Казначейством.
3. Після того як файл відкритий та прочитаний, БОТ порівнює
повідомлення користувача та поле КОКРО, в якому зберіграються коди
ЄДРПОУ (рисунок 4.7).
Рисунок 4.7 – Приклад записів КОКРО в файлі
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 29
а
4. Якщо «Повідомлення користувача» = «КОКРО», тоді
відбувається сортування. З рядка КОКРО береться значення, як знаходиться в
рядку з назвою KPOL.
5. Наступна дія, значення з KPOL порівнюється зі значеням в рядку
KRK. Якщо воно співпадає, тоді відбувається запис файлу.
Рисунок 4.8 – Приклад порівняння стовпців
6. Запис файлу відбувається таким чином. Створюється новий
пустий файл dbf, в який вносяться всі рядки в яких одне й те саме значення
KRK. Навіть якщо КОКРО будуть різні в кінцевому варіанті (Рис. 4.9)
Рисунок 4.9 – Приклад кінцевого файлу FPO
7. Файл записаний. Надсилається клієнту через змінну
bot.send_document.
Сама функція в окремому варіанті:
DB_Code = message.text
dbf = gp.read_file('FPO/input/DB/fpo.dbf')
kpol = dbf[dbf.KOKPO == DB_Code]
kpol = kpol.KPOL.values[0]
res_slave = dbf[dbf.KRK == kpol]
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 30
а
res_master = dbf[dbf.KPOL == kpol]
res_slave.to_file(f'FPO/outputDB/fpo.dbf')
res_master.to_file(f'FPO/outputDB/fpo.dbf', mode = 'a')
with open('FPO/outputDB/fpo.dbf', 'rb') as misc:
fileDB = misc.read()
bot.send_document(message.chat.id, fileDB,
visible_file_name= 'fpo.dbf')
2. Генерація КЕП – Кваліфікованого Електронного Підпису.
Послуга в якій клієнт може згенерувати власний новий КЕП.
В даному блоці меню має такі підпункти:
1. Додаток №1 – додаток 1 до заяви відповідно до чинного законодавства
України.
2. Додаток №2 – додаток 2 до заяви відповідно до чинного законодавства
України.
3. Додаток №3 – додаток 3 до заяви відповідно до чинного законодавства
України.
4. Заява-приєднання – пустий бланк заяви яку повинен клієнт заповнити
для отримання КЕП.
5. Зразки заповнення – зрази з прикладом заповнення заяви.
6. Пам’ятка користувача – пам’ятка з частими питаннями.
7. Головне меню – повернутись в головне меню.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 31
а
Рисунок 4.10 – Вигляд меню розділу «Генерація КЕП»
3. Файли імпорту – Структура імпортної файлової системи.
Якщо клієнт натиснув на цей пункт меню, він може завнтажити
посібник в якому буде детальна інформація про транспортні файли які мають
відповідати структурі dBaseIII. Де дані в транспортному файлі мають
відповідати кодовій сторінці Win-1251, кодова сторінка Win-1251 має бути
зазначена в заголовку файлу.
Також зазначена структура імені файлу (рисунок 4.12).
Рисунок 4.11 – Вигляд меню розділу «Файли імпорту»
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 32
а
Рисунок 4.12 – Приклад посібника файлів імпорту
4. Система СДО – Система Дистанційного Обслуговування «Клієнт
Казначейства».
Як виглядає це в меню, показано на Рис.4.13
Клієнт може отримати 4 типи файлів.
1. Договір про підключення до системи СДО.
2. Заяву про підключення клієнта до СДО
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 33
а
3. Заявку про надання доступу до СДО
4. Заявку про скасування доступу до СДО
Рисунок 4.13 – Вигляд меню розділу «Система СДО»
Що таке СДО? На даний час пріоритетною формою казначейського
обслуговування
розпорядників, одержувачів бюджетних коштів та інших клієнтів є
дистанційна взаємодія за допомогою системи дистанційного обслуговування
«Клієнт казначейства – Казначейство» (СДО), яка була запроваджена з 2015
року. Протягом усього 2022 року,зокрема в умовах воєнного стану,
Казначейство забезпечило стабільну та безперебійну роботу усіх
інформаційних систем, у тому числі і електронного сервісу СДО.
Єдина мережа розпорядників та одержувачів коштів державного та
місцевих бюджетів складається із 39 705 розпорядників/одержувачів, при
цьому частина установ є розпорядниками/одержувачами коштів двох або
більше бюджетів та/або відомств. Таким чином, кількість учасників
бюджетного процесу на кінець 2022 року становить 35 097 установ, з них 32
173 установи (або 92% від загальної кількості) обслуговуються за
дистанційною формою з використанням СДО.[18-20]
4.4 Створення бази даних
Для створення бази даних нам будемо використовувати phpmyadmin на
базі MySQL.
Першим етапом ми створюємо базу даних, яку назвемо CSTSU.
«CREATE DATABASE CSTSU;»
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 34
а
Наша пуста база даних створена (рисунок 4.14).
Рисунок 4.14 – Вигляд пустої бази даних
Тепер нам треба створити таблиці в якій ми будемо зберігати
інформацію про користувачів.
Використовуємо «USE CSTSU;» -- це для використання створеної бази
даних.
Далі:
CREATE TABLE accounts (
acc_id INT PRIMARY KEY,
phone VARCHAR(20),
name VARCHAR(50),
surname VARCHAR(50),
org VARCHAR(100),
date DATE
);
Після цих дій, в нас існує база даних з такими таблицями:
acc_id – номер акаунта телеграм.
phone – номер телефона користувача.
name – ім’я користувача.
surename – фамілія користувача.
org – назва організації в якій працює клієнт.
date – дата коли була додана інформація.
Сама база даних виглядає тепер таким чином:
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 35
а
Рисунок 4.15 – Вигляд бази даних зі створенними таблицями
Тепер в коді нашого телеграм-бота нам треба створити функцію, яка
буде записувати вхідні дані в базу даних.
В даному випадку, для підключення бази даних на мові програмування
Python я використав бібліотеку mysql.connector тому що я вже працював з
нею раніше і розумію що треба робити.
Для початку ми імпортуємо цю бібліотеку в наш код бота.
import mysql.connector
from telegram.ext import Updater, CommandHandler,
MessageHandler, Filters
Наступна задача, це створити функцію для збереження вхідних даних в
нашу базу даних.
def save_data(update, context):
# Тут отримуємо дані з першого повідомлення яке надсилає клієнт.
acc_id = update.message.from_user.id
phone = update.message.contact.phone_number
name = update.message.from_user.first_name
surname = update.message.from_user.last_name
org = update.message.from_user.organization
date = update.message.date.strftime('%Y-%m-%d')
Далі ми підключаємося до нашої бази даних CSTSU.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 36
а
db = mysql.connector.connect(
host="localhost",
user="Lucifer",
password="1337Passw0rdUSAnomone",
database="CSTSU"
)
cursor = db.cursor()
Де ми вставляємо дані які отримали у таблицю "accounts"
sql = "INSERT INTO accounts (acc_id, phone, name, surname, org,
date) VALUES (%s, %s, %s, %s, %s, %s)"
values = (acc_id, phone, name, surname, org, date)
cursor.execute(sql, values)
Отримавши інформацію, я зберігаю зміни та закриваємо з'єднання з
базою даних.
db.commit()
cursor.close()
db.close()
Повідомимо користувача, що його дані вірні і мін може користуватись
Телеграм-ботом
update.message.reply_text("Дані успішно збережено та
перевірено!")
Тепер створимо функцію для обробки самої команди /start яка активує
нашого бота для роботи з ним. Також надсилається повідомлення про те що
дані користувача, а саме: ід акаунта, номер телефона, ім’я, фамілія та назва
організації отримані та проходять етап перевірки.
def start(update, context):
update.message.reply_text("Вітаю, ваші дані отримані та
проходять перевірку.")
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 37
а
Створюємо головну функцію для запуску телеграм-бота разом з базою
даних.
def sql_connect():
Тут створюємо екземпляр Updater та передаємо токен бота для того,
щоб він змін без проблем працювати та під’єднатись до бази даних.
updater =
Updater("5937663567:AAGCGPH38_gecjcPR_rWlUEp87pf--Hxpio",
use_context=True)
Отримуємо диспетчер для реєстрації обробників
dp = updater.dispatcher
Реєструємо обробник команди /start
dp.add_handler(CommandHandler("start", start))
Реєструємо обробник повідомлень з контактними даними.
dp.add_handler(MessageHandler(Filters.contact, save_data))
Фінальний етап, запускаємо самого бота.
updater.start_polling()
Запускаємо цикл обробки подій
updater.idle()
if __name__ == '__main__':
sql_connect()
Тепер база даних підключена до нашого інтерактивного помічника
електронних сервісів.
4.5 Створення захисту
Створення бази даних було не тільки для збереження персональних
даних клієнтів для їх ідентифікації в роботі, якщо виникнуть якісь питання чи
проблеми. А на сам перед, головне в цьому проєкті – це захист.
Адже Державна казначейська служба України є організацією, яка
оперує значною кількістю фінансових та конфіденційних даних. У зв'язку з
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 38
а
цим, конфіденційність та захист є надзвичайно важливими аспектами для
ДКСУ. Зловмисники та шахраї можуть використати ці дані відразу після
крадіжки або в подальшому, вчиняючи різноманітні злочини та шахрайства.
Однією з основних загроз є крадіжка фінансових даних. Шахраї можуть
спробувати отримати доступ до систем ДКСУ, викрасти фінансову
інформацію, таку як рахункові записи, банківські реквізити, ідентифікаційні
дані користувачів тощо. За допомогою цих даних, вони можуть провести
фінансові маніпуляції, здійснювати шахрайські операції або навіть вивести
гроші з рахунків організації.
Крім того, шахраї можуть використовувати скомпрометовану
інформацію для здійснення фішингових атак або соціального інжинірингу.
Вони можуть спробувати витягнути конфіденційні дані від співробітників
ДКСУ, шляхом відправки підроблених повідомлень або намагаючись
встановити недовір'язні контакти.
Крім фінансових даних, інші види конфіденційної інформації, такі як
персональні дані клієнтів, внутрішні процедури та стратегічні плани, також
підлягають ризику. Шахраї можуть використовувати цю інформацію для
зловживання або для вигоди в конкурентному середовищі.
Захист конфіденційності є важливою вимогою у сучасному цифровому
світі, особливо для організацій, які мають доступ до значної кількості
конфіденційної інформації. ДКСУ повинна бути завжди на часі з
оновленнями технологій та найкращими практиками забезпечення
конфіденційності, щоб захистити своїх клієнтів та зберегти свою репутацію
як довіреного фінансового органу.
Проблематика захисту персональних даних в електронних сервісах
Державної казначейської служби України становить серйозну виклик для
організації, оскільки недостатній рівень безпеки може призвести до
розголошення конфіденційної інформації, шахрайства та порушення довіри
клієнтів.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 39
а
Одна з головних проблем полягає у погрозі кібератак та зламу системи.
Шахраї та хакери постійно вдосконалюють свої методи, щоб отримати
несанкціонований доступ до персональних даних. Це може бути здійснено
шляхом використання шкідливих програм, фішингових атак, вразливостей у
програмному забезпеченні чи слабких паролів. Якщо зловмисники здобудуть
доступ до таких даних, вони можуть використовувати їх для шахрайства,
ідентифікаційних крадіжок або навіть вимагати викуп.
Щоб забезпечити високий рівень захисту персональних даних в
електронних сервісах ДКСУ, необхідно вживати наступні заходи:
1. Шифрування даних: Всі персональні дані повинні бути шифровані під час
передачі та зберігання. Використання криптографічних протоколів та
алгоритмів забезпечує конфіденційність даних та унеможливлює їх
несанкціонований доступ.
2. Багаторівневий доступ: Встановлення системи управління доступом з
різними рівнями привілеїв допоможе забезпечити, що тільки авторизовані
користувачі матимуть доступ до конфіденційної інформації. Це може
бути досягнуто за допомогою ідентифікації користувачів, паролів,
двофакторної автентифікації та інших методів.
3. Регулярні оновлення та виявлення вразливостей: Важливо постійно
оновлювати програмне забезпечення, включаючи операційну систему та
всі використовувані бібліотеки та фреймворки. Регулярне тестування
безпеки допоможе виявити можливі вразливості та усунути їх,
забезпечуючи високий рівень безпеки.
4. Навчання та освіта персоналу: Захист персональних даних вимагає
свідомого підходу всього персоналу. Проведення навчань та тренінгів з
питань кібербезпеки допоможе забезпечити, що співробітники розуміють
ризики та вміють вживати необхідні заходи для захисту даних.
5. Моніторинг та аналітика: Системи моніторингу та аналітики можуть
допомогти виявити підозрілу активність, атаки або незвичайні події, які
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 40
а
можуть бути пов'язані з порушенням конфіденційності даних. Раннє
виявлення може допомогти уникнути серйозних наслідків.
Отже, ДКСУ повинна приділяти велику увагу захисту своїх
конфіденційних даних та запобіганню шахрайству. Це може включати
впровадження сучасних систем захисту. Організація, як ДКСУ, що працює з
конфіденційною інформацією, повинна завжди бути на шляху до оновлення
своїх систем безпеки та використовувати сучасні технології для захисту
персональних даних. Встановлення правильних політик, процедур та
технологічних рішень може допомогти запобігти шахрайству та зберегти
довіру клієнтів.
Яка ж саме реалізація захисту даних буде використана в нашому
телеграм-боті?
Телеграм, як популярна платформа миттєвого обміну повідомленнями
та створення ботів, приділяє велику увагу захисту приватності своїх
користувачів.
Одним з головних засобів захисту персональної інформації в Телеграм
є шифрування. Всі повідомлення, які відправляються через Телеграм,
захищені криптографічним протоколом. Це означає, що тільки ви та
отримувач повідомлення маєте доступ до його змісту, і навіть сам Телеграм
не може його переглядати.
У телеграм-боті, що використовуються як інтерактивні помічники
електронних сервісів, застосовується той самий рівень шифрування, що й для
звичайних повідомлень. Це означає, що будь-які дані, які ви вводите або
надсилаєте через телеграм-бота, будуть захищені від несанкціонованого
доступу.
Крім того, Телеграм надає інші заходи безпеки, такі як двофакторна
автентифікація, яка додає додатковий шар захисту до вашого облікового
запису. Це означає, що для входу в обліковий запис потрібно мати не тільки
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 41
а
пароль, але й додатковий перевірочний код, який генерується на вашому
пристрої.
Важливо пам'ятати, що хоча Телеграм забезпечує рівень захисту
персональних даних, він не може повністю гарантувати захист від шахраїв.
Необхідно дотримуватися загальних правил кібербезпеки, таких як не
розголошувати особисту інформацію невідомим особам і не клікати на
підозрілі посилання.
Саме тому мною була впроваджена додаткова система захисту
інформації, яка буде надаватись через телеграм-бот.
1. Для того щоб користуватись ботом, потрібно мати доступ.
2. Для отримання доступу для користування ботом, треба бути клієнтом
ДКСУ.
3. Доступ до бота може надати лише адміністратор, ким є керівник відділу.
Отже, почнемо з того, що клієнти які обслуговуються, наразі додані в
одну спільну групу в якій вони отримують інформацію стосовно роботи
Казначейства. Після запровадження системи під назвою «Інтерактивний
помічник електронних сервісів», бот буде автоматично надсилати
інформацію про оновлення статуту ДКСУ, нормативно-правові акти,
довідкові акти та інше.
Завдяки бібліотеці pyTelegramBotAPI я зміг реалізувати систему, яка
називається “White list” білий список. Де внесені дані користувача який має
доступ до використання бота.
Схематичний принцим роботи циклічної роботи захисту представлено
на рисунку 4.16.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 42
а
Рисунок 4.16 – Схематичний принцим роботи циклічної роботи захисту
Це цикл інформації між Базою Даних, Телеграм-ботом та Групою
клієнтів.
1. Бот отримує інформацію про учасників групи, а саме: ID-акаунта телеграм,
номер телефона, ім’я та фамілію та записує її в whitelist.json файл.
2. Учасник надає свою інформацію в базу даних CSTSU автоматично,
натиснувшки кнопку /start в боті.
3. Бот порівнює інформацію між базою даних CSTSU та whitelist.json
Якщо є розбіжність між інформацією, тобто користвач не має
офіційного дозволу користуватись ботом, він в нього не буде працювати.
Якщо всі дані вірні і співпадають, клієнту буде доступний функціонал.
Саме для цього ми створювали базу даних на основі MySQL.
Ремарка 1: клієнтів яким буде наданий доступ, додає адміністратор
(начальник відділу) в групу з якої буде братись інформація в json файл.
4.6 Асинхронність БОТа
Важливо, в реальному житті, «асинхронність» це синонім до «не
синхронно»
А в сфері ІТ – це процес обробки введення/виводу, що дозволяє
продовжити обробку інших завдань, не чекаючи завершення попереднього
завдання.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 43
а
Асинхронність є важливою концепцією при розробці телеграм-ботів і
додатків взагалі. Вона дозволяє забезпечити ефективну та швидку обробку
багатьох запитів і подій одночасно без блокування виконання інших завдань.
У контексті телеграм-ботів асинхронність означає, що бот може
обробляти запити користувачів та взаємодіяти з сервером Телеграму
паралельно, без очікування завершення попереднього запиту. Це дає
можливість швидко відповідати на повідомлення, обробляти команди та
реагувати на події у реальному часі.
Асинхронність досягається за допомогою використання спеціальних
фреймворків та бібліотек, які надають можливість створювати асинхронний
код. У разі розробки телеграм-ботів на мові програмування Python,
популярним вибором є асинхронний фреймворк asyncio та бібліотека
pyTeleramBotApi, які дозволяють зручно створювати асинхронний код для
взаємодії з Телеграм API.
Переваги використання асинхронності в телеграм-ботах включають:
1. Швидкодія: Телеграм-боти, як і будь-які інші програми, повинні
реагувати на запити користувачів швидко і ефективно. Асинхронний підхід
дозволяє ботам обробляти багато запитів одночасно без блокування
виконання інших завдань, що покращує їх швидкодію і відзивчивість.
2. Висока продуктивність: Боти часто мають велику кількість
користувачів і отримують багато повідомлень одночасно. Використання
асинхронності дозволяє оптимізувати роботу з багатопоточними
середовищами і забезпечити ефективне використання ресурсів, що дозволяє
обробляти великі обсяги даних швидко і ефективно.
3. Взаємодія з зовнішніми сервісами: Багато телеграм-ботів
взаємодіють з іншими сервісами, такими як бази даних, API сторонніх
сервісів, веб-скрапінг та інше. Асинхронний підхід дозволяє ефективно
взаємодіяти з цими сервісами, запускати багатоопераційні завдання
паралельно та очікувати відповіді без блокування потоку виконання.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 44
а
4. Масштабованість: Асинхронність робить ботів більш
масштабованими, оскільки вони можуть обробляти багато запитів одночасно
і забезпечувати високу продуктивність навіть при зростанні кількості
користувачів і навантаження на систему.
5. Керованість помилками: Асинхронний код дозволяє зручно керувати
помилками та винятками, оскільки він працює на рівні обіцянок (promises) і
зворотніх викликів (callbacks), що дозволяє більш ефективно обробляти та
логувати помилки, а також забезпечувати безперебійну роботу бота.
Отже, використання асинхронності в телеграм-ботах дозволяє
покращити їх швидкодію, відзивчивість, продуктивність та масштабованість,
що робить їх більш ефективними та зручними для взаємодії з користувачами.
В нашому випадку, асинхронність корисна тим, що під час формування
унікальних файлів відповідно до запиту користувачів, їм не будуть
надсилатись невірні документи, якщо одночасно будуть робити більше 2-х
людей.
4.7 Тестування БОТа
Тестування телеграм-бота є важливим етапом в розробці, оскільки воно
допомагає перевірити правильність його роботи, виявити та усунути помилки
та забезпечити якість функціонування бота перед його випуском в
експлуатацію.
Тестування телеграм-бота може проводитися на різних рівнях і
використовувати різні підходи. Залежно від потреб розробки та доступних
ресурсів, можуть використовуватися різні інструменти та технології для
автоматизації тестування, такі як фреймворки для написання тестових
сценаріїв, симулятори клієнтів телеграм, інструменти для збирання
результатів тестування тощо.
Основна мета тестування телеграм-бота - перевірити, чи відповідає він
очікуваному функціоналу та якості. Тестування допомагає виявити та
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 45
а
усунути помилки, забезпечити стабільну та безперебійну роботу бота, а
також перевірити взаємодію з користувачами та іншими системами.
Тестування телеграм-бота слід проводити на кожному етапі його
розробки - від початкових прототипів до фінальної версії. Таким чином,
можна виявити помилки та проблеми якомога раніше і забезпечити їх
виправлення до випуску бота в експлуатацію. Додатково, тестування може
проводитися після внесення змін або оновлень до бота, щоб переконатися в
його стабільності та коректній роботі.
Під час тестування телеграм-бота є пункти від яких я відштовхувався.
Пункти які можуть допомогти забезпечити ефективність та якість тестування.
1. Було розроблено план тестування: Перед початком тестування склав
детальний план, в якому вказані очікувані результати, функціональні вимоги
та сценарії тестування. Це допомогло організувати процес тестування та
забезпечити його повноту.
2. Враховав потенційні сценарії використання: Звернув увагу на різні
сценарії взаємодії користувачів з ботом. Перевірив різні команди, відповіді
бота на різні вхідні дані та ситуації.
3. Тестував на різних платформах та пристроях: Тестування проводилося
на різних платформах (десктоп, мобільні пристрої) та різних версіях
операційних систем(windows 10, 11, 7, XP). Це дозволило виявити можливі
проблеми, що пов'язані з платформовою сумісністю.
4. Перевірив реакцію на помилки: Переконався, що бот коректно
обробляє помилкові ситуації. Наприклад, як бот реагує на неправильні
команди користувачів або невідповідні формати даних або як працює на
великий об’єм інформації.
5. Тестування з реальними користувачами: Було залучено 2 реальних
користувачів до процесу тестування. Начальник відділу та особисто я.
Отримав його відгук, спостереження та пропозиції щодо поліпшення бота. Це
допомогло отримати цінні інсайти та покращити взаємодію з користувачами.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 46
а
6. Тестування на різних навантаженнях: Перевірив роботу бота при різних
навантаженнях. Спробував відправляти одночасно багато запитів до бота,
щоб перевірити, як він впорається з великим обсягом трафіку.
7. Забезпечив безпеку та конфіденційність: Перевірив, як бот обробляє та
зберігає конфіденційну інформацію користувачів. Переконався, що дані
захищені від несанкціонованого доступу та можливих загроз.
8. Записував та аналізував результати: Вів детальний журнал тестування,
в якому фіксувалися всі помічені проблеми, відхилення від очікуваних
результатів та інші важливі відомості. Проаналізував ці дані, щоб зробити
відповідні виправлення та покращення.
Тестування телеграм-бота допомагає забезпечити його якість,
надійність та задоволення користувачів. Воно дозволяє виявити та усунути
помилки, вдосконалити функціонал та забезпечити високий рівень безпеки та
конфіденційності. Тестування варто проводити на різних етапах розробки та
після внесення змін до бота, щоб переконатися, що він працює належним
чином і задовольняє очікування користувачів.
Під час тестування по кожному з цих пунктів виникали помилки та
проблеми.
1. Найчастіша помилка була пов’язана з крашом бота. Після повторого
отрмання файла FPO по тому самому коду ЄДРПОУ.
Провівши аналіз, було виявлено, що система намагається перезаписати
вже відкритий файл. Вирішення було просте, закривати файл після його
відправки користувачу.
Цим самим це додатково, незначно, але зменшило навантаження на
саму систему Windows.
2. Друга помилка яка виникла, це робота головного меню, воно не
відображалось після того, як користував захотів повернутись до нього.
Рішенням слугувало, нове додавання кнопок меню в кожномі підпункті
меню.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 47
а
Приклад:
elif message.text == 'В головне меню':
markup = types.ReplyKeyboardMarkup(resize_keyboard= True,
row_width= 2)
takeFPO = types.KeyboardButton('Отримати файл FPO') # button 1
takeKEP = types.KeyboardButton('Генерація КЕП') # button 2
importFiles = types.KeyboardButton('Файли імпорту')
# button 3
systemSDO = types.KeyboardButton('Система СДО')
takeQuestion = types.KeyboardButton('Потрібна допомога')
markup.add(takeFPO, takeKEP, importFiles, systemSDO,
takeQuestion)
bot.send_message(message.chat.id, f'{message.from_user.first_name},
оберіть будь ласка послугу.', reply_markup=markup, parse_mode='html')
Завдяки змінній markup.add, ми можемо додати кнопки меню які
будуть відображатись в нашому боті.
3. Виникла проблема з цілодобовою активністю бота. Через те що сервери
Казначейської Служби не працюють після робочого дня через можливу
ракетну атаку. Треба було вирішити питання з хостингом для бота. Ним
слугує виділений сервер який буде розміщений в місці де буде
електроенергія 24 на 7.
4. Баг з назвою файла при відправці. Він повинен називатись FPO.dbf
Рішенням слугувало, додаткове присвоєння назви файлу завдяки тій
самій бібліотеці geopandas.
Приклад як це реалізовано в функції:
bot.send_document(message.chat.id, fileMB, visible_file_name=
'fpo.dbf')
Операція visible_file_name відповідає за назву файла після того як він
надісланий.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 48
а
5. Баг з надсиланням неповної інформації в файлі FPO. Програма не
записувала рядок з якого брали значення KRK.
Вирішенням слугувало:
 Запис файла після збереження всієї потрібної інформації.
 Перевірка файла та додавання першої строки в файл.
Сам запис виглядає таким чином:
# Первинний запис файлу.
res_slave.to_file(f'FPO/outputMB/fpo.dbf')
# Перевірка та додавання першої строки в файл.
res_master.to_file(f'FPO/outputMB/fpo.dbf', mode = 'a')
Таким чином можна визначити, що тестування є необхідною
складовою процесу розробки програм, в нашому випадку інтерактивного
помічника електронних сервісів. Тестування дозволяє покращити якість
додатка і забезпечити успішне впровадження. Воно допомагає виявити
недоліки, відстежити прогрес розробки та забезпечити, що додаток
відповідає вимогам та очікуванням користувачів.
Тому, ми зрозуміли – не тестувати програму можна мати серйозні
наслідки для якості, безпеки, функціональності та задоволення користувачів.
Тестування є важливою складовою процесу розробки програмного
забезпечення і допомагає виявляти та виправляти проблеми до їх впливу на
користувачів.
4.8 Наповнення функціоналу для програми
Гнучкість моєї програми телеграм-бота є важливою характеристикою,
оскільки вона дозволяє розширювати його функціонал і додавати нові
можливості в будь-який момент часу. Це дає можливість адаптувати бота до
змінних потреб користувачів і розширювати його функціональні можливості
залежно від вимог і викликів.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 49
а
Одним з основних переваг гнучкості телеграм-бота є здатність до
доповнень. Бот може був розроблений з урахуванням можливості легко
додавати нові функції, команди та інші елементи, які розширять його
функціональні можливості. Це може бути виконано шляхом додавання нових
модулів, плагінів або інших компонентів, які забезпечують певний
функціонал.
Гнучкість програми телеграм-бота також дозволяє швидко реагувати на
змінні потреби користувачів. Наприклад, якщо виявляється, що боту
потрібно додаткове функціональне завдання або взаємодія з іншими
системами, в майбутнбому можна легко внести необхідні зміни без
необхідності повного переписування програми. Це дозволяє боту
еволюціонувати і адаптуватися до змінних вимог і умов організації.
Гнучкість телеграм-бота також забезпечує його здатність інтегруватися
з іншими системами і сервісами. Бот може взаємодіяти з базами даних, API,
зовнішніми сервісами та іншими додатками, що дозволяє розширити його
функціональні можливості. Це робить бота потужним інструментом для
автоматизації різних процесів і взаємодії з іншими системами.
Проте, варто враховувати деякі аспекти гнучкості програми телеграм-
бота. Збільшення функціональності може призвести до складності управління
і підтримки програми. Крім того, недостатня структура і організація коду
можуть зробити бота вразливим до помилок і проблем з безпекою. Тому
важливо забезпечити належне тестування, документацію і супровід програми
для забезпечення її стабільності і безпеки.
У загальному, гнучкість програми телеграм-бота є важливою
характеристикою, яка дозволяє розширювати його функціонал і
пристосовувати його до змінних потреб користувачів і вимог. Це забезпечує
більш гнучку та ефективну роботу бота, що в результаті забезпечує
задоволення користувачів та досягнення поставлених цілей.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 50
а
ВИСНОВКИ
У ході проведеного дослідження було розроблено Telegram-бота з
метою покращення взаємодії електронного сервісу ДКСУ з клієнтами.
Виявлено, що правильний вибір мови програмування та середовища
розробки є ключовим аспектом для успішної реалізації проєкту.
Ознайомлення з документацією для бібліотек, що використовуються
при створенні програми, є важливим кроком перед розробкою, оскільки це
дозволяє використовувати функціонал бібліотек належним чином.
Процес розробки Telegram-бота включав створення блок-схеми,
розробку головного меню та відповідний функціонал, створення бази даних
для зберігання інформації, реалізацію заходів безпеки та асинхронного
режиму роботи, а також тестування для перевірки функціональності.
В результаті дослідження було досягнуто мети – створений Telegram-
бот, який покращує взаємодію з клієнтами ДКСУ. Він надає зручне головне
меню та функціонал, а також забезпечує захист конфіденційної інформації та
оптимізований режим роботи завдяки асинхронності.
Зазначимо, що процес розробки Telegram-бота може бути додатково
вдосконалений та розширений в майбутньому. Наприклад, можна додати нові
функції, покращити інтерфейс та додати більше захисту для забезпечення
безпеки даних користувачів.
В цілому, розробка Telegram-бота є перспективним напрямом для
покращення взаємодії з клієнтами та надання зручних та ефективних сервісів.
Дослідження дало цінні висновки та практичні результати, які можуть бути
використані в подальших проектах розробки програмного забезпечення.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 51
а
СПИСОК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ
Хостинг – (англ. Hosting) – послуга з надання обчислювальних
потужностей для розміщення інформації на сервері, що постійно
перебуває в мережі (зазвичай Інтернет). Хостингом також
називається послуга з розміщення обладнання клієнта на території
провайдера із забезпеченням підключення його до каналів зв'язку з
високою пропускною спроможністю (колокація, від англ.
Collocation).
ПЗ – програмне забезпечення.
MySQL – вільна реляційна система управління базами даних. Реляційна
база даних зберігає інформацію в окремих таблицях, а не в одному
великому сховищі, завдяки чому досягається висока продуктивність
і гнучкість. Частина "SQL" слова "MySQL" позначає "Structured
Query Language" ( "Мова структурованих запитів").
ДКСУ – Державна Казначейська Служба України.
Python – високорівнева мова програмування загального призначення з
динамічною строгою типізацією та автоматичним управлінням
пам'яттю, орієнтована на підвищення продуктивності розробника,
читання коду та його якості, а також на забезпечення переносимості
написаних на ньому програм.
Telegram – месенджер в якому можливо створити свій канал та телеграм-
бота.
pyTeleramBotApi – бібліотека, яка дозволяє створювати функціонал для
телеграм-ботів.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 52
а
Асинхронність – це процес обробки введення/виводу, що дозволяє
продовжити обробку інших завдань, не чекаючи завершення
попереднього завдання.
Visual Studio Code – середовище розробки, створено компанією Microsoft.
Має зручний функціонал та підсвітку синтаксису відповідно до
мови програмування.
PhpMyAdmin - веб-додаток з відкритим кодом, написаний на мові PHP і є
веб-інтерфейсом для адміністрування СУБД MySQL.
geopandas – це проєкт із відкритим вихідним кодом, який полегшує роботу
з геопросторовими даними на Python. GeoPandas розширює типи
даних, які використовує pandas, щоб дозволити просторові операції
над геометричними типами. Геометричні операції виконуються
фігурно.
DBF (Data Base File) — формат зберігання даних, який використовується
як один із стандартних способів зберігання інформації в системах
управління базами даних.
BOT – спеціальна програма, що виконує автоматично та/або за заданим
розкладом будь-які дії через інтерфейси, призначені для людей. Під
час обговорення комп'ютерних програм слово вживається
переважно у застосуванні до Інтернету.
СДО – система дистанційного обслуговування.
API – набір визначень підпрограм, протоколів взаємодії та засобів для
створення програмного забезпечення.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 53
а
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Документація по pyTelegramBotAPI –
https://pytba.readthedocs.io/en/latest/index.html
2. Документація по geopandas – https://geopandas.org/en/stable/docs.html
3. Форум допомоги stackoverflow –
https://stackoverflow.com/questions/tagged/telebot
4. Документація для Python - https://www.python.org/doc/
5. Вивчаємо Python - Марк Лутц 2009 р.
6. Створення меню телеграм-бота –
https://www.youtube.com/watch?v=A1p7bEtTlxc
7. Закон про ДКСУ – https://zakon.rada.gov.ua/laws/show/215-2015-п
8. СДО ДКСУ – https://www.treasury.gov.ua/faq/categories/sdo-kliyent-
kaznachejstva-kaznachejstvo
9. Нормативно правова база ДКСУ – https://www.treasury.gov.ua/ua/acts-
search
10.Мануал по MySQL – https://dev.mysql.com/doc/refman/8.0/en/select.html
11.Топік по захисту телеграма - https://www.androidpolice.com/top-tips-
using-telegram-safely-securely/
12.FAQ Telegram - https://telegram.org/faq
13.STLC - https://training.qatestlab.com/blog/helpful-materials/top-technical-
questions-for-beginner/
14.Спільнота розробників Telegram на GitHub:
https://github.com/telegramdesktop/tdesktop
15.«Інтелектуальні асистенти та інтерфейси», Марія Есмеральда
Мартінес-Себастиан, Моніка Вальяс, Хуан С. Торрес.
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 54
а
16.«Designing Interactive Systems: A Comprehensive Guide to HCI, UX and
Interaction Design» – David Benyon, 2019.
17.«Human-Computer Interaction» – Alan Dix, Janet E. Finlay, Gregory D.
Abowd, and Russell Beale, 2019.
18.«Chatbots in the Call Center: AWS Lex and Connect» – Gabriel Csapo,
2018.
19.«Building Chatbots with Python: Using Natural Language Processing and
Machine Learning» – Sumit Raj, Rishabh Misra, 2019.
20.Intelligent interactive multimedia systems and services. Springer - Ortega,
L., & Bravo, C. (2014).
Лист
ЧДТУ. 231929.003 ПЗ т
Зм. Лист № докум. Підпис Дат 55
а