МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ХАРЧОВИХ ТЕХНОЛОГІЙ Інститут (факультет )_ Автоматизації і комп’ютерних систем______ Кафедра _Інформаційних технологій, штучного інтелекту і кібербезпеки_ «До захисту в ЕК» «До захисту допущено» Директор інституту(декан факультету) Завідувач кафедри ________ ___Андрій ФОРСЮК __ (підпис) (ім’я та прізвище) _________ Сергій ГРИБКОВ__ (підпис) (ім’я та прізвище) «07» __ червня _____ 2023р. «07» ____ червня _____ 2023р. КВАЛІФІКАЦІЙНА РОБОТА НА ЗДОБУТТЯ ОСВІТНЬОГО СТУПЕНЯ БАКАЛАВРА Зі спеціальності__122 «Комп’ютерні науки»____________________________ (код та назва спеціальності) освітньо-професійної програми__Інформаційні системи та штучний інтелект __________________________________________________________________ на тему: «Розроблення телеграм бота для ведення комерції з використанням криптовалюти» Виконав: здобувач_4_ курсу, групи_КН-4-2_ _______Касьянов Андрій Антонович ____________ (прізвище, ім’я, по батькові повністю) (підпис) Керівник __ Литвинов Валерій Андроникович _ (прізвище , ім’я та по батькові повністю) (підпис) Консультанти_________________ ___________ (ім’я та прізвище) (підпис) _________________ ___________ (ім’я та прізвище) (підпис) _________________ ___________ (ім’я та прізвище) (підпис) Рецензент _________________ ___________ (ім’я та прізвище) (підпис) Я як здобувач(ка) Національного університету харчових технологій розумію і підтримую політику університету з академічної доброчесності. Я не надавав(-ла) і не одержував(-ла) недозволеної допомоги під час підготовки цієї роботи. Використання ідей, результатів і текстів інших авторів мають посилання на відповідне джерело Здобувач____________________ (підпис) Київ - 2023р. НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ХАРЧОВИХ ТЕХНОЛОГІЙ Інститут (факультет) Автоматизації і комп’ютерних систем Кафедра Інформаційних технологій, штучного інтелекту і кібербезпеки Освітній ступінь Бакалавр Спеціальність 122 «Комп’ютерні науки» Освітньо-професійна програма Інформаційні системи та штучний інтелект ЗАТВЕРДЖУЮ Завідувач кафедри Інформаційних технологій, штучного інтелекту і кібербезпеки Сергій ГРИБКОВ “ 04 ” квітня 2023 року З А В Д А Н Н Я НА КВАЛІФІКАЦІЙНУ РОБОТУ ЗДОБУВАЧА Касьянова Андрія Антоновича (прізвище, ім’я, по батькові) 1. Тема роботи «Розроблення телеграм бота для ведення комерції з використанням криптовалюти» керівник роботи Литвинов Валерій Андроникович д.т.н професор ( прізвище, ім’я, по батькові, науковий ступінь, вчене звання) затверджені наказом закладу вищої освіти від 03 квітня 2023 року № 204-кс 2. Строк подання здобувачем роботи 02.06.2023 р. 3. Вихідні дані до роботи - Вимоги користувачів щодо функціональності та оплати через криптовалюту. - Технічні вимоги щодо використання блокчейну та платіжних шлюзів, таких як COINBASE COMMERCE. - Наявність бота в Telegram, написаного на aiogram та з використанням sqllite для зберігання даних. 4. Зміст пояснювальної записки (перелік питань, які потрібно розробити) 1) Актуальність теми 2) Мета та завдання дослідження 3) Вибір технологій та інструментів розробки 4) Розробка функціональності оплати через криптовалюту 5) Опис реалізованої функціональності бота для проведення оплати в криптовалюті 6) Використання COINBASE COMMERCE для забезпечення платіжних операцій 7) Висновки про розроблену систему та її перспективи 5. Перелік графічного матеріалу 1) Діаграма функціональної моделі бізнес-процесів 2) Таблиця порівняння існуючих рішень на ринку ІТ 3) Логічна модель бази даних 4) Схема БД, структура таблиць 5) Презентація зі схемою БД і відповідними поясненнями 6) Діаграма календарного плану виконання роботи 6. Консультанти розділів роботи Розділ Прізвище, ініціали та посада консультанта Підпис, дата завдання видав завдання прийняв 1 Профессор Литвинов В.А. 2 Профессор Литвинов В.А. 3 Профессор Литвинов В.А. 4 Профессор Литвинов В.А. 7. Дата видачі завдання_____04 квітня 2023 року________________ КАЛЕНДАРНИЙ ПЛАН № З № Назва етапів виконання кваліфікаційної роботи Строк виконання етапів роботи Примітка 1 1 Аналіз потреб та вимог користувачів 01.05.2023 2 2 Вибір технологій та інструментів розробки 10.05.2023 3 3 Розробка функціональності оплати через криптовалюту 17.05.2023 4 4 Тестування та валідація системи 22.05.2023 5 5 Написання пояснювальної записки 06.06.2023 Здобувач _______________ _____Касьянов А.А. ___ (підпис) (прізвище та ініціали) Керівник роботи _______________ _____Литвинов В.А.______ ( підпис ) (прізвище та ініціали) АНОТАЦІЯ Кваліфікаційна робота присвячена розробці та імплементації бота в Telegram з можливістю оплати в криптовалюті. Головна мета дослідження полягала у створенні зручного та безпечного інструменту оплати товарів та послуг за допомогою криптовалют. У процесі дослідження було проведено аналіз вимог користувачів та вибір необхідних технологій. Для розробки бота були використані фреймворк aiogram для розробки ботів в Telegram, реляційна база даних SQLite для збереження інформації та блокчейн технологія для безпечної обробки платежів у криптовалюті. Результатом кваліфікаційної роботи є розроблений та успішно імплементований бот, який надає користувачам зручний спосіб здійснювати оплату у криптовалюті. Бот забезпечує можливість інтерактивної комунікації з користувачем, обробку замовлень та забезпечення безпеки платіжних операцій. Перспективи розробленої системи полягають у подальшому розширенні функціональності, покращенні інтерфейсу та впровадженні додаткових можливостей для користувачів. Розроблений бот може бути корисним для різних видів бізнесу, які прагнуть приймати платежі в криптовалюті та забезпечити зручну операційну систему для своїх клієнтів. Кваліфікаційна робота має практичне значення, оскільки надає реальний інструмент для здійснення криптовалютних платежів та поліпшення операційних процесів. Кваліфікаційний проект обсягом у 56 сторінок, містить 60 сторінок пояснювальної записки, 20 сторінок графічних матеріалів. Ключові слова: БОТ В TELEGRAM, КРИПТОВАЛЮТА, ОПЛАТА, AIOGRAM, SQLITE, БЛОКЧЕЙН. SUMMARY This thesis is dedicated to the development and implementation of a bot in Telegram with the ability to pay in cryptocurrency. The main goal of the research was to create a convenient and secure tool for paying for goods and services using cryptocurrencies. The research involved analyzing user requirements and selecting the necessary technologies. To develop the bot, we used the aiogram framework for developing bots in Telegram, the SQLite relational database for storing information, and blockchain technology for secure payment processing in cryptocurrency. The result of the thesis is a developed and successfully implemented bot that provides users with a convenient way to make payments in cryptocurrency. The bot enables interactive communication with the user, order processing, and security of payment transactions. The prospects for the developed system are to further expand the functionality, improve the interface, and introduce additional features for users. The developed bot can be useful for various types of businesses seeking to accept payments in cryptocurrency and provide a convenient operating system for their customers. The thesis is of practical importance as it provides a real tool for making cryptocurrency payments and improving operational processes. The thesis project is 56 pages long and contains 60 pages of explanatory note, 20 pages of graphic materials. Keywords: BOT IN TELEGRAM, CRYPTOCURRENCY, PAYMENT, AIOGRAM, SQLITE, BLOCKCHAIN. ЗМІСТ ВСТУП ..................................................................................................... 1 РОЗДІЛ 1. СИСТЕМНИЙ АНАЛІЗ КОМПАНІЇ “SmartPay Solutions” ................................................................................................................... 2 1.1Загальна характеристика компанії “SmartPay Solutions” .............. 2 1.2.Організаційна структура “SmartPay Solutions” ............................. 2 1.3.Аналіз поточного стану комп’ютеризації підприємства .............. 6 1.4. Розроблення функціональної моделі та аналіз існуючих бізнес процесів .................................................................................................... 7 1.5. Огляд існуючих рішень для розв’язання виявлених проблем .. 10 1.6. Обґрунтування доцільності проєктування й розроблення ........ 12 1.7. Концептуальна модель системи ................................................... 13 1.8. Розрахунок економічного ефекту від впровадження системи. 14 РОЗДІЛ 2. ТЕХНІЧНЕ ЗАВДАННЯ НА ПРОЄКТУВАННЯ .......... 16 2.1. Загальні положення ....................................................................... 16 2.2. Призначення і цілі створення системи ........................................ 16 2.3. Характеристика об’єкта автоматизації ........................................ 17 2.4. Вимоги до системи ........................................................................ 17 РОЗДІЛ 3. ОПИС КОМЛЕКСУ ЗАДАЧ АВТОМАТИЗАЦІЇ .......... 34 3.1. Інформаційне забезпечення системи ........................................... 34 3.2. Алгоритмізація та реалізація комплексу задач автоматизації. . 36 3.3. Технічне та системне забезпечення розробки ............................ 48 РОЗДІЛ 4. ОХОРОНА ПРАЦІ ............................................................ 52 ВИСНОВКИ .......................................................................................... 53 СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ............................................ 55 ДОДАТКИ ............................................................................................. 57 ДОДАТКОК А ....................................................................................... 57 ДОДАТКОК Б ....................................................................................... 58 ДОДАТКОК В ....................................................................................... 61 ДОДАТКОК Г ........................................................................................... 64 1 ВСТУП З появою криптовалют та їх широкого застосування в сучасному світі зростає потреба в зручних та безпечних способах оплати за товари та послуги. Інтернет- комерція, онлайн-сервіси та інші сфери діяльності шукають ефективні та інноваційні рішення для забезпечення зручних операцій та збільшення задоволеності користувачів. Одним із таких інструментів є Telegram-боти, які здатні забезпечити швидкі та зручні платежі у криптовалюті, забезпечуючи безпеку та анонімність транзакцій. Розробка та імплементація таких ботів є актуальною задачею, яка вимагає глибокого розуміння криптовалютних технологій, платіжних систем та програмування. Метою даної кваліфікаційної роботи є розробка та імплементація бота в Telegram з можливістю оплати в криптовалюті. Робота спрямована на створення зручного та безпечного інструменту оплати, який задовольнятиме потреби користувачів та відповідатиме сучасним стандартам безпеки та функціональності. У процесі розробки будуть проведені аналіз вимог користувачів, вибір оптимальних технологій та інструментів для реалізації функціоналу оплати через криптовалюту. Результатом кваліфікаційної роботи буде розроблений та успішно імплементований Telegram-бот, який надаватиме користувачам зручний та безпечний спосіб здійснювати оплату за товари та послуги. Очікується, що розроблений бот буде мати практичне застосування в різних сферах бізнесу, які прагнуть приймати платежі в криптовалюті . Використання криптовалютних платежів сприятиме зменшенню комісійних витрат, покращенню ефективності бізнесу та забезпеченню безпеки та анонімності транзакцій. Структура кваліфікаційної роботи охоплює детальний аналіз вимог користувачів, огляд наявних рішень на ринку, розробку та імплементацію бота в Telegram з функціоналом оплати в криптовалюті, а також тестування та оцінку ефективності розробленої системи. 2 РОЗДІЛ 1. СИСТЕМНИЙ АНАЛІЗ КОМПАНІЇ “SmartPay Solutions” 1.1 . Загальна характеристика компанії “SmartPay Solutions” SmartPay Solutions - це інноваційна компанія, яка відома своїми передовими платіжними рішеннями для традиційного бізнесу. Заснована досвідченою командою експертів, вона забезпечує зручний та безпечний спосіб оплати для підприємств різних галузей. SmartPay Solutions розробила та впровадила унікальний телеграм-бот, який надає можливість клієнтам здійснювати платежі в криптовалюті з легкістю та без зайвих зусиль. Це інтуїтивно зрозуміле рішення, яке дозволяє підприємствам привертати нових клієнтів та зберігати конкурентну перевагу в сучасному цифровому середовищі. Компанія забезпечує широкий спектр криптовалют для оплати, включаючи популярні Bitcoin, Ethereum, Litecoin та багато інших. SmartPay Solutions покладає великий акцент на безпеку і конфіденційність своїх клієнтів, застосовуючи передові технології шифрування та захисту даних, щоб гарантувати безпеку та надійність кожної транзакції. Окрім технічних рішень, SmartPay Solutions надає своїм клієнтам професійну консультаційну підтримку. Вона допомагає компаніям усвідомити переваги прийняття криптовалюти як засобу оплати, надаючи корисні поради та ресурси для успішного впровадження та ефективного управління платежами в цифровому просторі. 1.2. Організаційна структура “SmartPay Solutions” Організаційна структура SmartPay Solutions відображає ефективне управління та спрямована на досягнення стратегічних цілей компанії. Компанія працює в командному середовищі, де кожен працівник вносить свій внесок у досягнення успіху. 1. Керівництво • Генеральний директор: відповідає за стратегічне керівництво, прийняття важливих рішень та надання відповідності стратегії компанії. 3 • Виконавчий директор: забезпечує оперативне керівництво та контроль над щоденною діяльністю компанії. 2. Відділи та підрозділи • Відділ розробки продукту: відповідає за розробку та вдосконалення телеграм-боту, а також за технічну підтримку та інноваційні рішення. • Відділ маркетингу та продажів: займається просуванням продуктів компанії, рекламою, веденням маркетингових кампаній та залученням нових клієнтів. • Відділ підтримки клієнтів: забезпечує якісну та швидку підтримку клієнтів, відповідає на їх запитання та вирішує проблеми. • Відділ фінансів та обліку: відповідає за фінансове планування, облік, контроль над бюджетом, операційний облік та звітність. • Відділ кадрів: займається наймом, розвитком та управлінням персоналом, підтримкою трудових відносин. 3. Команда розробників • Програмісти: відповідають за розробку та підтримку програмного забезпечення, тестування та впровадження нових функцій. • Дизайнери і UX-фахівці: створюють зручний та привабливий інтерфейс користувача для телеграм-боту. • Аналітики даних: відстежують та аналізують дані щодо використання телеграм-боту, проводять дослідження ринку та здійснюють прогнозування. Організаційна структура SmartPay Solutions створена з метою забезпечити високу продуктивність, ефективну комунікацію та співпрацю всередині компанії, щоб забезпечити найкращі рішення та задоволення потреб клієнтів. Робота відділів Відділ розробки продукту. Розробка та вдосконалення телеграм-боту: команда програмістів відповідає за написання коду та розробку функціональності телеграм-боту. 4 Технічна підтримка. Цей відділ відповідає за надання технічної підтримки клієнтам, вирішення технічних питань та проблем щодо використання телеграм- боту. Інноваційні рішення. Команда розробників постійно шукає нові ідеї та розв'язки для покращення телеграм-боту та впровадження інноваційних функцій. Відділ маркетингу та продажів: Реклама та просування. Цей відділ відповідає за розробку маркетингових стратегій, створення рекламних кампаній та просування продуктів компанії на ринку. Продажі. Команда займається активним пошуком потенційних клієнтів, переговорами та укладанням угод з підприємствами, які зацікавлені використовувати телеграм-бот для оплати своїх послуг або товарів. Відділ підтримки клієнтів. Консультаційна підтримка: команда фахівців забезпечує клієнтів інформацією та консультаціями щодо використання телеграм- боту, роз'ясненням процесу оплати та вирішенням будь-яких питань, які виникають у клієнтів. Технічна підтримка. Відділ підтримки клієнтів також надає технічну допомогу, відповідає на запитання та вирішує проблеми, пов'язані з використанням телеграм-боту. Відділ фінансів та обліку. Фінансове планування: цей відділ займається розробкою фінансових планів та бюджетів компанії, контролює витрати та прибуток. Облік та звітність. Команда фахівців веде облік фінансової діяльності компанії, складає фінансові звіти та забезпечує виконання фінансової звітності згідно з вимогами законодавства. Відділ кадрів • Найм персоналу: цей відділ відповідає за процес найму нових співробітників, розгляд резюме, проведення співбесід та укладання трудових договорів. 5 • Розвиток персоналу: команда забезпечує розвиток та навчання працівників, організацію тренінгів та семінарів для поліпшення професійних навичок. • Управління персоналом: відділ кадрів відповідає за управління трудовими відносинами, адмініструванням персональних документів, вирішенням питань щодо винагородження та мотивації співробітників. Ці відділи і команди працюють разом, співпрацюючи та координуючи свою роботу для забезпечення ефективного функціонування компанії SmartPay Solutions та надання якісних послуг своїм клієнтам. У компанії SmartPay Solutions використовуються різноманітні програми та інструменти для підтримки їх бізнес-процесів та забезпечення ефективності роботи. Деякі з них включають: Управління проектами та завданнями • Asana: це програмне забезпечення для організації та відстеження завдань, управління проектами та спільної роботи команди. • Trello: цей інструмент надає можливість створювати дошки з завданнями, додавати коментарі, встановлювати терміни та контролювати прогрес виконання. Комунікація та спілкування • Slack: це популярна платформа для комунікації команди, обміну повідомленнями, спільної роботи над проектами та інтеграції з іншими інструментами. • Zoom: програма для відеоконференцій, яка дозволяє проводити онлайн- зустрічі, вебінари та спілкування в режимі реального часу. Розробка та програмування • Python: мова програмування, що широко використовується в розробці програмного забезпечення, включаючи розробку телеграм-ботів. • Git: система керування версіями, яка дозволяє зберігати, відстежувати та спільно працювати над кодом. 6 • GitHub: хмарна платформа розробки програмного забезпечення, де зберігаються репозиторії проектів та здійснюється спільна робота над ними. Аналітика та звітність • Google Analytics: сервіс від Google, який дозволяє отримувати статистичні дані та аналізувати поведінку користувачів на веб-сайті або у додатку. • Microsoft Excel: програма для створення та аналізу даних, складання звітів та виконання розрахунків. Фінанси та облік • QuickBooks: програмне забезпечення для фінансового обліку, створення рахунків, керування фінансами та ведення бухгалтерського обліку. • Xero: інтегрована хмарна платформа для фінансового управління, обліку та оподаткування. 1.3. Аналіз поточного стану комп’ютеризації підприємства Аналіз поточного стану комп'ютеризації підприємства SmartPay Solutions вказує на наступні аспекти: Інфраструктура: Підприємство має розвинуту інфраструктуру комп'ютерів, серверів та мережевого обладнання, необхідного для ефективного функціонування та забезпечення обміну даними в офісі. Програмне забезпечення: Використовуються різноманітні програмні продукти для підтримки різних аспектів діяльності компанії. Це включає системи управління відносинами з клієнтами (CRM), облікові системи, програми для фінансового управління та аналізу даних. Комунікаційна інфраструктура: У компанії SmartPay Solutions використовуються інструменти для комунікації та спілкування, такі як електронна пошта, месенджери, відеоконференції. Це сприяє ефективному обміну інформацією та співпраці в межах команди. Захист інформації: Компанія приділяє велику увагу безпеці даних і використовує заходи для захисту конфіденційності, цілісності та доступності інформації. Це включає використання фаєрволів, антивірусного програмного забезпечення, резервного копіювання та контроль доступу до систем. 7 Автоматизація процесів: У підприємстві SmartPay Solutions реалізована автоматизація багатьох бізнес-процесів, що дозволяє підвищити продуктивність та зменшити ризики помилок. Наприклад, автоматична обробка платежів, автоматичне формування звітів та аналітичних даних. ІТ-підтримка: Компанія має внутрішній або зовнішній ІТ-відділ, який забезпечує підтримку, обслуговування та вирішення проблем, пов'язаних з комп'ютерною інфраструктурою та програмним забезпеченням. Загалом, комп'ютеризація підприємства SmartPay Solutions є високою, оскільки вона активно використовує різноманітні інструменти та технології для підтримки своїх операцій та забезпечення ефективності діяльності. 1.4. Розроблення функціональної моделі та аналіз існуючих бізнес процесів 1.4.1. Функціональна модель (Модель бізнес-процесу приймання та виконання замовлення SmartPay Solutions) Функціональна модель бізнес-процесу приймання та виконання замовлення компанії SmartPay Solutions буде наступною: Прийняття замовлення Клієнт здійснює замовлення через телеграм бота або іншу доступну платформу. Замовлення надходить до системи SmartPay Solutions для подальшої обробки. Валідація замовлення Здійснюється перевірка замовлення на відповідність умовам та наявність необхідних товарів або послуг. Проводиться перевірка достовірності платіжних даних та ідентифікації клієнта. Обробка платежу Клієнт здійснює оплату криптовалютою через інтегровані засоби платіжної системи. Виконується перевірка платежу та його підтвердження. 8 Виконання замовлення Завдяки інтеграції з телеграм ботом або іншими рішеннями компанії SmartPay Solutions, замовлення автоматично передається до відповідного виконавця або системи управління для обробки. Здійснюється виконання замовлення, надання відповідних послуг або доставка товарів. Підтвердження та сповіщення клієнта Клієнт отримує підтвердження про успішне виконання замовлення. За допомогою телеграм бота або інших засобів зв'язку, клієнт отримує сповіщення про статус замовлення, інформацію про доставку або інші важливі оновлення. Клієнтська підтримка SmartPay Solutions забезпечує клієнтську підтримку через телеграм бота, онлайн-чат або інші комунікаційні канали. Клієнти можуть звертатися з питаннями, скаргами або запитами, пов'язаними зі своїм замовленням або платежем. 1.4.2. Виявлені проблеми Враховуючи, що компанія SmartPay Solutions спеціалізується на розробці телеграм ботів та інших рішень для оплати криптовалютою, можна виділити наступні можливі проблеми, пов'язані з бізнес-процесом приймання та виконання замовлення: Інтеграція з платіжними шлюзами криптовалют: Однією з потенційних проблем може бути необхідність ефективної інтеграції з різними платіжними шлюзами для приймання платежів у криптовалюті. Це може вимагати спеціалізованих знань та технічної експертизи. Забезпечення безпеки: Оскільки оплата криптовалютою пов'язана зі збереженням цифрових активів, важливо забезпечити високий рівень безпеки. Це включає захист від шахрайства, кібератак та злому системи. 9 Використання різних криптовалют: Клієнти можуть користуватися різними видами криптовалют для здійснення оплати. Проблемою може стати необхідність підтримки різних криптовалютних мереж та їхніх протоколів. Забезпечення швидкості та ефективності: Операції з криптовалютою можуть вимагати певного часу для підтвердження та обробки. Важливо забезпечити швидкість та ефективність операцій, щоб клієнти могли зручно та швидко здійснювати оплату. Клієнтська підтримка: Запити клієнтів щодо оплати криптовалютою можуть виникати певні питання або проблеми. Важливо мати належну клієнтську підтримку, яка зможе відповісти на запитання та надати необхідну допомогу. Законодавчі обмеження: У деяких країнах існують обмеження та регуляторні вимоги щодо операцій з криптовалютами. Компанія повинна бути в курсі законодавчих норм та забезпечити дотримання вимог, щоб уникнути правових проблем. 1.4.3. Задачі автоматизації 1. Автоматизація процесу приймання замовлень • Розробка та впровадження телеграм бота, який забезпечує автоматизоване приймання замовлень від клієнтів. • Інтеграція з системою обробки замовлень для швидкого та точного реєстрування замовлень. 2. Автоматична обробка платежів у криптовалюті • Розробка системи автоматичної обробки платежів у криптовалюті, яка забезпечує миттєве підтвердження оплати та оновлення статусу замовлення. • Інтеграція з платіжними шлюзами та криптовалютними мережами для автоматичного отримання та підтвердження платежів. 3. Автоматичне сповіщення клієнтів: • Розробка системи автоматичних повідомлень та сповіщень для клієнтів, яка інформує їх про статус замовлення, етапи виконання та доставку. • Інтеграція з телеграм ботом або іншими засобами зв'язку для надсилання повідомлень клієнтам. 10 4. Звітність та аналітика: • Розробка системи збору та аналізу даних про замовлення, оплати та клієнтів. • Генерація звітів та аналітичних даних для оцінки ефективності бізнесу та виявлення можливих покращень. 5. Керування клієнтським досвідом: • Розробка системи управління клієнтськими даними та інформацією про замовлення для покращення персоналізації та індивідуального підходу до клієнтів. • Впровадження системи зворотного зв'язку та оцінювання задоволеності клієнтів для забезпечення високої якості обслуговування. 1.5. Огляд існуючих рішень для розв’язання виявлених проблем Огляд існуючих рішень для розв'язання виявлених проблем в сфері розробки телеграм ботів та інших рішень для оплати криптовалютою включає наступні приклади компаній, їхні плюси та мінуси: 1. Botpress Плюси • Відкритий вихідний код, що дозволяє розширювати та налаштовувати бота під потреби компанії. • Широкий набір функцій та можливостей для розробки складних ботів з інтеграцією платіжних систем. • Масштабована та гнучка архітектура, що підтримує великі навантаження та розподілену роботу. Мінуси • Вимагає певних навичок програмування та розуміння логіки ботів для ефективного використання. • Самостійне налаштування та підтримка може бути складною для менш досвідчених розробників. • Деякі користувачі вказують на нестабільність та проблеми з безпекою. 2. Chatfuel 11 Плюси • Інтуїтивний і простий інтерфейс для створення та керування телеграм ботами без необхідності програмування. • Багатий функціонал, включаючи можливість інтеграції з платіжними системами для оплати криптовалютою. • Наявність аналітики та засобів відстеження результативності бота. Мінуси • Обмежений у налаштуванні складних логік бота та інтеграції зі специфічними системами. • Обмежена можливість роботи з криптовалютами, що може потребувати додаткових налаштувань або розширень. 3. ManyChat Плюси • Легкість використання та інтуїтивний інтерфейс для створення та налаштування телеграм ботів. • Широкий набір інструментів для автоматизації та інтеграції з платіжними системами. • Можливість створення динамічних ботів зі змінним контентом та персоналізованим підходом до клієнтів. Мінуси • Обмежена можливість налаштування складних логік та індивідуальних сценаріїв бота. • Обмежений функціонал для роботи з криптовалютами, що може вимагати додаткових налаштувань або розширень. Недоліки інших телеграм-ботів порівняно з розробленим ботом для компанії SmartPay Solutions • Складний процес оплати • Обмежені можливості платіжних шлюзів • Нестабільність та помилки 12 • Обмежена функціональність 1.6. Обґрунтування доцільності проєктування й розроблення Проєктування й розроблення телеграм ботів та інших рішень для оплати криптовалютою має ряд обґрунтувань та переваг для компанії SmartPay Solutions. Ось декілька з них: 1. Розширення ринкових можливостей: У віковій ері технологій та швидкого розвитку електронної комерції, наявність телеграм ботів та інших рішень для оплати криптовалютою дозволить компанії SmartPay Solutions розширити свої ринкові можливості. За допомогою таких інструментів, компанія зможе привернути нових клієнтів, які використовують криптовалюту для оплати товарів та послуг. 2. Забезпечення інноваційності: Інтеграція телеграм ботів та інших рішень для оплати криптовалютою дозволить SmartPay Solutions позиціонувати себе як інноваційну компанію в своїй галузі. Це може допомогти привернути увагу і зацікавленість відповідних клієнтів та інвесторів. 3. Зручність для клієнтів: Використання телеграм ботів для оплати криптовалютою забезпечить зручність та швидкість операцій для клієнтів SmartPay Solutions. Клієнти зможуть легко здійснювати покупки та оплачувати послуги через відповідні боти, що поліпшить їхній досвід взаємодії з компанією. 4. Конкурентні переваги: Розробка та впровадження телеграм ботів та рішень для оплати криптовалютою може надати компанії SmartPay Solutions конкурентні переваги на ринку. Це дозволить відокремитись від конкурентів та залучити більше клієнтів, які шукають зручн і та інноваційні способи оплати. 5. Підвищення безпеки: Використання рішень для оплати криптовалютою може покращити рівень безпеки транзакцій для компанії SmartPay Solutions та її клієнтів. Криптовалюта має високий рівень шифрування та захисту, що зменшує ризики шахрайства та крадіжок. Усі ці фактори обґрунтовують доцільність проєктування й розроблення телеграм ботів та інших рішень для оплати криптовалютами в компанії SmartPay 13 Solutions. Це дозволить компанії підвищити свою конкурентоспроможність, забезпечити зручність для клієнтів та розширити свої можливості на ринку. 1.7. Концептуальна модель системи Концептуальна модель системи для компанії SmartPay Solutions, яка займається розробкою телеграм ботів та інших рішень для оплати криптовалютою, може включати наступні ключові компоненти: 1. Користувачі: Це основні актори системи, які включають клієнтів, які використовують телеграм боти для оплати криптовалютою, а також адміністраторів, які керують системою та забезпечують її безперебійну роботу (Рисунок 1.1.). 2. Телеграм боти: Це програмні агенти, розроблені SmartPay Solutions, які інтегруються з месенджером Telegram та надають функціональність оплати криптовалютою. Вони взаємодіють з користувачами, приймають замовлення, обробляють оплату та надають відповідну інформацію. 3. Інтеграція з платіжними шлюзами: Система повинна мати можливість інтеграції з платіжними шлюзами або біржами криптовалют для здійснення операцій обміну та переведення грошей. Це дозволяє користувачам здійснювати оплату за допомогою різних криптовалют. 4. База даних: Для зберігання інформації про користувачів, їх замовлення, історію транзакцій та інші дані системи необхідна база даних. Вона забезпечує надійне зберігання та доступ до потрібних даних. 5. Аналітика та звітність: Система може включати функціонал аналізу та звітності, який дозволяє компанії SmartPay Solutions відстежувати та аналізувати транзакції, доходи, поведінку користувачів та інші показники. Це допомагає приймати стратегічні рішення та вдосконалювати систему. 6. Захист даних: З огляду на важливість безпеки і конфіденційності даних, система повинна мати механізми захисту, включаючи шифрування даних, аутентифікацію користувачів та заходи для запобігання несанкціонованому доступу. 14 Рисунок 1.1. Логічна модель 1.8. Розрахунок економічного ефекту від впровадження системи. Розрахунок економічного ефекту від впровадження системи телеграм ботів та інших рішень для оплати криптовалютой компанією SmartPay Solutions може включати наступні фактори та конкретні цифри: 1. Збільшення обсягу продажів: Впровадження системи телеграм ботів для оплати криптовалютою може залучити нових клієнтів та розширити ринок. Припустимо, що після впровадження системи обсяг продажів компанії збільшиться на 20%. 2. Зниження витрат на операційну діяльність: Використання автоматизованої системи телеграм ботів дозволяє зменшити витрати на обробку замовлень та операції з оплатою. Припустимо, що витрати на операційну діяльність знизяться на 15%. 3. Збільшення середнього чека: Використання рішень для оплати криптовалютой може стимулювати клієнтів до здійснення більших покупок. Припустимо, що середній чек збільшиться на 10%. 15 4. Зменшення витрат на операції обміну валют: Використання криптовалют для оплати дозволяє уникнути витрат на операції обміну валют. Припустимо, що витрати на операції обміну валют зменшаться на 5%. Загальний економічний ефект можна розрахувати за формулою: Економічний ефект = (Збільшення обсягу продажів * Середній чек) – (Старі витрати - Зниженні витрати на операційну діяльність) – (Старі витрати на операції обміну валют - зменшенні витрат на операції обміну валют) Припустимо, що річний обсяг продажів компанії до впровадження системи складав 1 млн. доларів, а середній чек становив 100 доларів. Витрати на операційну діяльність були 200 тис. доларів на рік, а витрати на операції обміну валют становили 50 тис. доларів на рік. Розрахунок гіпотетичного економічного ефекту: Економічний ефект = (1.2 * 100) – (0.30 - 0.15) – (0.1- 0.05) = 115 тис. доларів на рік Отже, впровадження системи телеграм ботів та інших рішень для оплати криптовалютой може призвести до економічного ефекту в розмірі 115 тис. доларів на рік для компанії SmartPay Solutions. 16 РОЗДІЛ 2. ТЕХНІЧНЕ ЗАВДАННЯ НА ПРОЄКТУВАННЯ 2.1. Загальні положення 1.1. Найменування системи «Розроблення телеграм бота для ведення комерції з використанням криптовалюти». Це технічне завдання (далі – ТЗ) розроблено у відповідності з вимогами ДСТУ 34.602-89 і є основним документом, що визначає вимоги та порядок проектування, розробки та впровадження телеграм бота для ведення комерції з використанням криптовалюти. 1.2. Результати робіт зі створення системи оформлюються згідно з вимогами ДСТУ на відповідні етапи розробки. Порядок оформлення і передачі результатів у даному випадку визначається змістом і календарним планом виконання розробки. 1.3. У випадку необхідності на наступних стадіях робіт по створенню системи окремі положення можуть уточнюватися і розвиватися. 2.2. Призначення і цілі створення системи 2.2.1 Призначення системи Система "Розроблення телеграм бота для ведення комерції з використанням криптовалюти" призначена для забезпечення зручного та швидкого процесу замовлення через месенджер Телеграм. Клієнти можуть легко зробити покупку за кілька кроків, надсилаючи повідомлення боту, та оплатити її криптовалютою. Система автоматизує процеси прийому замовлень, обробки платежів та оновлення статусу замовлень, що прискорює обробку та покращує ефективність бізнесу. Взаємодія з клієнтами відбувається безпосередньо через месенджер, дозволяючи швидко відповідати на запитання, надсилати сповіщення та підтримувати актуальний зв'язок. Використання такої системи підвищує конкурентоспроможність компанії і надає перевагу перед конкурентами. 2.2.2 Цілі створення системи Основною метою створення системи "Розроблення телеграм бота для ведення комерції з використанням криптовалюти" є надання зручного та інноваційного інструменту для покупки товарів та послуг через месенджер 17 Телеграм з оплатою криптовалютою. Система спрямована на полегшення процесу замовлення, автоматизацію операцій та взаємодію з клієнтами, забезпечуючи швидку та ефективну комерційну діяльність, а також підвищення конкурентоспроможності компанії в галузі оплати криптовалютою. 2.3. Характеристика об’єкта автоматизації Об'єктом автоматизації є процеси приймання та виконання замовлення в компанії SmartPay Solutions з використанням телеграм бота та інших рішень для оплати криптовалютою. Це включає забезпечення зручного замовлення через месенджер Телеграм, оплату криптовалютою, автоматизацію процесів обробки замовлень, оновлення статусу та взаємодію з клієнтами. Об'єкт автоматизації спрямований на покращення ефективності та швидкості обробки замовлень, полегшення комунікації з клієнтами та забезпечення інноваційних рішень у галузі комерції та оплати криптовалютою. 2.4. Вимоги до системи 2.4.1. Вимоги до системи в цілому. Система повинна задовольняти наступні вимоги: надійність та безпека збереження клієнтської інформації та платежів, швидка та ефективна обробка замовлень, зручний та інтуїтивно зрозумілий інтерфейс для користувачів, можливість оплати криптовалютою, автоматизоване оновлення статусу замовлень, інтеграцію з іншими системами та сервісами, масштабованість для врахування зростаючих потреб бізнесу та забезпечення зв'язку з клієнтами через месенджер Телеграм. 2.4.2. Вимоги до структури і функціонування системи. 2.4.2.1. Система повинна мати клієнт-серверну архітектуру, що використовує єдину базу даних (надалі — БД). Згідно з функціональною структурою, система повинна бути пов’язана в мережі з: • Месенджер Телеграм • Криптовалютні платіжні шлюзи • Внутрішні системи компанії 18 • Зовнішні сервіси доставки • Блокчейн мережа 2.4.2.2. Діагностування функціонування системи в мережі має передбачати виявлення відхилень від нормального процесу розв’язання задач і порушень у роботі комп’ютерно-технічних засобів, а також програмних помилок, забезпечуючи користувачів відповідними діагностичними повідомленнями. 2.4.2.3. Розвиток і модернізація системи "Розроблення телеграм бота для ведення комерції з використанням криптовалюти" повинні проводитися шляхом проведення детального аналізу поточного стану системи та визначення вимог і потреб щодо розвитку функціональності та покращення продуктивності. Для цього необхідно здійснити збір вимог від користувачів, розібратися зі слабкими місцями та проблемами, що виникають у поточній системі, а також визначити цілі та очікувані результати модернізації. Під час аналізу потрібно враховувати поточні вимоги ринку, технологічні тенденції та відгуки користувачів, щоб виявити можливості для вдосконалення системи. Результатом аналізу повинен бути докладний план модернізації, який описує необхідні зміни та впровадження нових функцій для підвищення ефективності та задоволення потреб користувачів. Розроблення детального плану модернізації системи "Розроблення телеграм бота для ведення комерції з використанням криптовалюти" передбачає визначення кроків, ресурсів, бюджету та графіка виконання проекту. У плані потрібно врахувати всі аспекти, включаючи апаратне забезпечення, програмне забезпечення, комунікації, безпеку даних та навчання персоналу. Основними програмно-технічними засобами для успішного функціонування системи обліку вантажів на логістичному хабі є надійна та масштабована інформаційна база даних, інтеграція з системами транспорту та засоби для аналітики та звітності. Ці засоби допоможуть забезпечити точний контроль за рухом вантажів, оптимізувати логістичні процеси та підвищити ефективність роботи на логістичному хабі. Важливим етапом є врахування вимог і побажань користувачів, а також оцінка потенційного впливу модернізації на бізнес-процеси компанії. 19 2.4.2.4. Функціонування системи має забезпечувати діалогову та мережну (розподілену) обробку даних. 2.4.3. Вимоги до чисельності і кваліфікації персоналу. Персонал повинен мати розуміння роботи блокчейну, вміти використовувати телеграм та інші API, бути знайомим з технологіями Coinbase Commerce, базами даних та аналітичними інструментами. Навички комунікації, аналітичного мислення та проблемного вирішення також є важливими. 2.4.3.1. Персонал, який використовує автоматизовану систему, повинен дотримуватися наступних вимог: • пройти навчання і отримати навички роботи на ПК; • дотримуватись технологічних інструкцій при роботі з системою в діалоговому режимі; • дотримуватись умов експлуатації ПК у відповідності з інструкціями по експлуатації; • дотримуватись правил зберігання інформації і організації резервних копій БД; • дотримуватись правил техніки безпеки при роботі на ПК. 2.4.1.2.2. Користувачами системи може виступати різні суб'єкти: Клієнти, які бажають здійснити покупки та оплатити їх криптовалютою; підприємства, які продають товари або послуги і бажають приймати платежі в криптовалюті; торгові платформи або інтернет-магазини, які підтримують оплату криптовалютою та використовують бота як засіб комунікації з клієнтами та обробки платежів. Користувачі мають можливість взаємодіяти з ботом, переглядати товари або послуги, робити замовлення, обирати методи оплати та здійснювати платежі в криптовалюті. Використання телеграм бота дозволяє забезпечити зручну та безпечну оплату криптовалютою, спрощує процес комерційних операцій та підвищує зручність для користувачів. 2.4.4. Показники призначення Відповідно до п. 2.1, показники призначення повинні характеризувати ступінь та якість функціонування телеграм бота для ведення комерції з 20 використанням криптовалюти в компанії SmartPay Solutions. До переліку показників можуть входити такі критерії, як швидкість обробки замовлень, точність розрахунків, стабільність системи, надійність передачі даних, зручність інтерфейсу для користувачів, забезпечення безпеки операцій з криптовалютою та можливість розширення функціоналу. Визначення допустимих значень показників і встановлення їх на оптимальному рівні відбувається на етапі технічного проектування системи з урахуванням вимог та потреб компанії SmartPay Solutions. 2.4.5. Вимоги до надійності. 2.4.5.1. Система є багатофункціональною і призначена для використання протягом робочого дня. Всі функції системи виконуються дискретно. У відповідності з ДСТУ 2226-93 оцінка надійності проводиться по кожній функції окремо. Враховуючи особливості функціонування системи, показники її надійності є показниками надійності СУБД, на якій вона реалізована, та технічних засобів, на яких вона експлуатується. Вимоги до надійності системи включають високу доступність, резервне копіювання, захист від втрати даних, швидке відновлення, масштабованість та систематичне тестування та монітори. 2.4.6. Комплекс технічних засобів повинен передбачати: 1. Інтегровану платформу для розробки та впровадження телеграм ботів, забезпечуючи зручний інтерфейс для програмування функціоналу, обробки платежів у криптовалюті та взаємодії з користувачами. 2. Захищену систему збереження і обробки даних, яка забезпечує конфіденційність та надійність інформації про транзакції та платежі у криптовалюті. 3. Інтеграцію з різноманітними платіжними шлюзами та біржами криптовалют, що дозволить користувачам здійснювати оплату товарів і послуг у різних криптовалютах з використанням зручного та безпечного інтерфейсу телеграм бота. 4. Механізми автоматичного виведення криптовалюти на біржах або в інші зовнішні системи, що забезпечить швидке та зручне отримання коштів від користувачів та їх подальше використання. 21 5. Функціонал для моніторингу та аналізу статистики платежів, замовлень та поведінки користувачів, що дозволить компанії SmartPay Solutions отримувати цінну інформацію для вдосконалення своїх послуг та стратегії розвитку. 6. Засоби для автоматизації процесів обробки та відстеження замовлень, що забезпечать швидке та ефективне виконання операцій з криптовалютою, а також зручне спілкування з клієнтами через телеграм бота. 7. Систему підтримки та зв'язку з користувачами, що дозволить оперативно відповідати на запити, надавати консультації щодо оплати криптовалютою та вирішувати проблеми, які виникають у процесі взаємодії з телеграм ботом. 2.4.7. Вимоги до безпеки. 1. Конфіденційність даних: Система повинна забезпечувати захист конфіденційної інформації, такої як персональні дані користувачів та фінансові дані. Всі дані повинні бути зашифровані та зберігатися в безпечному середовищі. 2. Аутентифікація та авторизація: Система повинна мати механізми аутентифікації користувачів та контролю доступу до функціоналу на основі ролей. Це дозволить забезпечити, що лише авторизовані користувачі мають доступ до фінансових операцій та інших важливих функцій. 3. Захист від шахрайства: Система повинна мати заходи для виявлення та запобігання шахрайським діям, таким як шахрайські платежі або використання неправомірних методів отримання криптовалюти. Автоматизовані механізми перевірки операцій та моніторингу можуть допомогти виявити підозрілу активність та вжити відповідних заходів. 4. Фізична безпека: Сервери та інфраструктура, що використовуються для забезпечення роботи системи, повинні бути фізично захищеними від несанкціонованого доступу. Це включає контроль доступу до приміщень, резервне копіювання даних та захист від природних та технічних небезпек. 5. Безпека комунікацій: Комунікація між користувачем і системою, а також між компонентами системи, повинна бути зашифрована та захищена від перехоплення або модифікації. Використання шифрування, протоколів безпеки та сертифікатів SSL можуть забезпечити безпеку комунікацій. 22 2.4.8. Вимоги з ергономіки та технічної естетики. Загальні ергономічні і естетичні вимоги до системи повинні відповідати держстандартам ДСТУ 8604:2015, ДСТУ 7298:2013. Освітленість робочого місця повинна відповідати ДСТУ EN 12464-1:2016, ДБН В.2.5-28-2006. Засоби відображення повинні розміщуватися таким чином, щоб кут спостереження екрану складав не більше, ніж 45 градусів, мінімальна відстань спостереження екрану — 0,3 м, рекомендована — 0,5 м. При розробленні ПЗ слід створити зручний інтерфейс для запобігання втомлюваності користувача. 2.4.9. Вимоги по експлуатації, технічного обслуговування, ремонту і зберігання компонентів системи. 2.4.9.1. Система повинна обслуговуватись згідно з вимогами стандарту ДСТУ EN 13306:2019, який визначає типи обслуговування, включаючи експлуатацію, технічне обслуговування і ремонт. Крім того, загальні вимоги до експлуатації, технічного обслуговування і ремонту повинні відповідати стандарту ДСТУ 3576- 97. 2.4.9.2. Для розміщення технічних засобів системи необхідно враховувати вимоги, визначені в будівельних нормах ДБН В.2.2-9-2009. Експлуатаційна документація також має містити необхідні вимоги щодо розміщення. Напруга живлення для технічних засобів системи повинна бути 220/380 В змінного струму і частотою (50±1) Гц. Допустиме відхилення напруги становить від +10 до –15%, а тривалість перерв у живленні не повинна перевищувати 0,001 с. 2.4.9.3. Кількість, кваліфікація і режими роботи обслуговуючого персоналу повинні відповідати рекомендаціям, що вказані в технічних умовах і інструкціях з експлуатації окремих технічних засобів. 2.4.9.4. Сервер, розміщення і умови зберігання інформації системи визначається рекомендаціями, зазначеними в експлуатаційній документації на ці елементи. 2.4.9.5. Регламент обслуговування повинен відповідати їх рівню і умовам роботи, щоб у випадку відмови системи забезпечити роботу в аварійному режимі. 23 2.4.10. Вимоги до захисту інформації від несанкціонованого доступу для системи, передбачають використання надійних методів автентифікації та ідентифікації користувачів, впровадження механізмів керування доступом та сильних паролів. Також необхідно застосовувати шифрування для захисту конфіденційної інформації, забезпечувати безпеку мережевого зв'язку та захист даних під час їх передачі. Окрім цього, важливим є фізичний захист серверних приміщень та обладнання. 2.4.11. Вимоги щодо збереження інформації при аваріях. 2.4.11.1. Необхідно передбачити засоби резервного збереження БД в архіві після коригування і можливість завантажити БД з архіву у випадку її руйнування. 2.4.11.2. Резервний архів і БД мають знаходитись на різних машинних носіях чи пристроях. 2.4.11.3. Вимоги по захисту від впливу зовнішніх діянь. 2.4.11.4 Електрична складова електромагнітного поля завад в приміщеннях не повинна перевищувати 0,3 В/м2 в діапазоні частот від 0,15 до 300 МГц. Для захисту від впливу електромагнітних полів та індустріальних завад слід передбачити різноманітні екрани та фільтри. 2.4.11.5. Засоби, які виключають вплив шкідливих факторів на функціонування комплексу технічних засобів, повинні бути запроектовані згідно з ДБН В.2.2-9-2009. Обчислювальні засоби по стійкості до зовнішніх впливів повинні відповідати ДСТУ 2506-94. 2.4.11.6. Вимоги до патентної чистоти. При створенні даної системи патентні дослідження не проводяться. 2.4.11.7. Вимоги по стандартизації і уніфікації є невід'ємною частиною розроблення телеграм ботів та інших рішень для оплати криптовалютою. Вони спрямовані на використання відповідних стандартів, нормативних документів і рекомендацій з метою забезпечення систематичного та стандартизованого підходу до проектування, розроблення і впровадження таких систем. Стандартизація включає в себе використання визначених стандартів для програмування, обміну даними, криптографічних протоколів та безпеки 24 інформації. Це дозволяє забезпечити відповідність розроблених систем встановленим нормам і забезпечити їх сумісність з іншими системами та послугами. Стандартизовані підходи до інтерфейсів користувача, форматів даних і протоколів комунікації також сприяють зручності взаємодії та обміну інформацією між різними компонентами системи. Уніфікація включає в себе використання загальноприйнятих та стандартизованих підходів до розроблення систем, що дозволяє забезпечити їх однорідність і сумісність. Це означає використання спільних рішень, структур даних, алгоритмів та методологій розробки, що спрощує процес розроблення та підтримки систем. Уніфіковані підходи також сприяють зниженню складності і покращенню швидкості розробки, а також сприяють легкості впровадження і масштабуванню систем. Застосування вимог по стандартизації і уніфікації допомагає забезпечити якість, стабільність, надійність і ефективність розроблених систем телеграм ботів та рішень для оплати криптовалютою. Вони дозволяють побудувати систему, яка відповідає вимогам стандартів безпеки, інтероперабельності та надійності, що є важливими факторами успіху для компанії, яка працює у сфері телеграм ботів та оплати криптовалютою. 2.5. Вимоги до функцій. 2.5.1. Перелік функцій із зазначенням вхідної та вихідної інформації наведено в таблиці 2.1. Таблиця 2.1. Перелік функцій, вхідної та вихідної інформації № п/п Найменування функції Вхідна інформація Вихідна інформація 1 Збір замовлень від користувачів Замовлення від користувачів Зібрані замовлення 2 Обробка замовлень Зібрані замовлення Підтверджені замовлення 25 № п/п Найменування функції Вхідна інформація Вихідна інформація 3 Формування рахунку для оплати Підтверджені замовлення Рахунок для оплати 4 Оплата криптовалютою Рахунок для оплати Підтвердження оплати 5 Підтвердження оплати Підтвердження оплати Статус оплати 6 Виконання замовлення Статус оплати Завершене замовлення Функції мають забезпечити раціональну організацію роботи користувача на основі безперервної технології: заповнення БД, довідників, формування різнорідних звітів і виконання інших функцій, визначених чинним документом. При цьому пріоритетом є зручність введення та використання інформації користувачем за рахунок формування підказок і меню на екрані монітора. 2.6. Вимоги до видів забезпечення. 2.6.1. У вимогах до математичного забезпечення (МЗ) система не вимагає спеціального математичного забезпечення для реалізації покладених на неї функцій. Достатньо можливостей обраної СУБД. 2.6.2. Вимоги до інформаційного забезпечення (ІЗ). 2.6.2.1. Інформаційне забезпечення системи повинно містити дані, достатні для виконання всіх покладених на систему функцій. ІЗ повинно гарантувати раціональну організацію зберігання інформації та доступу до неї. 2.6.2.2. Слід передбачити захист даних від руйнування при аваріях і порушеннях у енергоживленні системи — використання резервних копій БД. 2.6.3. Вимоги до лінгвістичного забезпечення (ЛЗ) включають: 1. Мультиязичність: Система повинна підтримувати різні мови для взаємодії з користувачами. Це означає, що інтерфейс користувача, повідомлення, інструкції та інші елементи системи мають бути доступними у різних мовах. 26 2. Точність та зрозумілість: Лінгвістичні елементи системи, такі як повідомлення, інструкції та помилки, повинні бути сформульовані чітко та зрозуміло. Точність і відповідність мовним правилам допомагають уникнути непорозумінь та помилок у взаємодії з користувачами. 3. Гнучкість та розширюваність: Лінгвістичне забезпечення повинно бути гнучким і легко розширюваним для введення нових мов або зміни існуючих. Це може включати можливість додавання нових перекладів, оновлення локалізації та налаштування мовних параметрів. 4. Культурні аспекти: Лінгвістичне забезпечення повинно враховувати культурні особливості та норми різних мовних спільнот. При використанні ідіом, фразеологізмів або локалізованих термінів, слід враховувати їх значення та контекст, щоб забезпечити належне розуміння інформації користувачами. 5. Підтримка машинного перекладу: Якщо система передбачає взаємодію з користувачами з різних мовних спільнот, може бути корисним використання механізмів машинного перекладу для автоматичного перекладу текстової інформації. Це дозволяє забезпечити базове розуміння тексту для користувачів, які не володіють основною мовою системи. 6. Локалізація дат, часу та форматів: Система повинна підтримувати локалізацію дат, часу та форматів відображення числових значень. Це дозволяє адаптувати відображення дати, часу та чисел до мовних та культурних вимог різних користувачів. 7. Переклад документації: Лінгвістичне забезпечення повинно включати переклад документації та пояснювальних матеріалів для користувачів у різних мовах. Це забезпечує доступність та зрозумілість інформації про систему для широкого кола користувачів. 2.6.3.1. Для розробки програмних засобів, які реалізують виконання функцій і забезпечують сервіс користувачів повинні використовуватися мови високого рівня, які забезпечують створення структурних програм, а також мова обраної СУБД для здійснення доступу та маніпулювання даними. 27 2.6.3.2. Організація діалогу користувача до системи має будуватися на наборах меню, орієнтованих на виконання користувачем функцій. Запити користувача до системи повинні задаватись переважно природною мовою. 2.6.4. Вимоги до програмного забезпечення (ПЗ). 2.6.4.1. Програмне забезпечення (ПЗ) повинне включати загальне (або системне) ПЗ і спеціалізоване ПЗ. Загальне ПЗ включає такі програми та інструменти, як: Операційна система: Наприклад, Windows, macOS, Linux тощо. Вона забезпечує базові функції управління ресурсами комп'ютера, включаючи керування процесами, файловою системою, мережею тощо. Бази даних: Наприклад, MySQL, Oracle, Microsoft SQL Server тощо. Вони використовуються для організації та збереження даних, забезпечуючи доступ до них та можливість виконання операцій з даними. Розробницькі середовища: Наприклад, IntelliJ IDEA, Visual Studio, Eclipse тощо. Вони надають засоби для розробки програм, включаючи редактори коду, відладчики, компілятори та інші інструменти. Інструменти для контролю версій: Наприклад, Git, Subversion, Mercurial тощо. Вони дозволяють керувати версіями програмного коду, виконувати злиття різних версій, відстежувати зміни тощо. Спеціалізоване ПЗ включає програми та інструменти, які розробляються для конкретних потреб і завдань, пов'язаних з логістичними процесами, телеграм ботами та оплатою криптовалютою. Це можуть бути: Інформаційні системи для обліку вантажів: Розроблені спеціально для логістичних процесів, ці системи дозволяють відстежувати, обліковувати та керувати рухом вантажів, а також надають звіти та аналітичні інструменти. Телеграм боти: Розроблені для автоматизації комунікації з клієнтами через популярний месенджер Telegram. Вони можуть надавати інформацію про товари, послуги, статус замовлень та забезпечувати можливість оплати криптовалютою. Рішення для оплати криптовалютою: Програми та інструменти, які дозволяють приймати платежі у криптовалюті, забезпечують безпеку та 28 шифрування платіжних транзакцій, а також інтеграцію з різними платіжними шлюзами. 2.7. Вимоги до технічного забезпечення. 2.7.5.1. Технічні засоби системи (табл. 2.2) повинні забезпечувати виконання функцій, перерахованих в таблиці 2.2. 2.7.5.2. Засоби обчислювальної техніки повинні забезпечувати обмін інформації в об’ємах, приведених в п. 4.3.2. Таблиця 2.2. Вимоги до технічного забезпечення системи № п/п Основні характеристики комп’ютера Технічне забезпечення для сервера 1 2x Intel Xeon E5-2670 v3 Cores: 2x 12x 2.30 GHz (Dual 12 Core) RAM: 192 GB DDR4 ECC reg. HDDs: 16x 4 TB SATA 7.2k RPM HW Raid IPMI/KVM Технічне забезпечення для клієнта 1 Клієнтам може знадобитися комп'ютер або мобільний пристрій (смартфон, планшет), залежно від характеру продукту або послуги. Цей пристрій повинен мати відповідну обчислювальну потужність 2 Операційна система: Клієнтам потрібно мати операційну систему, яка підтримується продуктом або послугою компанії. Наприклад, це може бути Windows, macOS, iOS або Android. 3 Інтернет-з'єднання: Для доступу до продукту або послуги через мережу необхідне стабільне та швидке Інтернет-з'єднання. Швидкість з'єднання може впливати на продуктивність та якість користування продуктом або послугою. 4 Веб-браузер: Багато продуктів або послуг працюють через веб- інтерфейс, тому клієнтам потрібен сумісний веб-браузер. Популярні веб-браузери включають Google Chrome, Mozilla Firefox, Microsoft Edge, Safari тощо. 29 2.7.6. Вимоги до метрологічного забезпечення. Система не має вимірювальних каналів, вимірювального обладнання і приладів, тому вимоги до даного виду забезпечення не висуваються. 2.7.7. Вимоги до організаційного забезпечення. 2.7.7.1. Організаційне забезпечення системи розробляється в відповідності з вимогами державного стандарту по АСУП. 2.7.7.2. При впровадженні системи не передбачається збільшення штатної чисельності підприємства. Територіальне розміщення робочих місць, на яких буде встановлена система, визначається підприємством. 2.7.7.3. До функціонування системи висуваються наступні вимоги: 2.7.7.3. До функціонування системи висуваються наступні вимоги: Надійність: Система повинна бути стабільною і надійною, забезпечуючи безперебійну роботу без серйозних збоїв або відмов. Вимоги до надійності можуть включати запобігання аварійним ситуаціям, відновлення після збоїв та забезпечення резервування даних. Швидкодія: Система повинна працювати ефективно і швидко в обробці запитів користувачів і забезпечувати мінімальні часи відповіді. Вимоги до швидкодії можуть включати оптимізацію алгоритмів, розподілення завдань та використання ефективних апаратних ресурсів. Масштабованість: Система повинна бути здатною до масштабування, тобто збільшення своєї продуктивності і потужності при зростанні обсягу даних або користувацького навантаження. Вимоги до масштабованості можуть включати горизонтальне розширення, вертикальне розширення та використання розподіленої архітектури. Сумісність: Система повинна бути сумісною з іншими технологіями, стандартами і системами, з якими вона повинна взаємодіяти. Вимоги до сумісності можуть включати підтримку протоколів зв'язку, інтеграцію зі сторонніми додатками та забезпечення взаємодії з іншими системами. Легкість використання: Система повинна бути зручною і простою у використанні для користувачів. Вимоги до легкості використання можуть 30 включати зрозумілий інтерфейс користувача, інтуїтивні дії та навігацію, а також підтримку документації та навчання користувачів. Безпека: Система повинна забезпечувати високий рівень безпеки для захисту конфіденційності, цілісності та доступності даних. Вимоги до безпеки можуть включати автентифікацію і авторизацію користувачів, шифрування даних, захист від несанкціонованого доступу і виявлення зловживань. Сумісність з мобільними пристроями: Система повинна бути сумісною з мобільними пристроями, такими як смартфони і планшети, забезпечуючи зручну роботу через мобільні додатки або веб-версії. Вимоги до сумісності з мобільними пристроями можуть включати адаптивний дизайн, оптимізацію для різних платформ і операційних систем. 2.8. Склад і зміст робіт по створенню системи. 2.8.1 Стадії створення системи і терміни виконання робіт наведені в таблиці 2.3. Таблиця 2.3. Найменування робіт при створенні системи /п Найменування робіт Строки виконання робіт 1 Передпроектне дослідження об’єкта автоматизації 10.03.2023 2 Технічне завдання 15.04.2020 3 Технічний проект 20.05.2020 4 Оформлення документації 10.06.2020 2.9. Порядок контролю і приймання системи. 2.9.1. Перед прийманням системи здійснюється комплексний контроль її відповідності вимогам і технічним характеристикам, встановленим у технічному завданні та документації проекту. 2.9.2. Контроль і приймання системи проводяться за наступним порядком: 2.9.2.1. Перевірка виконання технічних вимог: Перевіряється, чи система відповідає вимогам, зазначеним у технічному завданні. Це включає перевірку функціональності, продуктивності, надійності та інших технічних параметрів. 31 2.9.2.2. Тестування системи: Здійснюється комплексне тестування системи з метою перевірки її працездатності, відповідності вимогам та виявлення можливих помилок або недоліків. Тестування може включати функціональне тестування, тестування продуктивності, безпеки та інші види тестування, залежно від потреб проекту. 2.9.2.3. Перевірка документації: Перевіряється наявність та відповідність документації, пов'язаної з системою, такої як технічна документація, інструкції з експлуатації, керівництва для користувача та інші документи. Вони повинні бути повними, зрозумілими і відповідати вимогам стандартів та рекомендацій. 2.9.2.4. Приймання системи: Після успішного проходження контролю і тестування система приймається замовником або відповідними структурними підрозділами компанії. У разі виявлення недоліків або відхилень вимагається їх усунення перед прийманням. 2.9.2.5. Документування результатів: Результати контролю і приймання системи фіксуються відповідною документацією, яка включає протоколи тестування, акти приймання, відомості про виявлені недоліки та іншу необхідну інформацію. 2.9.3. Контроль і приймання системи проводяться відповідно до узгодженого графіка і залежно від потреб проекту. Після приймання система готова до подальшої експлуатації та використання замовником. 2.10. Вимоги до телеграм-бота і змісту робіт із підготовки до введення системи в дію. 2.10.1. Вимоги до телеграм-бота: • Телеграм-бот повинен бути розроблений з використанням сучасних технологій та забезпечувати надійне та безперебійне функціонування. • Бот повинен мати інтуїтивно зрозумілий інтерфейс, що дозволяє користувачам легко взаємодіяти з ним та здійснювати необхідні операції. • Телеграм-бот повинен забезпечувати безпеку і захист інформації користувачів, включаючи механізми автентифікації, шифрування та контролю доступу. 32 2.10.2. Зміст робіт із підготовки до введення системи в дію: Налаштування телеграм-бота: Включає налаштування параметрів телеграм- бота, встановлення зв'язку з необхідними сервісами та інтеграцію з системами оплати криптовалютою. Тестування та відладка: Проводиться комплексне тестування телеграм-бота для перевірки його працездатності, виявлення та виправлення можливих помилок або недоліків. Навчання персоналу: Проводиться навчання операторів та інших відповідальних осіб, як користуватися телеграм-ботом, здійснювати операції з оплатою криптовалютою та вирішувати потенційні проблеми. Підготовка документації: Розробляється необхідна документація, включаючи інструкції з використання телеграм-бота, керівництва для користувачів та інші відповідні матеріали. Планування впровадження: Розробляється план впровадження системи в дію, включаючи часові рамки, розподіл ролей та завдань, комунікацію зі зацікавленими сторонами та інші необхідні етапи. 2.11. Вимоги до документації. 2.11.1. Загальні вимоги до документації: • Документація повинна бути чітко структурованою, зрозумілою та доступною для користувачів. • Документація повинна містити повну та точну інформацію про систему, її функціональні можливості, установку, налаштування та використання. • Документація повинна бути збережена у відповідному форматі, який дозволяє зручне зчитування та пошук необхідної інформації. 2.12. Джерела розробки. 2.12.1. При розробленні технічного завдання на систему використано наступні документи: 1. Вимоги замовника: Документ, що містить вимоги та очікування замовника щодо системи, її функціональності, вимог до безпеки, продуктивності та інших аспектів. 33 2. Раніше розроблені документи: Існуючі документи, пов'язані з подібними проектами або схожими системами, які можуть містити корисну інформацію щодо вимог та кращих практик. 3. Стандарти та регуляторні вимоги: Розділи, протоколи, стандарти та нормативні документи, які встановлюють вимоги до безпеки, якості, документації та інших аспектів системи. 4. Дослідження ринку та аналіз конкурентів: Документи, що містять інформацію про ринок, конкурентів, тенденції та інновації, що можуть вплинути на розробку системи. 5. Експертні оцінки та консультації: Звіти, огляди та консультації від експертів, які надають свої рекомендації та висновки щодо технічного завдання та вимог до системи. 6. Внутрішні документи компанії: Внутрішні стандарти, політики, процедури та документи компанії, які встановлюють вимоги до розробки систем та їх документації. 7. Консультації зі замовником: Взаємодія зі замовником та його представниками для уточнення вимог, отримання додаткової інформації та отримання зворотного зв'язку. 34 РОЗДІЛ 3. ОПИС КОМЛЕКСУ ЗАДАЧ АВТОМАТИЗАЦІЇ 3.1. Інформаційне забезпечення системи Для створення розробленого телеграм бота для ведення комерції з використанням криптовалюти було використано такі програмні засоби: 1. MS SQL Server 2019. 2. Microsoft Visual Studio Code 2022. 3. Web3.py 5. Aiogram Спочатку нам потрібно створити бота в інструменті @BotFather від телеграм, щоб отримати API ключ Рисунок 3.1. Створення АПІ ключа Тепер створимо відповідні системи даних: Модель "Product": Таблиця "products" зі стовпцями: • "id" (цілочисельний, первинний ключ, індексований) 35 • "user_id" (цілочисельний) • "name" (рядок, індексований) • "price" (цілочисельний) • "description" (рядок) • "image_url" (рядок) Модель "Order": Таблиця "orders" зі стовпцями: • "order_id" (цілочисельний, первинний ключ, індексований) • "user_id" (цілочисельний, зовнішній ключ, посилається на "user_id" в таблиці "users") • "item_id" (цілочисельний) • "name" (рядок) • "price" (цілочисельний) • "order_status" (рядок) Модель "User": Таблиця "users" зі стовпцями: • "user_id" (цілочисельний, первинний ключ, індексований) • "user_private_key" (рядок) • "balance" (цілочисельний) • "total_spendings" (цілочисельний) • "order_history" (рядок) • "is_admin" (логічний) Ці фрагменти коду відповідають за створення бази даних і таблиць для телеграм-бота. Основний клас, який містить ці методи, має конструктор `__init__`, який встановлює з'єднання з базою даних SQLite і створює об'єкт метаданих для визначення структури таблиць. 1. Крок 1: Визначення шляху до бази даних 36 • Код отримує поточний каталог, в якому знаходиться файл коду, використовуючи `os.path.dirname(os.path.abspath(__file__))`. • Обчислюється шлях до каталогу бота, шлях до бази даних (в даному випадку - `data.db`) і об'єднується за допомогою `os.path.join`. 2. Крок 2: Створення з'єднання з базою даних • Використовується `db.create_engine`, де передається рядок підключення до бази даних SQLite з використанням шляху до бази даних `db_path`. • З'єднання з базою даних створюється за допомогою `self.engine = db.create_engine(f"sqlite:///{db_path}/")`. 3. Крок 3: Створення метаданих таблиць • Використовується `db.MetaData(bind=self.engine)`, де `self.engine` - це об'єкт з'єднання з базою даних. • Метадані використовуються для визначення структури таблиць. 4. Крок 4: Створення сесії для взаємодії з базою даних • Використовується `sessionmaker(bind=self.engine)`, де `self.engine` - це об'єкт з'єднання з базою даних. • Сесія створюється за допомогою `self.DBsession()`, і вона використовується для взаємодії з базою даних. 5. Крок 5: Створення таблиць • Використовується `Base.metadata.create_all(self.engine)`, де `Base.metadata` - це об'єкт метаданих, який містить опис структури таблиць. • Цей метод створює всі таблиці, які описані в моделях даних. 3.2. Алгоритмізація та реалізація комплексу задач автоматизації. Система працює шляхом навігації за допомогою відповідних кнопок меню та переходу до різних вкладок, де відображаються різноманітні форми. У телеграм-боті процес авторизації та аутентифікації може включати запит користувача на введення облікових даних, їх перевірку з внутрішньою базою даних, а також використання додаткових методів перевірки, які можуть бути налаштовані залежно від вимог системи та рівня безпеки. 37 Рисунок 3.1. Код функції для реєстрації користувача Рисунок 3.2. Повідомлення користувачу при реєстрації Цей код відповідає на команду "/start" в телеграм-боті і здійснює обробку нових користувачів. При отриманні команди "/start", код отримує ідентифікатор користувача з повідомлення. Далі перевіряється, чи існує користувач з таким ідентифікатором в базі даних. Якщо користувача не існує, він реєструється в базі даних за допомогою функції `register_user()`. Після цього відправляється повідомлення користувачеві про успішну реєстрацію, а також надається клавіатура з кнопками, створена за допомогою функції `menu_buttons()`. Якщо користувач вже зареєстрований, йому надсилається привітальне повідомлення разом з клавіатурою. Після авторизації у звичайного користувача є 4 кнопки на вибір Рисунок 3.3. Вид меню для користувача Якщо у коричтувача є роль админістратора - у ньго будуть такі кнопки Рисунок 3.4. Вид меню для адміністратора 38 Код має вигляд: def menu_buttons(user_id): btn_catalog = KeyboardButton('🧺 Каталог') btn_balance = KeyboardButton('💲 Баланс') btn_add_product = KeyboardButton('➕ Додати товар') btn_paymenthelp = KeyboardButton("✉️ Зворотний зв'язок") btn_order_history = KeyboardButton('Історія замовлень') if db.is_user_admin(user_id): btn_admin = KeyboardButton('Адміністрування', callback_data='admin_panel') kb_full2 = ReplyKeyboardMarkup(row_width=2, resize_keyboard=True).add(btn_catalog, btn_balance, btn_add_product, btn_paymenthelp, btn_order_history, btn_admin) else: kb_full2 = ReplyKeyboardMarkup(row_width=2, resize_keyboard=True).add(btn_catalog, btn_balance, btn_paymenthelp, btn_order_history) return kb_full2 Рисунок 3.5. Код створення меню Ця функція `menu_buttons(user_id)` створює клавіатуру з кнопками для меню користувача в телеграм-боті. Залежно від ролі користувача (адміністратор або звичайний користувач), функція додає відповідні кнопки до клавіатури. Для звичайного користувача, кнопки включають "Каталог" (btn_catalog)(Код функції Рисунок 3.31, Додаток А), "Баланс" (btn_balance), "Зворотний зв'язок" (btn_paymenthelp) та "Історія замовлень" (btn_order_history). Для адміністратора, до цих кнопок додатково додається кнопка "Адміністрування" (btn_admin) з callback-даними "admin_panel". У якій можливо додати товар(Додаток Б.) Отримана клавіатура потім використовується для відображення меню користувачу в телеграм-боті. 1. Для того щоб додати новий товар скористаємося кнопкою адміністратора Тепер цей товар може побачити кожен користувач. Приклад того що бачить користувач (Додаток Б) Створення бази даних (Додаток Г) 39 Після того як користувач обрав товар у каталозі він побачить ось це: Рисунок 3.6. Огляд товару перед замовленням У користувача є 2 опції: ▪ Покупка викоистовуючи баланс ▪ Покупка використовуючи CoinBase Ось як це виглядає у коді(Рисунок 3.7): @dp.message_handler(text='💲 Баланс') async def process_balance_button(message: Message): if db.is_user_exist(message.chat.id): user_id = message.chat.id message_id = message.message_id chat_id = message.from_user.id pv_key = str(db.get_private_key(message.chat.id)) bsc = Bsc(pv_key) address = bsc.address_from_private_key() balance = get_balance(bsc, chat_id) await bot.send_message(chat_id=chat_id, text=f"User Id: {user_id}\n\nВаш баланс {balance}$\n\nЩоб поповнити баланс відправте BUSD або USDT у мережі Binance Smart Chain(BEP-20) на адресу {address}", parse_mode=ParseMode.HTML) else: await bot.send_message(chat_id=chat_id, text="Натисніть /start") Рисунок 3.7. Код фунції Баланс 40 Ця функція `process_balance_button(message)` обробляє натискання кнопки " Баланс" у телеграм-боті. Вона перевіряє, чи існує користувач в базі даних, і якщо так, відображає його баланс та адресу гаманця. Для отримання балансу використовується приватний ключ користувача, який отримується з бази даних. За допомогою приватного ключа створюється об'єкт Bsc, який представляє з'єднання з мережею Binance Smart Chain. Після цього виконується запит до мережі для отримання балансу. Отриманий баланс разом з іншою інформацією (наприклад, ідентифікатор користувача та адреса гаманця) відправляється користувачеві у вигляді повідомлення. При виборі першої опції користувач має спочатку поповнити баланс, відправивши USDT або BUSD на сгенерований спеціально для нього гаманець, який можна побачити у меню 💲 Баланс Рисунок 3.8. Перевірка балансу Після цього у користувача списується потрібна сума та він бачить таке повідомлення Рисунок 3.9. Покупка товару 41 Якщо користувач обирає другу опцію «Оплата CoinBase» то підключається відповідний модуль: @dp.callback_query_handler(text_startswith='coinbase_buy_item') async def handle_buy_request(callback_query: CallbackQuery): callback = callback_query.data.replace("itemDescription-", '').split('-') user_id = callback_query.message.chat.id item = db.get_item_by_id(callback[1]) price = float(item[3]) description = item[4] item_name = item[2] invoice_req = invoice(user_id, price, f"{item_name}\n{description}") inline_item_coinbase = InlineKeyboardMarkup(row_width=1) inline_item_coinbase.add(InlineKeyboardButton(text=f'🛒 Придбати цей товар за {price}$ за допомогою CoinBase', url=invoice_req['url'])) inline_item_coinbase.add(InlineKeyboardButton(text=f'Перевірити оплату', callback_data=f"coinbase_invoice_check-{invoice_req['id']}")) Рисунок 3.10. Код фукції для оплати Coinbase Ця функція `handle_buy_request(callback_query)` обробляє запит на покупку товару через платформу Coinbase у телеграм-боті. Вона отримує дані з callback запиту, включаючи ідентифікатор товару та інші деталі. За допомогою ідентифікатора товару, отриманого з callback запиту, отримується повна інформація про товар з бази даних. Це включає ціну товару, опис та назву. Після цього генерується рахунок (invoice) для покупки товару за допомогою платформи Coinbase. Інформація про рахунок та посилання на оплату додаються до інлайнової клавіатури (InlineKeyboardMarkup). Користувач може натиснути на кнопку " Придбати цей товар за {price}$ за допомогою CoinBase", щоб перейти до сторінки оплати на Coinbase. Також додається кнопка "Перевірити оплату", яка створює callback запит для перевірки статусу оплати рахунку. Далі користувач бачить таку картину з посиланням на сгенерований інвойс 42 Рисунок 3.11. Посилання на інвойс • У якому в нього є набагато більше вибору при оплаті. • Після оплати користувач має натиснути на кнопку «Перевірити оплату». • Якщо оплата успішна – він отримає таке саме повідомлення як і при першому варіанті оплати. Створення і обробку інвойса(Додаток В) 2. Формування історії завмовлень: При натисканні користувачем на відповідну кнопку він отримає усі свої попередні замовлення. Рисунок 3.12. Історія замовлень 43 Код: @dp.message_handler(text='Історія замовлень') async def process_balance_button(message: Message): if db.is_user_exist(message.chat.id): user_id = message.chat.id message_id = message.message_id chat_id = message.from_user.id orders = db.get_user_orders(user_id) for order in orders: price = order.price name = order.name order_status = order.order_status await bot.send_message(chat_id=chat_id, text=f"{name} {price}$ Статус: {order_status}", reply_markup=menu_buttons(user_id)) else: await bot.send_message(chat_id=chat_id, text="Нажмите /start") Рисунок 3.13. Код функції історії замовлень Ця функція `process_balance_button(message)` обробляє запит на перегляд історії замовлень у телеграм-боті. Якщо користувач існує в базі даних, отримуються його замовлення з бази даних за допомогою `db.get_user_orders(user_id)`. Для кожного замовлення отримується його ціна, назва та статус. Ці дані відправляються користувачу за допомогою `await bot.send_message(...)` у вигляді повідомлення. Кожне повідомлення містить інформацію про замовлення, включаючи назву, ціну та статус. 3. Зворотній зв’язок При натисканні відповідної кнопки в головному меню – користувач отримуює повідомлення: Рисунок 3.14. Зворотній зв’язок 44 Код: @dp.message_handler(text="✉️ Зворотний зв'язок") async def process_balance_button(message: Message): if db.is_user_exist(message.chat.id): user_id = message.chat.id chat_id = message.from_user.id await bot.send_message(chat_id=chat_id, text=f"При виникненні питань - писати @ExampleSupport", reply_markup=menu_buttons(user_id)) else: await bot.send_message(chat_id=chat_id, text="Нажмите /start") Рисунок 3.15 Код функції Зворотній зв’язок. 4. Функція додавання админістратора Адміністратор має змогу добавити іншого натиснувши відповідну кнопку у меню Рисунок 3.16. Кнопка щоб додати адміністратора Код цієї функції: @dp.message_handler(text='Додати адміністратора') async def add_admin(message: Message): user_id = message.chat.id print(user_id) if db.is_user_admin(user_id): await AdminStates.waiting_for_add_admin.set() await bot.send_message(user_id, 'Введіть user_id коротий буде адміністратором:') Рисунок 3.17. Код функції щоб додати адміністратора Ця функція `add_admin(message)` обробляє запит на додавання адміністратора в телеграм-боті. Якщо користувач, що надіслав запит, є адміністратором (перевіряється за допомогою `db.is_user_admin(user_id)`), то встановлюється стан очікування для додавання адміністратора за допомогою `AdminStates.waiting_for_add_admin.set()`. Після цього, бот надсилає повідомлення користувачеві (`user_id`) з проханням ввести `user_id` користувача, якого потрібно зробити адміністратором. 45 Рисунок 3.18. Результат додавання 5. Функція додавання балансу Ця функція також може бути викликана через админ-меню Рисунок 3.19. Кнопка щоб додати баланс користувачу Після цього потрібно ввести дані у форматі user_id:сумма Ця функція `add_balance(message)` обробляє запит на додавання балансу користувачу в телеграм-боті. Якщо користувач, що надіслав запит, є адміністратором (перевіряється за допомогою `db.is_user_admin(user_id)`), то встановлюється стан очікування для введення даних про користувача і суми для додавання балансу за допомогою `AdminStates.waiting_for_add_balance.set()`. Після цього, бот надсилає повідомлення користувачеві (`user_id`) з проханням ввести дані у форматі `user_id:сума`. Далі, функція `process_balance(message, state)` обробляє введені дані. Якщо введені дані мають правильний формат (`user_id:сума`), то баланс користувача збільшується на вказану суму за допомогою `db.add_balance(user_b_id, add_amount)`. Після цього, бот надсилає повідомлення з підтвердженням про додавання балансу користувачу. У будь-якому випадку, стан завершується (`await state.finish()`). 6. Функція розсилки до усіх користувачів Функція може бути викликана відповідною кнопкою у контекстном меню Рисунок 3.20. Кнопка щоб зробити розсилку 46 Приклад роботи розсилки: Рисунок 3.21. Приклад роботи розсилки Ця функція `do_mailing(message)` обробляє запит на здійснення розсилки повідомлень користувачам в телеграм-боті. Якщо користувач, що надіслав запит, є адміністратором (перевіряється за допомогою `db.is_user_admin(user_id)`), то встановлюється стан очікування для введення тексту розсилки за допомогою `AdminStates.waiting_for_text.set()`. Далі, функція `process_mailing_text(message, state)` отримує введений текст розсилки та зберігає його у стані `FSMContext` за допомогою `state.update_data(mailing_text=mailing_text)`. Після цього, встановлюється стан очікування підтвердження розсилки за допомогою `AdminStates.waiting_for_confirm_mail.set()`. У функції `confirm_mailing(message, state)` перевіряється введений текст користувачем. Якщо введений текст є "так", то бот здійснює розсилку повідомлень до всіх користувачів з бази даних за допомогою циклу `for user_id in all_user_ids: await bot.send_message(user_id, mailing_text)`. Після завершення розсилки, стан завершується і бот повідомляє про успішне відправлення розсилки. У випадку, якщо введений текст не є "так", розсилка скасовується і стан також завершується. 7. Функція видалення товару Функція може бути викликана відповідною кнопкою у контекстном меню 47 Рисунок 3.22. Кнопка для видалення товару Приклад роботи: Рисунок 3.23. Приклад роботи видалення Після того як нажимається кнопка видалити – відповідний предмет видаляться з бази даних. Видалення з бд: def get_item_by_id(self, db_id): products = Product.__table__ select_all_query = db.select([products]).where(products.columns.id == db_id) select_all_result = self.connection.execute(select_all_query) item = select_all_result.fetchone() return item def delete_item_by_id(self, db_id): products = Product.__table__ delete_query = db.delete(products).where(products.columns.id == db_id) self.connection.execute(delete_query) Рисунок 3.24. Код для видалення з бази даних Функція `delete_product(message)` обробляє запит на видалення товару в телеграм-боті. Якщо користувач, що надіслав запит, є адміністратором (перевіряється за допомогою `db.is_user_admin(message.chat.id)`), то відправляється повідомлення з кнопками, які представляють наявні товари для видалення. Функція `delete_product_id(callback_query)` обробляє вибір користувача щодо видалення конкретного товару. Якщо користувач є адміністратором, отримується ідентифікатор вибраного товару і виконується видалення товару з бази 48 даних за допомогою `db.delete_item_by_id(item_id)`. Після видалення оновлюється список товарів і відбувається оновлення відповідного повідомлення з кнопками. Метод `get_item_by_id(db_id)` отримує інформацію про товар з бази даних за його ідентифікатором. Виконується запит до таблиці `products`, і результат запиту повертається як об'єкт товару. Метод `delete_item_by_id(db_id)` видаляє товар з бази даних за його ідентифікатором. Виконується видалення рядка з таблиці `products` за допомогою запиту `delete_query`. Система має зрозумілий інтерфейс, що дозволяє користувачам використовувати її без необхідності вивчати складні інструкції. Вона надає підказки на відповідних формах та кнопках, що зроблені зрозумілими для користувачів і вказують на відповідні функції. 3.3. Технічне та системне забезпечення розробки 3.3.1. Обґрунтування вибору технічних засобів Таблиця 3.1. Рекомендовані характеристики комп’ютера № п/п Основні характеристики комп’ютера Технічне забезпечення для сервера 1 2x Intel Xeon E5-2670 v3 Cores: 2x 12x 2.30 GHz (Dual 12 Core) RAM: 192 GB DDR4 ECC reg. HDDs: 16x 4 TB SATA 7.2k RPM HW Raid IPMI/KVM Технічне забезпечення для клієнта 1 Клієнтам може знадобитися комп'ютер або мобільний пристрій (смартфон, планшет), залежно від характеру продукту або послуги. Цей пристрій повинен мати відповідну обчислювальну потужність 2 Операційна система: Клієнтам потрібно мати операційну систему, яка підтримується продуктом або послугою компанії. Наприклад, це може бути Windows, macOS, iOS або Android. 3 Інтернет-з'єднання: Для доступу до продукту або послуги через мережу необхідне стабільне та швидке Інтернет-з'єднання. 4 Веб-браузер: Багато продуктів або послуг працюють через веб- інтерфейс, тому клієнтам потрібен сумісний веб-браузер. Популярні веб-браузери включають Google Chrome, Mozilla Firefox, Microsoft Edge, Safari тощо. 49 3.3.2. Обґрунтування вибору ОС та протоколу обміну даними При виборі операційної системи (ОС) та протоколу обміну даними для розробки телеграм-ботів та рішень для оплати криптовалютою, слід враховувати деякі фактори: 1. Підтримка мови програмування: Перевірте, яку мову програмування ви плануєте використовувати для розробки телеграм-ботів. Переконайтеся, що ОС підтримує дану мову програмування та її необхідні бібліотеки та фреймворки. 2. Надійність та безпека: ОС повинна бути надійною та забезпечувати високий рівень безпеки, оскільки розробка телеграм-ботів і рішень для оплати криптовалютою пов'язана з обробкою фінансових даних та конфіденційною інформацією. 3. Сумісність з інструментами: Впевніться, що ОС підтримує необхідні інструменти та сервіси, які ви плануєте використовувати для операцій з криптовалютою, такі як блокчейн-платформи, гаманці та інші криптовалютні сервіси. 4. Масштабованість: Розгляньте можливість масштабування та обробки великого обсягу запитів, оскільки телеграм-боти та рішення для оплати криптовалютою можуть мати значну кількість користувачів та транзакцій. 5. Спільнота розробників: Важливо також врахувати наявність та активність спільноти розробників, яка підтримує обрану ОС і протокол обміну даними. Це допоможе отримати підтримку, поради та розв'язання проблем швидше та ефективніше. У випадку розробки телеграм-ботів та рішень для оплати криптовалютою, популярним вибором може бути ОС Linux, така як Ubuntu, або Windows Server. Linux здебільшого використовується в серверних середовищах та має широку підтримку для багатьох мов програмування та інструментів. Windows Server також є популярним вибором для розробки та має хорошу сумісність з багатьма сервісами та інс трументами. Протокол обміну даними може залежати від ваших потреб та вибраних сервісів для операцій з криптовалютою. Зазвичай для обміну даними з телеграм- 50 ботами використовуються протоколи HTTP або WebSocket, оскільки вони підтримують передачу даних через мережу Інтернет. Також можуть використовуватися спеціалізовані криптовалютні протоколи, які забезпечують безпеку та захист фінансових транзакцій. У будь-якому випадку, вибір ОС та протоколу обміну даними повинен відповідати вимогам вашого проекту та забезпечувати надійну та безпечну роботу телеграм-ботів та рішень для оплати криптовалютою. 3.3.4. Адміністрування системою Адміністрування системою в контексті розробки телеграм-ботів та рішень для оплати криптовалютою включає керування та підтримку інфраструктури, бази даних, безпеки та інших аспектів системи. Основні завдання адміністрування системи включають: o Керування інфраструктурою: Це включає налаштування та управління серверами, мережами, хостингом та іншими інфраструктурними компонентами, необхідними для роботи телеграм-ботів та рішень для оплати криптовалютою. Важливо забезпечити належну масштабованість, доступність та продуктивність системи. o Безпека: Забезпечення безпеки системи є критичним аспектом. Це включає захист від зломів, зловживань та інших загроз. Застосування відповідних заходів безпеки, таких як шифрування даних, захист від вразливостей та моніторинг системи, допоможе забезпечити безпеку ваших телеграм-ботів та фінансових операцій. o База даних: Адміністрування бази даних включає створення, оновлення та управління базою даних, яка зберігає дані про користувачів, замовлення, товари та інші відомості. Важливо забезпечити резервне копіювання даних, моніторинг продуктивності бази даних та оптимізацію запитів для швидкого доступу до інформації. o Моніторинг та аналіз: Моніторинг системи допоможе виявляти проблеми, відстежувати продуктивність та забезпечувати належну реагування на 51 випадки неполадок. Аналіз даних може надати цінну інформацію про використання системи, поведінку користувачів та ефективність функцій. o Підтримка та усунення несправностей: Адміністратор повинен бути готовим надати підтримку користувачам, відповідати на їх запити та вирішувати проблеми, які виникають з використанням телеграм-ботів та оплатою криптовалютою. Це може включати відповідь на питання, вирішення технічних проблем та надання консультацій. 3.3.5. Заходи захисту від несанкціонованого доступу до системи Для захисту від несанкціонованого доступу до системи можна використовувати такі заходи: • Сильні паролі: Вимагайте від користувачів використовувати складні паролі, які складаються з комбінації великих і малих літер, цифр та спеціальних символів. • Рекомендуйте змінювати паролі регулярно.Двофакторна аутентифікація: Ввімкніть двофакторну аутентифікацію, яка вимагає введення додаткового коду або використання аутентифікаційного пристрою після введення паролю.Обмеження доступу: • Налаштуйте права доступу до системи, щоб дозволити доступ лише авторизованим користувачам і обмежити їх права відповідно до їх ролі.Моніторинг активності: • Встановіть систему моніторингу, яка виявляє незвичну або підозрілу активність, наприклад, невдалі спроби входу або зміна конфіденційної інформації. 52 РОЗДІЛ 4. ОХОРОНА ПРАЦІ Охорона праці в контексті компанії, яка розробляє телеграм ботів і рішення для оплати криптовалютою, має включати такі аспекти: 1. Оцінка ризиків: Проведення оцінки ризиків пов'язаних з розробкою, тестуванням та експлуатацією телеграм ботів і рішень для оплати криптовалютою. Виявлення потенційних небезпек і визначення заходів для їх усунення або зменшення. 2. Безпека інформації: Забезпечення захисту конфіденційної інформації, що обробляється системою, включаючи криптовалютні дані та особисті дані користувачів. Використання шифрування, захист мережі та виявлення вторгнень для забезпечення безпеки інформації. 3. Безпека програмного забезпечення: Застосування кращих практик безпеки програмного забезпечення під час розробки та тестування телеграм ботів і рішень для оплати криптовалютою. Перевірка на наявність вразливостей, застосування патчів та оновлень для запобігання злому і зловживанню. 4. Безпека робочого середовища: Забезпечення безпечних умов праці для співробітників, які займаються розробкою та підтримкою телеграм ботів і рішень для оплати криптовалютою. Дотримання норм з охорони праці, надання необхідного обладнання та засобів захисту. 5. Навчання та усвідомлення: Проведення навчання співробітників щодо охорони праці, безпеки інформації, захисту даних та кібербезпеки. Популяризація кращих практик та політик безпеки серед персоналу. 6. Аварійна готовність: Розробка планів та процедур реагування на аварійні ситуації, включаючи відновлення системи в разі виникнення проблем або збоїв. Проведення регулярних практичних вправ та тестування системи в аварійних ситуаціях. 53 ВИСНОВКИ У даній кваліфікаційній роботі було успішно розроблено та імплементовано бота в Telegram з можливістю оплати в криптовалюті. З метою виконання завдань проекту було проведено аналіз вимог користувачів, вибір необхідних технологій та розробку функціональності оплати через криптовалюту. Розроблений бот надає користувачам зручний спосіб здійснювати оплату за товари та послуги за допомогою криптовалют. Бот дозволяє здійснювати платежі шляхом інтерактивної комунікації з користувачем, обробляти замовлення та забезпечувати безпеку платіжних операцій. Перспективи розробленої системи полягають у подальшому розширенні функціональності, покращенні інтерфейсу та впровадженні додаткових можливостей для користувачів. Застосування розробленого бота може бути корисним для різних видів бізнесу, які прагнуть приймати платежі в криптовалюті та забезпечити зручну операційну систему для своїх клієнтів. Очікуваний ефект від впровадження розробленої системи полягає в полегшенні процесу оплати для користувачів, підвищенні ефективності бізнесу та розширенні можливостей для розрахунків у криптовалюті. Використання криптовалютних платежів також сприяє зменшенню комісійних витрат та забезпеченню безпеки та анонімності транзакцій. Рекомендації щодо практичного використання результатів кваліфікаційної роботи включають подальшу оптимізацію та розширення функціональності бота відповідно до потреб конкретних бізнес-сценаріїв. Також рекомендується здійснити випробування та впровадження розробленої системи в реальних умовах, залучивши партнерів та клієнтів для отримання об'єктивної оцінки її ефективності та придатності. У процесі кваліфікаційної роботи були використані наукові статті, публікації та документація відповідних криптовалютних платіжних шлюзів. Всі використані джерела детально зазначені в списку використаних джерел, що розміщений в кінці роботи. 54 До додатків включено протоколи тестування, демонстраційні зображення та звіти про апробацію розробленої системи в реальних умовах, а також опис алгоритмів та програмний код для розробленого бота в Telegram. Загалом, результати кваліфікаційної роботи підтверджують досягнення поставленої мети щодо розробки та впровадження бота в Telegram з можливістю оплати в криптовалюті. Розроблена система має потенціал для практичного використання в різних сферах бізнесу та сприяє зручним та безпечним платежам в криптовалюті. 55 СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 1. ДСТУ 3008:2015 — Інформація та документація. Звіти у сфері науки і техніки. Структура та правила оформлювання. – К.: ДП «УкрНДНЦ», 2015. – 32 с. 2. ДСТУ 3918:1999 (ISO/IEC 12207:2008). Інформаційні технології. Процеси життєвого циклу програмного забезпечення. – 57 c. 3. ДСТУ ISO/IEC TR 15504. Інформаційні технології. Оцінювання процесів життєвого циклу програмних засобів. – 315 c. 4. ДСТУ 2226:1993. Автоматизовані системи. 5. ДСТУ ISO/IEC 27000:2015. Інформаційні технології. Методи захисту. Система управління інформаційною безпекою. Огляд і словник. 6. ДСТУ ISO/IEC 12207:2016 (ISO/IEC 12207:2008, IDТ). Інженерія систем і програмного забезпечення. Процеси життєвого циклу програмного забезпечення. 7. ДСТУ ISO/IEC/IEEE 29119-1:2017. Інженерія систем і програмних засобів. Тестування програмних засобів. Частина 1. Поняття та визначення (ISO/IEC/IEEE 29119-1:2013, IDT). 8. ДСТУ 2941:1994. Системи оброблення інформації. Розроблення систем. Терміни та визначення. 9. ДСТУ 1.0:2003. СТУ 1.0:2003. Національна стандартизація. Основні положення. 10. ДСТУ 3321:2003. Системи конструкторської документації. Терміни та визначення основних понять. 11. ДСТУ ISO 6309:2007. Пожежна безпека. Загальні вимоги. 12. ДСТУ ISO/IEC 29155-1:2015. Розроблення систем і програмного забезпечення. Платформи для тестування проектів з розроблення інформаційних систем. Частина 1. Концепції та визначення. 13. ДСТУ ISO/IEC 12207:2014. Інженерія систем і програмного забезпечення. Процеси життєвого циклу програмного забезпечення. 14. ДСТУ ISO/IEC 15910:2012. Інформаційні технології. Документування програм. Документація користувача. 15. Гайна Г. А. Основи проектування баз даних : навч. посіб. – К. : КНУБА, 2005. – 204 с. 16. Пасічник В. В., Резніченко В. А. Організація баз даних та знань. – К. : BHW, 2006. – 384 с. 56 17. Кафедра інформаційних технологій, штучного інтелекту і кібербезпеки НУХТ [Електронний ресурс]. Режим доступу до ресурсу - https://nuft.edu.ua/fakultet- aks/kafedra-nformaczjnix-sistem/ 18. Вказівки до роботи з бібліотекою Aiogram - https://docs.aiogram.dev/en/latest/# 19. Вказівки до роботи з бібліотекою Web3.py - https://web3py.readthedocs.io/en/stable/ 20. Вказівки до роботи з API Coinbase - https://docs.cloud.coinbase.com/exchange/docs/welcome 21. Вказівки до роботи з Python - https://docs.python-guide.org/ https://nuft.edu.ua/fakultet-aks/kafedra-nformaczjnix-sistem/ https://nuft.edu.ua/fakultet-aks/kafedra-nformaczjnix-sistem/ https://docs.aiogram.dev/en/latest/ https://web3py.readthedocs.io/en/stable/