Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/6314
Title: Інформаційна система для надання психологічних послуг
Authors: Чичужко, Марина Володимирівна
Ковальчук, Сергій Андрійович
Issue Date: Jun-2023
Abstract: Інформаційні технології можуть допомогти психологам та клієнтам знайти один одного швидше та ефективніше. Інтернет дозволяє розширити географію роботи та дозволяє психологам допомагати клієнтам з усього світу. Технології, такі як відеоконференції, чати, електронні записи та інші, можуть сприяти розвитку нових форм психологічної допомоги та консультування. Однак, використання інформаційних технологій в психології також має свої виклики та обмеження. Важливо зберігати конфіденційність даних клієнтів та дотримуватися етичних принципів. Також потрібно враховувати, що не всі люди мають доступ до технологій, а деякі можуть відчувати незручності при використанні онлайн-сервісів. Під час виконання кваліфікаційної роботи бакалавра було створенно Discord-бот для допомоги клієнтам з будь-якої частини світу в зручний час. В кваліфікаційній роботі освітнього ступеня «бакалавр» було розроблено інформаційну систему для надання допомоги людям з психологічниами проблемами. У підсумку, можна сказати, що використання інформаційних технологій у сфері надання психологічних послуг відкриває нові можливості та сприяє розвитку галузі. Однак, важливо дотримуватися етичних та правових принципів, забезпечувати безпеку та конфіденційність даних клієнтів та забезпечувати якість психологічної допомоги.
URI: https://er.chdtu.edu.ua/handle/ChSTU/6314
Appears in Collections:123 Комп’ютерна інженерія (Спеціалізовані комп’ютерні системи)

Files in This Item:
File Description SizeFormat 
Б_123_2023_Ковальчук.pdf
  Restricted Access
800.13 kBAdobe PDFView/Open Request a copy


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

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ 
КАФЕДРА РОБОТОТЕХНІКИ ТА СПЕЦІАЛІЗОВАНИХ КОМП’ЮТЕРНИХ 
СИСТЕМ 
Пояснювальна записка 
до кваліфікаційної роботи 
освітнього ступеня «бакалавр» 
  
на тему: ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ У СФЕРІ НАДАННЯ 
ПСИХОЛОГІЧНИХ ПОСЛУГ 
 
 
 
 
 
Виконав: студент  4 курсу, групи СКС-1907 
 спеціальності 123 Комп’ютерна 
інженерія 
 Ковальчук С.А. 
 (прізвище та ініціали) 
Керівник Чичужко М.В. 
 (прізвище та ініціали) 
Рецензент  
 (прізвище та ініціали) 
 
  
 
 
 
Черкаси 2023 року 
ЗМІСТ 
 
СПИСОК УМОВНИХ ПОЗНАЧЕНЬ ТА СКОРОЧЕНЬ .......................................... 4 
ВСТУП .......................................................................................................................... 5 
1. ТЕОРЕТИЧНА ЧАСТИНА І ВИДИ ПСИХОЛОГІЧНОЇ ДОПОМОГИ В IT .... 7 
1.1 Зв’язок між психологією та комп’ютерною інженерією ............................... 7 
1.2 Переваги використання психологічних послуг дистанційно: ....................... 7 
1.3 Недоліки використання психологічних послуг дистанційно ........................ 8 
1.4 Приклади психологічної допомоги в інтернеті .............................................. 9 
1.5 Інтерактивні відеоуроки з психологічною підтримкою. ................................ 9 
1.6 Онлайн-консультації з професійними психологами. ................................... 10 
1.7 Інтерактивні курси, розроблені спеціально для вирішення певних 
психологічних проблем. .................................................................................. 12 
1.8 Психологічна допомога через Facebook, Twitter, та Instagram .................... 13 
1.10 Онлайн-групи з психологічною направленністю ....................................... 15 
1.12 Мови програмування, за допомогою яких можна зробити ботів у 
Telegram та Discord .......................................................................................... 17 
1.13 Мова Python для створення бота в Discord та Telegram. Переваги та 
недоліки. ........................................................................................................... 18 
1.14 Переваги та недоліки JavaScript для створення ботів у Discord та 
Telegram ............................................................................................................ 19 
1.15 Мова Java для створення бота в Discord та Telegram. ................................ 21 
1.16 Мова Ruby для створення Discord та Telegram боту .................................. 22 
1.18 Мова програмування з більшою варіативністю та бібліотеками .............. 23 
1.19 Створення Discord боту на JavaScript .......................................................... 24 
1.20 Які бібліотеки JavaScript використовуються для створення бота для 
телеграм ............................................................................................................ 25 
1.21 Додаткові бібліотеки для бота Discord ........................................................ 26 
1.22 Eris та Discordie .............................................................................................. 28 
2. БІБЛІОТЕКИ ТА БАЗОВІ КОМАНДИ ДЛЯ СТВОРЕННЯ БОТУ .................. 29 
ЧДТУ.231941.001 ПЗ1 
Змн. Арк. № докум. Підпис Дата  
 Розроб. Погребняк М.О Літ. Лист. Листів 
 Перевір. Зубко І.А. Кодовий замок з віддаленим 2 60 
 Реценз.  керуванням  
Пояснювальна записка   
 Н. Контр.   ЧДТУ, СКС-1907 
 Затверд.  Лукашенко В.М. 
 
2.1 Вітання нового користувача з допомогою JavaScript ................................... 29 
2.2 Інструкція користування ................................................................................. 30 
2.3 Створення скарги ............................................................................................. 31 
2.4 Опис Node.js ..................................................................................................... 32 
3. DISCORD БОТ ДЛЯ НАДАННЯ ПСИХОЛОГІЧНОЇ ДОПОМОГИ ............... 46 
3.1 Discord-бот «Твій психолог»........................................................................... 46 
3.2 Хто є сервером для бота .................................................................................. 49 
3.3.1 Алгоритм роботи бота та його задачі ............................................... 51 
3.4 Створення системи звернень у Discord ......................................................... 52 
3.5 Створення системи відгуків користувачів ..................................................... 54 
3.6 Звернення до запиту, перевірка звернення .................................................... 55 
3.7 Система репортування та виклик адміністратора ........................................ 57 
3.8 Недоліки крокового двигуна ........................................................................... 58 
3.9 Вікно швидких відповідей .............................................................................. 58 
3.10 Створення діалогових команд ...................................................................... 60 
3.11 Створення свого бота в Discord (початкові кроки) ..................................... 62 
3.12 Створення додаткових функцій бота ........................................................... 63 
ВИСНОВКИ ............................................................................................................... 69 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ .................................................................. 71 
Лист 
ЧДТУ.231941.001 ПЗ1 3 
Змн. Арк. № докум. Підпис Дата 
 
СПИСОК УМОВНИХ ПОЗНАЧЕНЬ ТА СКОРОЧЕНЬ 
 
DS – Discord 
DSB – Discord bot 
TG – Telegram 
JS – JavaScript 
NJS – Node.js 
EJS – Express.js 
 
  
Лист 
ЧДТУ.231941.001 ПЗ 4 
Змн. Арк. № докум. Підпис Дата 
 
Вступ 
Психологія - це наука, що вивчає поведінку та думки людини. Вона також 
вивчає різні форми інтерактивної поведінки та відносини, а також розглядає вплив 
соціальних, економічних та політичних факторів на психологічне здоров'я людини. 
Вона також використовується для вивчення різних психологічних технік та методів 
для подолання проблем та підвищення ефективності. 
Психологія в IT має велике значення, оскільки вона допомагає краще 
зрозуміти потреби та переваги користувачів. Вона може бути застосована для 
проектування привабливих інтерфейсів, створення ефективних та зрозумілих для 
користувача процесів та для побудови довгострокових відносин з користувачами. 
Психологія може бути корисною при розробці інноваційних рішень і створенні 
продуктів, які можуть поліпшити продуктивність і якість життя користувачів. 
Останнім часом все більше людей шукає психологічну допомогу в Інтернеті. 
Онлайн-психологічна допомога може бути корисною для отримання професійної 
допомоги в комфортній та зручній для клієнта обстановці. Психологічна допомога 
в Інтернеті може включати такі види психологічної допомоги, як консультування, 
терапія, підтримка і навчання. Онлайн-психологічна допомога може бути корисною 
для отримання професійної допомоги у зручній та комфортній для клієнта 
обстановці.  
При питанні, а навіщо взагалі ця психологічна допомога, маємо наступну 
відповідь. Людям може бути потрібна психологічна допомога з різних причин. 
Наприклад, люди можуть шукати психологічну допомогу у зв'язку з труднощами, 
пов'язаними з травмами та втратою близьких. Вони можуть шукати психологічну 
допомогу, щоб навчитися керувати своїми емоціями та стосунками, приймати більш 
продуктивні рішення та покращувати якість свого життя. Крім того, психологічна 
допомога може допомогти людям зрозуміти себе краще і досягти більшої 
впевненості у собі. 
 
Лист 
ЧДТУ.231941.001 ПЗ 5 
Змн. Арк. № докум. Підпис Дата 
 
IT та психологічна підтримка можуть бути пов'язані для створення різних 
програм та інструментів, які допомагають психологам та пацієнтам покращувати 
психічне здоров'я та добробут. 
Один з шляхів пов'язання IT та психологічної підтримки - це створення 
мобільних додатків та програмного забезпечення, які можуть допомогти людям з 
різними психологічними проблемами. Наприклад, додатки для медитації, які 
можуть допомогти зняти стрес, заспокоїти розум та поліпшити настрій. Інші 
програми можуть допомогти людям з тривожними розладами та депресією, 
надаючи доступ до різних методів психотерапії та інших технік. 
Крім того, інформаційні технології можуть бути використані для покращення 
терапевтичної ефективності психологічної підтримки. Наприклад, психологічні 
інструменти для аналізу мови можуть допомогти психологам отримати більш точну 
інформацію про стан своїх пацієнтів. Аналіз мови може допомогти виявити ключові 
слова та паттерни мовлення, які вказують на психічний дисбаланс. 
Інші шляхи пов'язання IT та психологічної підтримки можуть включати 
розробку віртуальних інструментів та ігор для психотерапії, створення онлайн-
форумів для обговорення психологічних проблем, а також використання технологій 
штучного інтелекту для прогнозування та профілактики психічних розладів. 
 
Метою кваліфікаційної роботи освітнього ступеня «бакалавр» є розробка 
інформаційної системи для надання допомоги людям з психологічниами 
проблемами. 
Для досягнення поставленої мети потрібно виконати наступні завдання: 
• провести аналіз аналогів інформаційних систем психологічної 
допомоги; 
• розглянути технічні засоби для створення чат-боту; 
• розробити алгоритм роботи системи; 
• порівняти розроблену інформаційнусистему з її аналогами. 
 
Лист 
ЧДТУ.231941.001 ПЗ 6 
Змн. Арк. № докум. Підпис Дата 
 
1. ТЕОРЕТИЧНА ЧАСТИНА І ВИДИ ПСИХОЛОГІЧНОЇ ДОПОМОГИ В IT 
1.1 Зв’язок між психологією та комп’ютерною інженерією 
IT може бути використано для проведення психологічної допомоги в багатьох 
різних сферах. Наприклад, психологи можуть використовувати ІТ технології для 
створення інтерактивних програм, які можуть допомогти пацієнтам приймати 
рішення і понимати різні аспекти психології. Додатково, ІТ може бути використано 
для проведення онлайн-консультацій з психологами та психіатрами, а також для 
підтримки та контролю за процесом лікування. ІТ насамперед може бути 
використано для досліджень психології, а також для підтримки соціальних мереж 
та проектів, що призначені для підвищення психологічної підтримки. 
Людині простіше висловлюватись через інтернет, а не сидячи у кабінеті 
психолога. Це тому, що інтернет дає людям можливість відчувати більше 
анонімності та конфіденційності, ніж при посидінні у кабінеті психолога. Також 
віддалена психологічна допомога є зручною і доступнішою для багатьох людей, 
оскільки вони не повинні їхати до психолога, а можуть отримати потрібну допомогу 
у будь-який час і з будь-якого місця. Також психологічна допомога в інтернеті дає 
людям можливість обговорювати проблеми в більш спокійній атмосфері, та 
використовувати технології для проведення досліджень, аналізу та моніторингу 
психологічного стану здоров’я. 
 
1.2 Переваги використання психологічних послуг дистанційно: 
 
• Можливість отримання психологічної допомоги з будь-якого місця 
майже у будь-який час. 
• Можливість отримати ті послуги, які не можливо було б отримати при 
очному сеансі з психологом (у зв’язку з класифікацією проблеми, тощо). 
• Дистанційна психологія дозволяє психологам використовувати різні 
технології та методи для підвищення рівня психологічної підтримки. 
 
Лист 
ЧДТУ.231941.001 ПЗ 7 
Змн. Арк. № докум. Підпис Дата 
 
1.3 Недоліки використання психологічних послуг дистанційно 
Нажаль, навіть у наш час психологічна допомога дистанційно має свої 
недоліки. Перераховуючи їх, кожна людина має вибирати для себе оптимальний 
шлях для зв’язку з спеціалістом. 
 
Які бувають недоліки:  
• Відчуття відсутності присутності психолога 
• Неможливість провести візуальне обстеження 
• Потреба додаткового програмного забезпечення для доставки послуг 
 
Немає причин боятися недоліків використання психологічних послуг 
дистанційно, оскільки психологи зробилять все можливе, щоб забезпечити 
доступність та конфіденційність послуг дистанційно. Використання різних 
технологій, таких як відеоконференції, сприяє зручності та безпеці при проведенні 
психологічних консультацій. Віддалені послуги психолога дають людям 
можливість зв'язатися з експертом з будь-якого місця на землі та отримати 
професійну допомогу.  
Лист 
ЧДТУ.231941.001 ПЗ 8 
Змн. Арк. № докум. Підпис Дата 
 
1.4 Приклади психологічної допомоги в інтернеті 
 
• Інтерактивні відеоуроки з психологічною підтримкою. 
• Онлайн-консультації з професійними психологами. 
• Інтерактивні курси, розроблені спеціально для вирішення певних 
психологічних проблем. 
• Соціальні мережі, такі як Facebook, Twitter, Instagram, та Discord за 
допомогою яких люди можуть зв'язуватися, обмінюватися ідеями, розділяти успіхи 
і слухати різні точки зору.Якщо немає необхідності дотримання пожежних норм, 
потрібно передбачити безперебійне джерело живлення 
• Психологічні тести, які можуть бути використані для поліпшення своєї 
самооцінки. 
• Онлайн-групи, де учасники можуть розділяти захоплюючі розмови, 
залучатися, думати, покращувати своє самоуваження, розвивати ум, захоплюючись 
різними творчими завданнями 
• Discord-консультації, які проводяться з професійними психологами. 
 
1.5 Інтерактивні відеоуроки з психологічною підтримкою.  
Інтерактивні відеоуроки з психологічною підтримкою – це сучасний спосіб 
отримання освіти. Вони пропонують інтерактивний і доступний спосіб вивчення, 
розвитку навиків, а також отримання професійної психологічної підтримки. 
Такі відеоуроки враховують індивідуальні особливості слухача, а також рівень його 
знань. В місці з цим, тим, хто навчається, надається зручний інтерфейс, що збільшує 
їх зручність. 
Процес навчання розділяється на різні етапи, що допомагає учащимся краще 
вивчити те, що вони дізналися. Наконец, включаючи психологічну підтримку, 
учащимся дається керівництво, керівне їм, що-би досягти успіху. 
 
  Існує багато онлайн-ресурсів, які пропонують інтерактивні відеоуроки з 
психологічною підтримкою. Наприклад, сайт Psych Central пропонує безкоштовний 
Лист 
ЧДТУ.231941.001 ПЗ 9 
Змн. Арк. № докум. Підпис Дата 
 
курс із заспокійливою практикою, який називається "The Mindfulness Meditation 
Mini-Course". Цей курс включає в себе п'ять коротких відеоуроків, які допоможуть 
учням вивчити техніки медитації та заспокоєння. 
Інший онлайн-ресурс, Insight Timer, пропонує безкоштовний курс медитації, який 
називається "Mindfulness for Anxiety". Цей курс включає в себе 12 відеоуроків, які 
допоможуть учням заспокоїти свої думки та емоції. 
Також, сайт Headspace пропонує безкоштовний курс медитації, який називається 
"Take 10". Цей курс включає в себе 10 коротких відеоуроків, які допоможуть учням 
вивчити техніки медитації та заспокоєння. 
Ці онлайн-ресурси можуть бути корисними для тих, хто шукає психологічну 
підтримку та хоче вивчити техніки медитації та заспокоєння. 
 
1.6 Онлайн-консультації з професійними психологами. 
 
В інтернеті існує багато платформ, де можна отримати онлайн-консультації з 
професійними психологами. Такі консультації можуть бути проведені через 
відеозв'язок, чат або електронну пошту. 
Ось декілька платформ, де можна знайти професійних психологів для онлайн-
консультацій: 
1. BetterHelp - це платформа, яка забезпечує онлайн-терапію з ліцензованими 
психологами та психотерапевтами. 
2. Talkspace - ця платформа забезпечує онлайн-терапію з ліцензованими 
психологами та психотерапевтами, а також можливість спілкуватися з ними через 
текстові повідомлення. 
3. Amwell - ця платформа пропонує онлайн-консультації з лікарями та 
психологами через відеозв'язок. 
4. 7 Cups - ця платформа пропонує безкоштовні онлайн-терапії з волонтерами 
та платні консультації з ліцензованими психологами. 
5. ReGain - ця платформа забезпечує онлайн-терапію для пар та сімей з 
ліцензованими психологами. 
Лист 
ЧДТУ.231941.001 ПЗ 10 
Змн. Арк. № докум. Підпис Дата 
 
Важливо звернутати увагу на ліцензію та досвід психолога, з яким клієнт 
збирається працювати. Також важливо перевірити конфіденційність та безпеку 
платформи, на якій ви будете проводити консультації.  
Лист 
ЧДТУ.231941.001 ПЗ 11 
Змн. Арк. № докум. Підпис Дата 
 
1.7 Інтерактивні курси, розроблені спеціально для вирішення певних 
психологічних проблем. 
  Інтерактивні курси з психології можуть бути корисним інструментом 
для вирішення певних психологічних проблем. Ось кілька прикладів курсів, 
розроблених спеціально для вирішення певних психологічних проблем: 
  1. Курс по керуванню стресом: Цей курс може допомогти людям 
впоратися зі стресом та навчити їх стратегіям управління стресом. 
  2. Курс по керуванню тривогою: Цей курс може допомогти людям 
зменшити рівень тривоги та навчити їх стратегіям управління тривогою. 
  3. Курс по керуванню депресією: Цей курс може допомогти людям 
зменшити симптоми депресії та навчити їх стратегіям, що допоможуть 
управляти депресією. 
  4. Курс по керуванню конфліктами: Цей курс може допомогти людям 
навчитися ефективно вирішувати конфлікти та зменшити рівень конфліктів у 
їхньому житті. 
  5. Курс по керуванню відчуттям самотності: Цей курс може допомогти 
людям зменшити відчуття самотності та навчити їх стратегіям, що 
допоможуть збільшити соціальну підтримку та зв'язки з іншими людьми. 
Ці курси можуть бути доступними онлайн та відповідати потребам людей, які 
шукають більш гнучкий та конфіденційний підхід до розв'язання своїх 
психологічних проблем. Важливо враховувати, що ці курси можуть бути 
корисними для людей з легкими психологічними проблемами, але для людей 
з більш серйозними психічними проблемами може бути необхідна 
індивідуальна терапія з ліцензованим психологом. 
 
 
 
 
Лист 
ЧДТУ.231941.001 ПЗ 12 
Змн. Арк. № докум. Підпис Дата 
 
1.8 Психологічна допомога через Facebook, Twitter, та Instagram 
Психологічна допомога через соціальні мережі стає все більш популярною 
формою психологічної підтримки. Facebook, Twitter та Instagram надають 
можливість психологам зв'язатися з людьми, які шукають допомогу, через приватні 
повідомлення або коментарі. 
Основні переваги психологічної допомоги через соціальні мережі: 
1. Доступність: люди можуть зв'язатися з психологом з будь-якого місця, де є 
Інтернет. 
2. Анонімність: люди можуть отримати допомогу залишаючись анонімними, 
що знижує бар'єри для звернення до психолога. 
3. Зручність: люди можуть звернутися до психолога в зручний для них час, не 
виходячи з дому. 
4. Відсутність стигми: відсутність фізичного контакту може знизити стигму, 
пов'язану з зверненням до психолога. 
5. Збереження записів: психолог може зберігати записи розмов для більш 
детального аналізу та планування подальшої роботи з клієнтом. 
Звичайно, психологічна допомога через соціальні мережі має свої обмеження. 
Наприклад, вона не підходить для людей з важкими психічними розладами, які 
потребують більш інтенсивної терапії. Також, психолог повинен бути вмілим у 
використанні соціальних мереж та дотримуватися етичних стандартів. 
Таким чином, психологічна допомога через соціальні мережі може бути 
корисною формою психологічної підтримки для багатьох людей, особливо тих, хто 
не може знайти відповідну допомогу у своєму місті або не може зустрітися з 
психологом особисто.  
Лист 
ЧДТУ.231941.001 ПЗ 13 
Змн. Арк. № докум. Підпис Дата 
 
• 1.9 Психологічні тести, які можуть бути використані для поліпшення 
своєї самооцінки. 
 
  1. Тест на самооцінку. Цей тест допомагає визначити вашу загальну 
самооцінку та рівень впевненості в собі. Він складається з запитань, які стосуються 
вашого ставлення до себе, ваших досягнень та здібностей. 
  2. Тест на перспективність. Цей тест допомагає вам оцінити свої можливості 
та потенціал для досягнення успіху. Він складається з запитань, які стосуються 
ваших цілей, мрій та планів на майбутнє. 
  3. Тест на емоційну інтелектуальність. Цей тест допомагає вам зрозуміти, як 
добре ви розумієте свої емоції та емоції інших людей. Він складається з запитань, 
які стосуються вашої спроможності відчувати та контролювати свої емоції, а також 
здатності розуміти емоції інших людей. 
  4. Тест на стресостійкість. Цей тест допомагає вам оцінити вашу здатність 
справлятися зі стресом та впливом негативних ситуацій на ваше психічне здоров'я. 
Він складається з запитань, які стосуються вашої реакції на стрес, вашої здатності 
знаходити способи релаксації та зменшення стресу. 
  5. Тест на саморозвиток. Цей тест допомагає вам визначити ваші сильні та 
слабкі сторони, а також знайти способи поліпшення своїх здібностей та навичок. 
Він складається з запитань, які стосуються вашої готовності до навчання та 
саморозвитку, вашої відкритості до нових ідей та досвіду. 
 
 
 
 
 
 
 
 
Лист 
ЧДТУ.231941.001 ПЗ 14 
Змн. Арк. № докум. Підпис Дата 
 
1.10 Онлайн-групи з психологічною направленністю 
Існує безліч онлайн-груп, де учасники можуть займатися саморозвитком, розвивати 
ум і залучатися до захоплюючих розмов. Ось декілька з них: 
  1. Група "Мозкова атака" - це спільнота, де учасники виконують різні творчі 
завдання з метою розвитку свого мислення і творчих здібностей. 
  2. Група "Життя змінюється" - місце, де можна поділитися своїми історіями 
успіху та невдач, отримати підтримку та поради від інших учасників і знайти 
мотивацію до змін у своєму житті. 
  3. Група "Підвищення самооцінки" - спільнота, де учасники можуть ділитися 
своїми страхами, переживаннями та успіхами, отримати поради від психологів і 
підтримку від інших учасників для покращення свого самопочуття та самооцінки. 
  4. Група "Клуб книголюбів" - місце, де любителі читання можуть 
обговорювати свої улюблені книги, ділитися рекомендаціями та враженнями від 
прочитаного, а також знайомитися з новими авторами та літературними 
напрямками. 
  5. Група "Клуб інтелектуалів" - спільнота, де учасники можуть змагатися в 
різних інтелектуальних іграх і тестах, ділитися знаннями та враженнями від 
вивчення нових тем і питань 
 
 
 
 
 
 
 
 
 
 
 
Лист 
ЧДТУ.231941.001 ПЗ 15 
Змн. Арк. № докум. Підпис Дата 
 
• 1.11 Discord-консультації, які проводяться з професійними 
психологами. 
Формат консультацій з професійними психологами на Discord може бути 
різним, залежно від специфіки консультації та потреб користувачів. Основні 
формати таких консультацій можуть бути наступними: 
  1. Онлайн-консультації один на один: під час таких консультацій 
користувач має можливість спілкуватися з професійним психологом в 
приватному чаті. Цей формат дозволяє отримати персоналізовану допомогу 
вирішення психологічних проблем. 
  2. Групові консультації: у цьому форматі кілька користувачів одночасно 
спілкуються з психологом. Групові консультації можуть бути корисними для 
тих, хто шукає підтримку від інших людей, що мають схожі психологічні 
проблеми. 
  3. Тематичні консультації: цей формат передбачає проведення 
консультацій на певну тему, наприклад, професійного становлення, відносин, 
самопізнання та ін. Такі консультації можуть бути корисними для тих, хто 
шукає поради та рекомендації щодо конкретної сфери життя. 
Незалежно від формату, консультації з професійними психологами на Discord 
повинні бути проведені відповідно до етичних норм та принципів, що 
регулюють психологічну практику. 
 
 
 
 
 
 
 
 
Лист 
ЧДТУ.231941.001 ПЗ 16 
Змн. Арк. № докум. Підпис Дата 
 
1.12 Мови програмування, за допомогою яких можна зробити ботів у 
Telegram та Discord 
 
Існує безліч мов програмування, які можна використовувати для створення 
ботів для Telegram та Discord. Деякі з найпоширеніших варіантів включають: 
Python – це одна з найпопулярніших мов програмування, що 
використовуються для створення ботів для Telegram та Discord. Python має безліч 
бібліотек та фреймворків, які полегшують створення ботів та взаємодію з API 
Telegram та Discord. 
JavaScript – це ще одна популярна мова програмування, яка 
використовується для створення ботів для Telegram та Discord. Він часто 
використовується у поєднанні з Node.js та бібліотеками, такими як Telegraf або 
Discord.js. 
Java – це об'єктно-орієнтована мова програмування, яка може 
використовуватися для створення ботів для Telegram та Discord. Існують бібліотеки, 
такі як TelegramBots та Discord4J, які допомагають взаємодіяти з API Telegram та 
Discord. 
Ruby - це мова програмування, яка часто використовується для створення 
веб-застосунків, але вона також може використовуватися для створення ботів для 
Telegram і Discord. Бібліотеки, такі як Telegram-bot та Discordrb, можуть допомогти 
взаємодіяти з API Telegram та Discord. 
 
Це далеко не повний список мов програмування, які можна використовувати 
для створення ботів для Telegram та Discord, але ці мови є найпоширенішими та 
добре підтримуються спільнотами розробників.  
Лист 
ЧДТУ.231941.001 ПЗ 17 
Змн. Арк. № докум. Підпис Дата 
 
1.13 Мова Python для створення бота в Discord та Telegram. Переваги та 
недоліки. 
 
Мова Python є однією з найпопулярніших мов програмування для створення 
ботів у Telegram та Discord. Нижче наведено деякі переваги та недоліки 
використання Python для цієї мети. 
Переваги використання Python для створення бота в Discord та 
Telegram: 
 
• Простота та легкість у вивченні: Python вважається однією з 
найпростіших мов програмування для вивчення та початку роботи. Це 
дозволяє новачкам швидко освоїтися та почати створювати ботів у 
Telegram та Discord. 
• Велика кількість бібліотек та фреймворків: Python має величезну базу 
бібліотек та фреймворків, які дозволяють створювати ботів у Telegram та 
Discord. Деякі з них, такі як Telebot і Discord.py, взаємодіють з API 
Telegram і Discord дуже простим. 
• Широке співтовариство розробників: Python має величезну спільноту 
розробників, які створюють бібліотеки, фреймворки та інструменти для 
спрощення створення ботів у Telegram та Discord. Це означає, що 
розробник може швидко знайти відповіді на свої запитання та отримати 
підтримку у спільноті. 
• Гнучкість та універсальність: Python використовується в багатьох 
областях, у тому числі в машинному навчанні, науці даних та веб-
розробці. Це означає, що той хто створює застосунки може 
використовувати свої знання Python для створення не тільки ботів у 
Telegram та Discord, але й для вирішення інших завдань. 
 
 
 
Лист 
ЧДТУ.231941.001 ПЗ 18 
Змн. Арк. № докум. Підпис Дата 
 
 
Недоліки використання Python для створення бота в Discord та 
Telegram: 
 
• Низька продуктивність: Python не є найшвидшою мовою 
програмування, що може бути проблемою при створенні ботів з 
високою продуктивністю. 
• Використання пробілів: Python використовує пробіли для організації 
коду, що може викликати проблеми для новачків у мові. 
• Обмежена підтримка типізації: Python не є строго типізованою мовою, 
що може призвести до помилок у типах даних та проблем у роботі з 
великими проектами. 
 
Загалом, використання Python для створення ботів у Telegram та Discord є 
дуже популярним вибором через його простоту, гнучкість та велику базу бібліотек 
та фреймворків. 
 
1.14 Переваги та недоліки JavaScript для створення ботів у Discord та Telegram 
JavaScript також є однією з популярних мов програмування, які 
використовуються для створення ботів у Discord та Telegram. Нижче наведено деякі 
переваги та недоліки використання JavaScript для цієї мети. 
 
Переваги використання JavaScript для створення ботів у Discord та 
Telegram: 
• Широке поширення: JavaScript є однією з найпопулярніших мов 
програмування у світі, що означає, що існує величезна спільнота 
розробників та безліч бібліотек та фреймворків. 
• Швидкість та продуктивність: JavaScript є відносно швидким та 
ефективним мовою, що може бути важливим при створенні ботів у 
Лист 
ЧДТУ.231941.001 ПЗ 19 
Змн. Арк. № докум. Підпис Дата 
 
Discord та Telegram, які повинні обробляти безліч запитів та 
повідомлень. 
• Фреймворки для роботів: Існує кілька фреймворків, таких як discord.js 
і telegraf.js, які спрощують розробку роботів в Discord і Telegram на 
JavaScript. 
• Крос-платформність: JavaScript може використовуватися як на сервері, 
так і на стороні клієнта, що означає, що можна створювати ботів, які 
працюють на будь-яких пристроях. 
Недоліки використання JavaScript для створення бота в Discord та 
Telegram: 
• Складність: JavaScript є складнішою мовою, ніж Python, і може 
вимагати більше часу для освоєння. 
 
• Проблеми з безпекою: JavaScript може мати проблеми з безпекою, такі 
як уразливості XSS та CSRF, які можуть призвести до можливих атак. 
 
• Відсутність строгої типізації: JavaScript не є строго типізованою мовою, 
що може призвести до проблем із типами даних та помилок. 
 
• Версійні конфлікти: JavaScript може мати проблеми з версійними 
конфліктами, що може призвести до несумісності коду під час 
оновлення залежностей. 
 
В цілому, JavaScript може бути хорошим вибором для створення ботів у 
Discord та Telegram завдяки своїй широкій поширеності, швидкості та 
ефективності. Однак, його складність і потенційні проблеми з безпекою можуть 
призвести до деяких обмежень розробки ботів. 
 
 
 
Лист 
ЧДТУ.231941.001 ПЗ 20 
Змн. Арк. № докум. Підпис Дата 
 
1.15 Мова Java для створення бота в Discord та Telegram.    
Загалом, використання Java для створення ботів у Discord та Telegram має свої 
переваги, такі як швидкість та продуктивність, велика стандартна бібліотека та 
крос-платформність. Однак через те, що Java є більш складною мовою 
програмування, має більш об'ємний код і менший вибір фреймворків, процес 
розробки бота може затягнутися і вимагати більше часу. 
 
Java може використовуватися для створення ботів у Discord та Telegram, але 
при виборі мови програмування для цього завдання слід враховувати кілька 
факторів. Java має широке поширення, швидкість і продуктивність, велику 
стандартну бібліотеку і крос-платформність, що може бути важливим при розробці 
ботів. Однак, Java також має деякі недоліки, включаючи складність мови, обсяг коду 
та менший вибір фреймворків, що може ускладнити та збільшити час розробки 
бота. Незважаючи на деякі переваги та недоліки, використання Java для створення 
ботів у Discord та Telegram залишається варіантом, який варто розглянути. 
 
Крім того, Java також має деякі можливості, яких немає в інших мовах. 
Наприклад, Java забезпечує строгу типізацію та перевірку типів під час компіляції, 
що дозволяє виявляти помилки на ранніх стадіях розробки та полегшує процес 
налагодження. Також Java підтримує багатопоточність, що може бути корисним для 
створення ботів, які можуть обробляти кілька запитів одночасно. 
 
В цілому, вибір мови програмування для створення ботів у Discord та 
Telegram залежить від конкретного завдання, рівня досвіду розробника та його 
переваг. Якщо ви вже знайомі з Java або хочете вивчити цю мову програмування, 
вона може бути хорошим вибором. Якщо той, хто буде займатися створенням бота 
-  розробник-початківець та хоче швидко створити бота, то Python або JavaScript 
можуть бути більш підходящими мовами для цього завдання. 
 
Лист 
ЧДТУ.231941.001 ПЗ 21 
Змн. Арк. № докум. Підпис Дата 
 
1.16 Мова Ruby для створення Discord та Telegram боту 
Ruby - це інтерпретована, об'єктно-орієнтована мова програмування з 
відкритим вихідним кодом. Він часто використовується для створення веб-додатків 
і має безліч фреймворків, таких як Ruby on Rails, Sinatra та Hanami. 
Відмінність Ruby від мов, таких як Python, JavaScript та Java, полягає у його 
синтаксисі. Ruby має дуже простий і лаконічний синтаксис, який може бути більш 
легким для розуміння для розробників-початківців. Крім того, Ruby також надає 
безліч готових рішень та бібліотек для розробки веб-додатків, що може суттєво 
прискорити процес розробки. 
Однак Ruby також має свої недоліки. Наприклад, він не такий популярний, як 
Python або JavaScript, і, отже, не має такої великої спільноти розробників чи 
кількості бібліотек та фреймворків. Крім того, Ruby може бути менш ефективним і 
швидким, ніж Java або JavaScript, що може бути важливим при створенні ботів, які 
повинні обробляти велику кількість запитів. 
В цілому, Ruby може бути хорошим вибором для створення веб-додатків, 
включаючи ботів в Discord і Telegram, якщо ви віддаєте перевагу простому і 
лаконічному синтаксису і хочете використовувати безліч готових рішень для 
прискорення процесу розробки. Однак, якщо ви хочете створити бота з високою 
продуктивністю або мати доступ до великої спільноти розробників, то можливо 
краще вибрати іншу мову програмування. 
Переваги використання Ruby для створення ботів у Discord та Telegram: 
• Простота: Ruby - одна з найпростіших мов програмування, яка легко 
читається та розуміється. Це дозволяє швидко створювати ботів та 
знижувати час розробки. 
• Потужна бібліотека: Ruby має велику стандартну бібліотеку та безліч 
сторонніх бібліотек, які містять корисні інструменти та функції для 
створення ботів. 
• Гнучкість: Ruby є мовою з динамічною типізацією, що означає, що вона 
дозволяє змінювати типи змінних на льоту і не вимагає жорстких 
типових об'яв. 
Лист 
ЧДТУ.231941.001 ПЗ 22 
Змн. Арк. № докум. Підпис Дата 
 
• Читання коду: завдяки чіткій та зрозумілій структурі, код на Ruby легко 
читається та розуміється іншими програмістами, що спрощує спільну 
роботу над проектом. 
Недоліки використання Ruby для створення ботів у Discord та Telegram: 
Низька швидкість: Ruby є інтерпретованою мовою програмування, що 
означає, що вона може бути менш ефективною, ніж компілювані мови 
програмування, такі як Java і C++. 
• Висока витрата пам'яті: через свою динамічну типізацію та інші 
особливості мови, Ruby може споживати більше пам'яті, ніж деякі інші 
мови програмування. 
• Обмеженість фреймворків: Ruby має кілька фреймворків, таких як 
Discordrb та telegram-bot-ruby, які спрощують розробку ботів, але їх 
вибір набагато менший, ніж іншими мовами. 
 
• Низька популярність: Ruby не такий популярний, як Python або Java, 
що може означати меншу кількість спільноти розробників та меншу 
кількість доступних бібліотек та інструментів. 
 
 
1.18 Мова програмування з більшою варіативністю та бібліотеками 
 
Кожна мова програмування має свої сильні та слабкі сторони у термінах 
варіативності та кількості бібліотек. Однак, серед найбільш популярних мов 
програмування для створення ботів у Telegram та Discord можна виділити Python та 
JavaScript. 
Python має широке співтовариство розробників і безліч бібліотек, що робить 
його дуже варіативною мовою. У Python існує безліч бібліотек, які можуть бути 
використані для створення ботів у Telegram та Discord, включаючи Telebot, 
pyTelegramBotAPI, Discord.py та інші. Python також має безліч бібліотек для 
обробки даних, машинного навчання та штучного інтелекту, що може бути 
корисним для створення ботів із сучасними функціями. 
Лист 
ЧДТУ.231941.001 ПЗ 23 
Змн. Арк. № докум. Підпис Дата 
 
JavaScript також має широке співтовариство розробників та безліч бібліотек, 
особливо для веб-розробки. Бібліотеки, такі як Discord.js та Telegraf.js, можуть бути 
використані для створення ботів у Discord та Telegram. JavaScript також є мовою 
для розробки клієнтських та серверних програм, що може бути корисним при 
створенні роботів, що взаємодіють з іншими сервісами. 
Таким чином можна сказати, що як Python, так і JavaScript є варіативними 
мовами програмування з великою кількістю бібліотек, які можуть бути використані 
для створення ботів в Telegram і Discord. Однак, конкретний вибір мови 
програмування залежатиме від потреб та переваг розробника. 
 
1.19 Створення Discord боту на JavaScript 
Насамперед, JavaScript є однією з найпопулярніших мов програмування у 
світі, тому є безліч ресурсів та спільнот, де  можна знайти інформацію та підтримку 
у разі потреби. 
 
Крім того, JavaScript широко використовується у веб-розробці, і багато робот 
в Discord і Telegram мають веб-інтерфейси. Таким чином, використання JavaScript 
для створення бота дозволиляє легко інтегрувати веб-інтерфейс до боту.. 
JavaScript також підтримується великою кількістю бібліотек та фреймворків, 
що може спростити процес створення бота. Наприклад, є бібліотеки для роботи з 
API Discord та Telegram, такі як Discord.js та Telegraf.js, які полегшують написання 
коду для взаємодії з платформами. 
JavaScript також є мовою програмування, яка може бути використана як на 
стороні клієнта, так і на стороні сервера. Це означає, що можна створити бот, який 
може бути запущений на сервері, але також можна використовувати JavaScript для 
створення інтерактивних елементів на стороні клієнта. 
Однак, як і будь-яка мова програмування, JavaScript має свої недоліки. 
Наприклад, JavaScript може мати проблеми з продуктивністю під час обробки 
великих обсягів даних. Крім того, через широке використання JavaScript у веб-
розробці, деякі розробники вважають, що це може призвести до перевантаження 
коду та складнощів у підтримці. 
Лист 
ЧДТУ.231941.001 ПЗ 24 
Змн. Арк. № докум. Підпис Дата 
 
Тим не менш, гарним рішенням було використовувати JavaScript для 
створення Discord і Telegram бота, так як він має велику спільноту розробників, 
безліч бібліотек та фреймворків, і добре підходить для створення веб-інтерфейсів. 
Крім того, досвід роботи з JavaScript допомагає швидше розроблювати та 
налагоджувати код. 
Крім того, JavaScript дозволяє створювати масштабовані та ефективні боти 
для Discord та Telegram завдяки використанню сучасних фреймворків, таких як 
Node.js, який надає розробникам безліч можливостей для створення 
високопродуктивних ботів. Node.js також має велику стандартну бібліотеку та 
велику спільноту розробників, які надають безліч додаткових модулів та бібліотек 
для спрощення розробки. 
Ще однією перевагою JavaScript є його зручність у використанні та швидкість 
розробки. JavaScript має простий синтаксис, який дозволяє швидко писати та 
тестувати код, що прискорює процес розробки. Крім того, JavaScript може 
використовуватися як для написання серверної, так і для клієнтської частини, що 
дозволяє створювати ботів, які можуть працювати на різних платформах. 
Нарешті, JavaScript є однією з найбільш затребуваних мов програмування в 
сучасному світі завдяки його широкому застосуванню у веб-розробці. Це означає, 
що розробники, які вже знайомі з JavaScript, можуть швидко почати створювати 
ботів, не потрібно вивчати нову мову програмування. 
Звичайно, JavaScript має свої недоліки, такі як складність асинхронного 
програмування та можливі проблеми з продуктивністю під час роботи з великими 
обсягами даних. Проте, загалом, переваги JavaScript для створення ботів у Discord 
та Telegram явно переважають над недоліками. 
 
1.20 Які бібліотеки JavaScript використовуються для створення бота для 
телеграм 
У JavaScript існує кілька бібліотек для створення ботів для Telegram, таких 
як: 
Telegraf – це одна з найпопулярніших бібліотек для створення ботів у 
Telegram на JavaScript. Вона надає простий та інтуїтивно зрозумілий API для 
Лист 
ЧДТУ.231941.001 ПЗ 25 
Змн. Арк. № докум. Підпис Дата 
 
створення ботів, дозволяючи легко налаштовувати їхню поведінку та реагувати на 
різні події. 
Bot API – це офіційна бібліотека Telegram для створення ботів на JavaScript. 
Вона надає великий функціонал для роботи з Telegram API, дозволяючи створювати 
роботів з широкими можливостями. 
Telebot – це ще одна популярна бібліотека для створення ботів у Telegram на 
JavaScript. Вона має простий та зручний інтерфейс, який дозволяє легко 
налаштовувати та керувати поведінкою бота. 
Node-telegram-bot-api - це ще одна бібліотека для роботи з Telegram API 
JavaScript. Вона має простий та інтуїтивно зрозумілий інтерфейс, дозволяючи легко 
створювати та налаштовувати ботів. 
Telegram-node-bot - це бібліотека для створення ботів у Telegram JavaScript, 
яка надає простий і зручний API для роботи з Telegram API. Вона має великий 
функціонал і дозволяє створювати ботів із широкими можливостями. 
 
1.21 Додаткові бібліотеки для бота Discord 
Для написання бота для Discord на JavaScript можна використати бібліотеку 
Discord.js. Вона є однією з найпопулярніших бібліотек для розробки роботів на 
платформі Discord. 
Discord.js забезпечує простий та зручний інтерфейс для взаємодії з API 
Discord, що значно спрощує розробку роботів. Бібліотека дозволяє створювати та 
обробляти різні події в Discord, такі як нові повідомлення, додавання нового 
користувача та багато іншого. 
Discord.js також підтримує використання команд, що спрощує створення 
інтерактивних роботів. Бібліотека надає механізми для створення та обробки 
команд, що дозволяє користувачам взаємодіяти з ботом, надсилаючи певні команди. 
Крім того, Discord.js також має велику документацію та активну спільноту, 
що робить її ідеальним вибором для розробки ботів на Discord. 
Деякі з інших популярних бібліотек для розробки ботів на Discord JavaScript 
включають Eris, discordie і discord.io. 
Лист 
ЧДТУ.231941.001 ПЗ 26 
Змн. Арк. № докум. Підпис Дата 
 
Discord.io - це бібліотека JavaScript для створення роботів для Discord. Ця 
бібліотека забезпечує простий та зручний інтерфейс для взаємодії з Discord API, 
дозволяючи розробникам швидко та легко створювати ботів із різними функціями. 
Discord.io має безліч функцій та можливостей, включаючи підтримку аудіо- 
та відеодзвінків, відправлення повідомлень, обробку подій, керування серверами та 
каналами, а також роботу із зовнішніми API. 
Однією з головних переваг бібліотеки Discord.io є її простота використання. 
Вона надає безліч готових функцій та методів, які можна легко викликати у своєму 
коді, без необхідності писати складні запити до API. 
Крім того, Discord.io забезпечує хорошу підтримку спільноти та має велику 
документацію, яка дозволяє швидко та легко розібратися у її використанні. 
Бібліотека також постійно оновлюється та покращується, що забезпечує її 
надійність та актуальність. 
 
Однак, варто зазначити, що Discord.io має деякі обмеження та недоліки. 
Наприклад, вона може не забезпечувати повну функціональність Discord API та не 
підтримувати деякі функції, доступні в інших бібліотеках. Крім того, багато 
розробників зазначають, що Discord.io має дещо обмежений набір функцій 
порівняно з іншими бібліотеками. 
Загалом бібліотека Discord.io є відмінним вибором для створення ботів у 
Discord, особливо для новачків, які тільки починають освоювати розробку ботів. Її 
простота у використанні, хороша документація та підтримка спільноти 
забезпечують швидкий та зручний старт у розробці ботів.  
Лист 
ЧДТУ.231941.001 ПЗ 27 
Змн. Арк. № докум. Підпис Дата 
 
1.22 Eris та Discordie 
Eris та Discordie – це ще дві популярні бібліотеки для створення Discord-ботів 
на мові JavaScript. 
Eris – це швидка та ефективна бібліотека, розроблена для створення Discord-
ботів. Її основна перевага в тому, що вона використовує менше пам'яті та ресурсів 
процесора, що робить її добрим вибором для створення ботів з високою 
продуктивністю та для роботи на пристроях з обмеженими ресурсами. Eris також 
має дружній API та широкий спектр функцій, включаючи підтримку голосових 
каналів Discord. 
З іншого боку, Discordie є більш масштабованою бібліотекою з ширшим 
спектром функцій. Вона має більш просунуту підтримку для роботи з голосовими 
каналами Discord, а також надає різні інструменти для роботи з Discord-серверами, 
каналами та користувачами. Discordie також має дружній API та документацію, які 
допомагають розробникам швидко почати використовувати її для створення ботів 
на Discord. 
Лист 
ЧДТУ.231941.001 ПЗ 28 
Змн. Арк. № докум. Підпис Дата 
 
2. БІБЛІОТЕКИ ТА БАЗОВІ КОМАНДИ ДЛЯ СТВОРЕННЯ БОТУ 
2.1 Вітання нового користувача з допомогою JavaScript 
Використовуючи мову JavaScript, є можливість створити привітальне 
повідомлення для нових користувачів нашого серверу за допомогою наступного 
коду: 
// Підключення необхідних бібліотек 
const Discord = require('discord.js'); 
// Створення екземпляру клієнта Discord 
const client = new Discord.Client(); 
// Обробник події "ready", викликається коли бот готовий до використання 
client.on('ready', () => { 
  console.log(`Logged in as ${client.user.tag}!`); 
}); 
// Обробник події  "guildMemberAdd", викликається коли новий користувач 
приєднується до сервера  
client.on('guildMemberAdd', member => { 
  // Отримання каналу для вітання користувачів 
  const channel = member.guild.channels.cache.find(ch => ch.name === 
'название_канала'); 
  // Якщо канал не знайдений, виходимо із функції 
  if (!channel) return; 
  // Відправка повідомлення привітання 
  channel.send(`Добро пожаловать на сервер, ${member}!`); 
}); 
// Вхід в Discord за допомогою токена боту 
client.login('токен_бота'); 
Цей код підключає бібліотеку Discord.js, створює екземпляр клієнта Discord і додає 
обробники подій "ready" та "guildMemberAdd". При викликі події 
"guildMemberAdd" бот отримує канал, який потрібно відправити вітальне 
повідомлення, і надсилає це повідомлення. 
Лист 
ЧДТУ.231941.001 ПЗ 29 
Змн. Арк. № докум. Підпис Дата 
 
2.2 Інструкція користування 
Наступний код є прикладом створення автоматизації сповіщення та 
відправлення користувачам інструкції з користування проєктом на JavaScript: 
// Підключення необхідних бібліотек 
const Discord = require('discord.js'); 
const client = new Discord.Client(); 
 
// Коли бот готовий, виконується наступна функція 
client.on('ready', () => { 
  console.log(`Бот готов как ${client.user.tag}!`); 
}); 
 
// Обробка повідомлень 
client.on('message', message => { 
  // Перевірка, що повідомлення надійшло в особисті повідомлення 
  if (message.channel.type === 'dm') { 
    // Перевірка, що повідомлення надійшло від користувача (а не від іншого 
бота, наприклад) 
    if (!message.author.bot) { 
      // Перевірка, що користувач запросив інструкцію 
      if (message.content === '!help') { 
        // Відправка інструкції в особисті повідомлення 
        message.author.send(Вітаю! Для того щоб користуватися проектом, 
достатньо всього перейти на наш сервер «Анонімній психолог», переключитися на 
канал #написати-нам та створити звернення до психолога, яке висвітиться у всіх 
вільних психологів. Далі, після цього, очікуйте, коли психолог зв’яжеться з вами у 
спеціально відведеному каналі!.'); 
      } 
    } 
  } 
Лист 
ЧДТУ.231941.001 ПЗ 30 
Змн. Арк. № докум. Підпис Дата 
 
}); 
// Вхід бота в Discord 
client.login('YOUR_DISCORD_BOT_TOKEN'); 
 
2.3 Створення скарги 
Ось простий приклад коду для створення скарги на JavaScript з 
використанням Node.js та Express.js: 
const express = require('express'); 
const bodyParser = require('body-parser'); 
const app = express(); 
// Додаємо middleware для обробки JSON даних в тілі запиту 
app.use(bodyParser.json()); 
// Обробник POST-запитів на адрес '/complaint' 
app.post('/complaint', (req, res) => { 
  const { name, email, complaint } = req.body; 
  // Перевіряємо, щоб обов’язкові поля були заповнені 
  if (!name || !email || !complaint) { 
    return res.status(400).json({ error: 'Не заповнені обов’язкові поля' }); 
  } 
  // Зберігаємо скаргу в базу даних чи відправляємо на почту 
  // ... 
  // Відправляємо відповідь клієнту 
  return res.json({ message: Скарга успішно відправлена }); 
}); 
// Запускаємо сервер на порту 3000 
app.listen(3000, () => { 
  console.log('Сервер увімкнений на порту 3000'); 
}); 
 
Лист 
ЧДТУ.231941.001 ПЗ 31 
Змн. Арк. № докум. Підпис Дата 
 
У цьому прикладі ми створюємо сервер на Node.js за допомогою фреймворку 
Express.js. Ми додаємо middleware для обробки JSON даних у тілі запиту та 
створюємо обробник POST-запитів на адресу '/complaint'. У цьому обробнику ми 
перевіряємо, що обов'язкові поля (ім'я, email та скарга) були заповнені, зберігаємо 
скаргу в базі даних або відправляємо на пошту та надсилаємо відповідь клієнту. Для 
збереження скарг можна використовувати будь-яку базу даних, наприклад 
MongoDB або PostgreSQL. 
 
2.4 Опис Node.js 
Node.js - це серверна середовище, яке дозволяє виконувати JavaScript на 
сервері. Воно базується на движку V8 JavaScript, який використовується в браузері 
Google Chrome. Node.js дозволяє використовувати JavaScript для написання 
серверного коду, а також для створення інструментів командного рядка. 
Ось деякі особливості та переваги Node.js: 
• Асинхронне програмування: Node.js використовує асинхронну модель 
введення/виведення, яка дозволяє обробляти багато з'єднань одночасно 
без блокування потоку. Це значно підвищує продуктивність і дозволяє 
створювати масштабовані додатки. 
• Модульність: Node.js дозволяє використовувати модулі, які можуть 
бути перевикористані в різних проектах. Це дозволяє прискорити 
розробку, підвищити якість коду і зменшити час на налагодження. 
• Швидкість: завдяки використанню двигуна V8, Node.js має високу 
продуктивність і швидкодію. 
• Наявність великої кількості пакетів: Node.js має один з найбільших 
репозиторіїв пакетів, відомий як npm. Це дозволяє розробникам 
використовувати готові рішення для прискорення розробки. 
• Широке застосування: Node.js може використовуватися для написання 
веб-додатків, веб-серверів, API, мікросервісів, інструментів 
командного рядка, роботів і навіть настільних додатків. 
 
Лист 
ЧДТУ.231941.001 ПЗ 32 
Змн. Арк. № докум. Підпис Дата 
 
• Підтримка JavaScript: Node.js дозволяє використовувати одну і ту ж 
мову програмування на клієнтській і серверній стороні, що спрощує 
розробку і підтримку коду. 
• Розширюваність: Node.js дозволяє використовування модулів на мовах 
програмування, таких як C++, що дозволяє розширювати можливості 
Node.js і використовувати його для написання високопродуктивних 
додатків зі складними обчислювальними завданнями. 
• Надійність: Node.js має вбудовану підтримку обробки помилок і 
механізми відновлення після збоїв, що дозволяє розробникам 
створювати стійкі до помилок додатки. 
• Співпраця з веб-серверами: Node.js може взаємодіяти з багатьма веб-
серверами, такими як Apache і Nginx, для розгортання веб-додатків. 
Node.js стає все більш популярним серед розробників, оскільки воно дозволяє 
швидко та ефективно розробляти масштабовані додатки, що мають високу 
продуктивність і забезпечують надійну роботу. 
 
2.5 Express.js, переваги та недоліки 
Express.js є одним з найпопулярніших веб-фреймворків для Node.js. Цей 
фреймворк дозволяє швидко та легко розробляти веб-додатки на Node.js і  
Основні переваги Express.js: 
Легкість використання: Express.js має простий і лаконічний синтаксис, що 
дозволяє розробникам швидко розуміти його функціонал і легко використовувати 
його для розробки веб-додатків. 
Маршрутизація: Express.js дозволяє встановлювати шляхи маршрутизації для 
веб-додатків. Це дозволяє розробникам забезпечувати обробку запитів і відповідей 
на конкретні URL-адреси. 
Middleware: Express.js підтримує middleware - функції, які оброблюють 
запити перед тим, як вони досягнуть маршрутизатора. Це дозволяє розробникам 
забезпечувати додаткову обробку запитів, таку як автентифікація або логування. 
Лист 
ЧДТУ.231941.001 ПЗ 33 
Змн. Арк. № докум. Підпис Дата 
 
Підтримка шаблонів: Express.js підтримує використання шаблонів для 
створення сторінок веб-додатків. Це дозволяє розробникам використовувати 
HTML, CSS та JavaScript для створення користувацького інтерфейсу веб-додатків. 
Підтримка багатьох сторінок: Express.js дозволяє розробникам створювати 
веб-додатки з багатьма сторінками, включаючи статичні файли, такі як зображення 
і CSS-файли. 
Широка підтримка: Express.js підтримує багато плагінів і модулів, що 
дозволяє розробникам використовувати більш широкий набір функціональності 
для своїх веб-додатків. 
 
2.6. Переваги Node.js 
Node.js - це потужна платформа для розробки веб-додатків на стороні сервера, 
яка дозволяє виконувати JavaScript на стороні сервера. Це дозволяє розробникам 
створювати швидкі та масштабовані веб-додатки з використанням однієї мови 
програмування для всього стеку технологій, що спрощує розробку та підтримку 
додатків. 
 
Ось деякі переваги використання Node.js: 
Швидкість: Node.js дозволяє створювати веб-додатки з високою швидкістю 
завдяки використанню асинхронного вводу/виводу та неблокуючих операцій 
введення/виведення. Це дозволяє більш ефективно використовувати процесорні 
ресурси та обробляти більші завантаження. 
Масштабованість: Node.js дозволяє розробникам створювати масштабовані 
веб-додатки, що можуть обслуговувати багато запитів одночасно. Це 
забезпечується за рахунок можливості створювати багатопоточні додатки з 
використанням кластеризації. 
Використання JavaScript: Node.js дозволяє використовувати JavaScript як 
мову програмування на стороні сервера. Це забезпечує консистентність мови 
програмування на всьому стеку технологій. 
 
Лист 
ЧДТУ.231941.001 ПЗ 34 
Змн. Арк. № докум. Підпис Дата 
 
Модульність: Node.js має велику кількість модулів, які можна 
використовувати для швидкої розробки додатків. Це дозволяє розробникам швидко 
створювати додатки з використанням готових рішень. 
Підтримка API: Node.js дозволяє легко створювати API для інших додатків. 
Це забезпечує легкий доступ до функцій додатку та дозволяє його інтегрувати з 
іншими додатками 
 
2.7 Переваги Express.Js 
Express.js є одним з найпопулярніших фреймворків Node.js, який має такі 
переваги: 
Швидкість та ефективність: Express.js дозволяє розробникам створювати 
швидкі та ефективні веб-додатки. Він є одним з найшвидших фреймворків Node.js. 
Простота використання: Express.js пропонує простий та легкий у 
використанні інтерфейс для створення веб-додатків. Він дозволяє швидко 
створювати та запускати додатки без додаткових зусиль. 
Розширюваність: Express.js дозволяє розробникам додавати різноманітні 
модулі та функції до своїх додатків. Він має велику кількість плагінів та модулів, 
що дозволяє розширити функціональність веб-додатку. 
Маршрутизація: Express.js дозволяє розробникам налаштовувати 
маршрутизацію своїх веб-додатків. Це дозволяє зручно розподіляти запити до 
сервера та реалізувати складні маршрути. 
Шаблонізація: Express.js має підтримку різноманітних шаблонізаторів, що 
дозволяє розробникам легко створювати та підтримувати веб-сторінки. 
Підтримка middleware: Express.js дозволяє додавати middleware, які 
обробляють запити до сервера, перед тим як вони дістаються до маршрутів. Це 
дозволяє розробникам реалізувати багато корисних функцій, таких як авторизація, 
обробка помилок тощо. 
Розвинена спільнота: Express.js має велику та розвинену спільноту 
розробників, яка постійно розширює функціональність та допомагає вирішувати 
проблеми. 
Лист 
ЧДТУ.231941.001 ПЗ 35 
Змн. Арк. № докум. Підпис Дата 
 
2.8 Недоліки Node.js 
• Недостатня підтримка стандарту ECMAScript: хоча Node.js підтримує 
більшість стандартів ECMAScript, деякі з них, такі як ES6 і ES7, можуть 
не бути підтримані в повному обсязі. 
• Незручність в роботі з багатопоточністю: Node.js працює на 
однопоточній моделі, що може призвести до проблем при роботі з 
багатопоточними додатками. 
• Неперервна робота з пам'яттю: Node.js не має автоматичної системи 
збору сміття, що може призвести до проблем з пам'яттю та витоками. 
• Відсутність стандартів безпеки: Node.js не має стандартів безпеки, що 
може призвести до проблем з безпекою в додатках. 
• Обмеження в роботі з деякими операційними системами: Node.js може 
бути обмеженим в роботі з деякими стандартними операційними 
системами, такими як робота з файловою системою. 
 
2.9 Приклад недоречного використання Node.js 
Одним з найбільш поширених прикладів того, як Node.js може зіпсувати код, є 
робота з асинхронними функціями та обробка помилок. Ось приклад коду на 
Node.js, де виникає помилка в обробці асинхронної функції: 
 
const fs = require('fs'); 
fs.readFile('file.txt', 'utf-8', function (err, data) { 
if (err) { 
console.log(err); 
} 
console.log(data); 
}); 
console.log('The end'); 
 
Лист 
ЧДТУ.231941.001 ПЗ 36 
Змн. Арк. № докум. Підпис Дата 
 
У цьому прикладі Node.js спочатку читає файл 'file.txt' асинхронно, 
використовуючи функцію readFile(), а потім виводить результат в консоль. 
Проблема полягає в тому, що якщо виникає помилка під час читання файлу, то 
виконання програми не зупиниться, а виведе помилку в консоль і продовжить 
виконання далі, що може призвести до неочікуваних наслідків в роботі програми. 
 
Щоб уникнути цієї проблеми, краще використовувати обробку помилок за 
допомогою блоку try-catch, наприклад: 
 
const fs = require('fs'); 
 
try { 
  fs.readFile('file.txt', 'utf-8', function (err, data) { 
    if (err) { 
      throw err; 
    } 
    console.log(data); 
  }); 
} catch (err) { 
  console.log(err); 
} 
 
console.log('The end'); 
 
У цьому коді ми використовуємо блок try-catch для обробки помилок, що можуть 
виникнути під час читання файлу. Якщо виникає помилка, то вона буде кинута за 
допомогою throw, і потрапляє в блок catch, де її можна обробити. Якщо ж помилки 
не виникає, то програма продовжує виконання далі. 
 
 
Лист 
ЧДТУ.231941.001 ПЗ 37 
Змн. Арк. № докум. Підпис Дата 
 
2.10 Недоліки Express.js 
 
Хоча Express.js є дуже популярним фреймворком для Node.js, він має деякі 
недоліки, серед яких можна виділити наступні: 
Розширення функціональності. Хоча Express.js дозволяє досить легко 
розширювати функціональність за допомогою плагінів та middleware, наявність 
багатьох додаткових функцій може призвести до складнощів у розробці, особливо 
якщо декілька middleware співпрацюють одночасно. 
Синтаксичний шум. В Express.js багато додаткового синтаксису, такого як 
маршрутизація та middleware, що може призвести до складнощів у розумінні коду 
для новачків. 
Перевантаження middleware. З використанням багатьох middleware, сервер 
може затримуватися, що призводить до зниження продуктивності. 
Відсутність стандартів. Express.js не має стандартів для певних аспектів 
розробки веб-додатків, що може призвести до проблем з портативністю коду між 
проектами. 
Відсутність захисту. Express.js не надає вбудованого захисту від багатьох 
типів атак, таких як XSS і CSRF, тому розробники повинні самостійно розглянути 
ці аспекти безпеки 
 
2.11 Приклад недоречного використання Express.js 
Один з прикладів недоречного використання Express.js може виглядати 
наступним чином: 
const express = require('express'); 
const app = express(); 
 
app.get('/', (req, res) => { 
  res.send('Hello World!'); 
}); 
 
Лист 
ЧДТУ.231941.001 ПЗ 38 
Змн. Арк. № докум. Підпис Дата 
 
app.listen(3000, () => { 
  console.log('Server listening on port 3000'); 
}); 
 
У цьому прикладі використовується Express.js для створення простого веб-
сервера, який відображає "Hello World!" на головній сторінці. Однак, використання 
Express.js для такої малої задачі може бути надмірним та займати зайве місце в коді. 
 
У цьому випадку, можна було б скористатися стандартним модулем Node.js 
http для створення сервера, що займе менше місця в коді та забезпечить швидкість 
та продуктивність. Наприклад: 
 
const http = require('http'); 
 
const server = http.createServer((req, res) => { 
  res.writeHead(200, { 'Content-Type': 'text/plain' }); 
  res.end('Hello World!\n'); 
}); 
 
server.listen(3000, () => { 
  console.log('Server listening on port 3000'); 
}); 
 
Цей код використовує модуль http для створення веб-сервера, який повертає 
"Hello World!" на головній сторінці. Використання цього модуля забезпечує більшу 
швидкість та продуктивність в порівнянні з використанням Express.js в такій 
простій задачі. 
 
 
 
Лист 
ЧДТУ.231941.001 ПЗ 39 
Змн. Арк. № докум. Підпис Дата 
 
2.12 Переваги Node.js та Express.js 
Існує кілька альтернатив Node.js та Express.js, які можна використовувати для 
розробки веб-додатків на серверному боці: 
Deno: це сучасна платформа для розробки веб-додатків на JavaScript та 
TypeScript, яка пропонує вбудований менеджер пакетів, вбудований модуль 
тестування та вбудований лінтер. 
Meteor: це повноцінний фреймворк для розробки веб-додатків на JavaScript, 
який пропонує інтегровану підтримку бази даних MongoDB та вбудовану 
автентифікацію та авторизацію. 
Koa: це мінімалістичний фреймворк для розробки веб-додатків на JavaScript, 
створений тими ж розробниками, що і Express.js. Koa пропонує більш просту та 
легку використанні архітектуру в порівнянні з Express.js. 
Hapi: це фреймворк для розробки веб-додатків на JavaScript, створений 
компанією Walmart. Hapi пропонує більш високий рівень безпеки та меншу 
кількість підключених залежностей порівняно з Express.js. 
NestJS: це фреймворк для розробки веб-додатків на TypeScript, який пропонує 
модульну архітектуру та вбудовану автентифікацію та авторизацію. 
Fastify: це мінімалістичний фреймворк для розробки веб-додатків на 
JavaScript, який пропонує швидку швидкість та низький рівень затримок в 
порівнянні з іншими фреймворками. 
Ці альтернативи можуть бути корисними, якщо вам не потрібна повна 
функціональність Node.js та Express.js або якщо ви шукаєте більш спеціалізований 
фреймворк для конкретної задачі. 
 
2.13 Альтернативи для Discord боту 
 
Для розробки Discord боту з перелічених альтернатив можна використовувати 
Deno та NestJS. 
 
Лист 
ЧДТУ.231941.001 ПЗ 40 
Змн. Арк. № докум. Підпис Дата 
 
Deno - це нова платформа для розробки серверних додатків, яка використовує 
мову програмування TypeScript. Deno надає вбудовану підтримку модулів, 
асинхронного вводу/виводу та WebSockets, що дозволяє легко створювати ботів для 
Discord. 
 
NestJS - це фреймворк на основі Node.js, який використовує TypeScript та 
вбудовує у себе функціонал з більшості популярних бібліотек та фреймворків для 
Node.js, включаючи Express та Socket.io. NestJS дозволяє легко створювати ботів 
для Discord та інших месенджерів, забезпечуючи гнучку конфігурацію та 
масштабованість. 
 
Meteor, Koa, Hapi та Fastify також можуть бути використані для розробки 
Discord ботів, але вони більше спрямовані на розробку веб-додатків та API, а не на 
розробку ботів для месенджерів. 
2.14 Що впливає на якість Discord боту 
• Якість Discord боту залежить від декількох факторів: 
• Функціональності: функціональність бота грає важливу роль у взаємодії 
з користувачами. Якщо бот не виконує завдання, на які він був 
створений, то користувачі можуть вважати його непотрібним. 
• Швидкодії: якщо бот повільно працює, то це може викликати 
незадоволення користувачів та призвести до того, що вони перестануть 
використовувати його. 
• Стабільності: бот повинен працювати беззбоючно та не переривати свою 
роботу. Якщо бот нестабільний і не може працювати без перерви, то 
користувачі можуть знайти інший бот, який відповідає їх потребам. 
• Безпеки: бот повинен бути безпечним для користувачів та серверів 
Discord. Недостатня безпека може призвести до того, що бот буде 
використаний для зловживання або спаму. 
Лист 
ЧДТУ.231941.001 ПЗ 41 
Змн. Арк. № докум. Підпис Дата 
 
• Взаємодії з API: для створення Discord бота необхідно використовувати 
Discord API. Якщо розробник не знайомий з API або не розуміє, як з ним 
взаємодіяти, то це може вплинути на якість бота. 
• Розміщення: на якість Discord бота може вплинути його розміщення. 
Якщо бот розміщений на слабкому сервері, то це може викликати 
затримки у відповіді, які відображатимуться на швидкодії бота. 
• Підтримки: підтримка та оновлення бота також впливають на його 
якість. Якщо бот не отримує підтримки та оновлень, то він може бути 
небезпечним для користувачів та серверів Discord.. 
2.15 Як підвищити якість Discord бота 
Підвищення якості Discord боту може бути досягнуто за допомогою 
наступних кроків: 
Оптимізація коду: Перевірка кода боту на наявність помилок та 
неефективності. Використування оптимізованних бібліотек, які можуть допомогти 
зменшити навантаження на процесор та пам'ять. 
Використання правильних API: Використання правильних API може значно 
знизити час відповіді боту та забезпечити кращу продуктивність. 
Прикладні бібліотеки: Використання прикладних бібліотек, які забезпечують 
підтримку основних функцій, таких як голосовий чат, може допомогти в 
поліпшенні функціональності та продуктивності боту. 
Налагодження взаємодії з користувачем: Робота з взаємодією з користувачами 
та їхніми запитами може допомогти в покращенні якості боту та в забезпеченні 
більш приємного користувацького досвіду. 
Тестування: Проведення тестів може допомогти виявити помилки та недоліки 
в роботі боту та виправити їх на ранніх стадіях розробки. 
Захист від зловмисників: Захист від зловмисників та ботів може допомогти 
зберегти безпеку боту та даних користувачів. 
Підтримка: Надання постійної підтримки та оновлення може допомогти в 
поліпшенні якості боту та збереженні користувацького довір'я. 
 
Лист 
ЧДТУ.231941.001 ПЗ 42 
Змн. Арк. № докум. Підпис Дата 
 
2.16 Що потрібно знати для вдалого створення Discord бота 
Для вдалого створення Discord бота вам потрібно знати наступне: 
Принцип роботи Discord API: Для розробки бота необхідно мати знання про 
те, як працює Discord API. Це включає розуміння структури повідомлень, серверів, 
каналів, ролей та користувачів. 
Мова програмування: Ви повинні знати мову програмування, яку ви будете 
використовувати для розробки бота. Для Discord ботів можна використовувати різні 
мови програмування, такі як JavaScript, Python, Ruby, Go і т.д. 
Бібліотека Discord: Discord має офіційну бібліотеку для кількох мов 
програмування, таких як JavaScript, Python і Java. Ця бібліотека робить розробку 
бота значно простішою, оскільки вона надає доступ до Discord API та забезпечує 
роботу з повідомленнями, серверами, каналами, ролями та користувачами. 
Практика розробки програмного забезпечення: Розробка бота вимагає 
практики розробки програмного забезпечення, включаючи знання про техніки 
тестування, контроль версій, процес розробки, методології проектування та т.д. 
Розуміння Discord спільноти: Discord має велику спільноту користувачів та 
розробників. Вам необхідно мати розуміння того, як працює ця спільнота та які є 
вимоги до ботів. Наприклад, бот не повинен спамити повідомленнями, не повинен 
мати образливий контент та повинен виконувати свої функції згідно з 
домовленістю. 
2.17 Типові помилки при створенні Discord боту 
Одна з типових помилок при створенні Discord бота - це неправильне 
використання об'єкта Message у команді. Наприклад, намагаючись відправити 
повідомлення з команди, можна забути відключити відповідь на повідомлення з 
командою. 
 
Приклад коду з такою помилкою може виглядати так: 
client.on('message', message => { 
  if (message.content === '!ping') { 
    message.channel.send('Pong!'); 
Лист 
ЧДТУ.231941.001 ПЗ 43 
Змн. Арк. № докум. Підпис Дата 
 
    message.reply('Ping!'); 
  } 
}); 
 
У цьому коді, відправляється повідомлення "Pong!", а також намагається бути 
відповіддю на повідомлення з командою за допомогою методу reply(). Однак, це 
призведе до помилки, оскільки відповідь на повідомлення вже була надіслана з 
методом send(). Це може спричинити проблеми зі збереженням логіки бота та 
збільшенням кількості відправлених повідомлень. Щоб уникнути цієї помилки, 
необхідно відключити відповідь на повідомлення з командою, замість того, щоб 
відповідати на нього. 
 
Ось як можна виправити код, щоб уникнути цієї помилки: 
client.on('message', message => { 
  if (message.content === '!ping') { 
    message.channel.send('Pong!'); 
  } 
}); 
 
У цьому випадку, повідомлення "Pong!" надсилається без відповіді на 
повідомлення з командою. Це дозволяє зберегти логіку бота та уникнути 
відправлення непотрібних повідомлень. 
2.18 Куди звертатись за допомогою у створенні бота 
Під час створення Discord бота можуть виникати різноманітні труднощі. 
Якщо вам потрібна допомога, є кілька варіантів, куди можна звернутися: 
Офіційна документація Discord - це перший і найважливіший джерело 
інформації. Вона містить повну інформацію про API Discord та опис всіх функцій і 
методів. 
Лист 
ЧДТУ.231941.001 ПЗ 44 
Змн. Арк. № докум. Підпис Дата 
 
Форум Discord - це місце, де можна задати питання, поділитися досвідом та 
знайти відповіді на складні питання. На форумі є окремі розділи для розробників, 
де можна отримати допомогу від інших розробників. 
Discord Developer Community - це офіційне співтовариство розробників 
Discord, де можна обговорювати питання з іншими розробниками та отримати 
відповіді від експертів. 
Stack Overflow - це популярний ресурс для отримання відповідей на технічні 
питання. Тут можна знайти багато корисної інформації про Discord ботів, а також 
задати своє питання і отримати відповідь від інших розробників. 
Discord-сервери спільнот - є багато Discord-серверів, де можна знайти 
допомогу від інших розробників. Найкраще звернутися на сервери, які 
спеціалізуються на розробці Discord ботів. 
GitHub - це місце, де можна знайти відкритий код багатьох Discord ботів. 
Перевірте репозиторії, щоб знайти корисну інформацію, яку можна використати для 
власного бота.  
Лист 
ЧДТУ.231941.001 ПЗ 45 
Змн. Арк. № докум. Підпис Дата 
 
3. DISCORD БОТ ДЛЯ НАДАННЯ ПСИХОЛОГІЧНОЇ ДОПОМОГИ 
3.1 Discord-бот «Твій психолог» 
Твій психолог – це бот, розроблений спеціально під ключ для проекту, який 
займається наданням безкоштовної дистанційної психологічної допомоги  
відвідувачам Discord – серверу «Анонімний психолог». Бот має багато різних 
функцій, які допомогають як створити звернення і проводити повний контроль над 
ним, так і керувати налаштуваннями та правами усіх користувачів на сервері 
«Анонімний психолог». Цей бот був створений на мові JavaScript, з багатьма 
підключенними бібліотеками, та додатковими базами даних для більш зручного 
редагування запитів та іншої інформації, котру споживачі проєкту (в першу чергу – 
клієнти) можуть використовувати задля особистих потреб, під час перегляду новин 
як психологічної частини серверу, так і технічної частини. З часом, під час 
активного розвитку проєкту, цей чат бот мав додаткові послуги, які сприяють на 
якість оцінювання психологів після їх роботи, що дає змогу проводити статистику, 
та створення розважальних розділів серверу, зазвичай використовуючи алгоритм 
рандомізації через сайт Randomizer. Використання такого роду технологій, та 
створення бази даних на основі SQL (Structured Query Language), та різновиди, такі 
як MySQL, PostgreSQL, Oracle, MircosoftSQL server та інші. Основна частина і 
функціонал боту були створені за допомогою мови JavaScript та підключених 
бібліотек Node.JS nf Express.JS. 
 
Функціонал бота  
• Авторизація користувачів 
• Перевірка правильності введення даних 
• Створення таблиці та внесення інформацію у базу даних 
• Редагування інформації користувача 
• Перевірка віку клієнтів для запобігання блокувань зі сторони правил 
використання Discord terms 
• Створення запиту (тікет) 
• Можливість редагування тікета 
• Можливість створення голосового каналу під час розгляду звернення 
• Система відгуків 
• Система нагороджень за активність 
• Система автоматичного сповіщення користувачів 
Лист 
ЧДТУ.231941.001 ПЗ 46 
Змн. Арк. № докум. Підпис Дата 
 
Збір інформації користувачів для подальшого форматування 
 
Для збирання інформації про користувачів Discord серверу можна 
використовувати бібліотеку Discord.js та її API. 
Основний підхід до збору інформації про користувачів - це перебір всіх 
користувачів на сервері та збір інформації про кожного з них. Наприклад, можна 
збирати інформацію про нікнейм, дискримінатор, дату реєстрації, статус 
(онлайн/офлайн), останню дату з'єднання з сервером тощо. 
Ось код на JavaScript, який перебирає всіх користувачів на сервері та виводить 
їхню інформацію: 
 
// Підключення необхідних бібліотек 
const Discord = require('discord.js'); 
 
// Створення екземпляру клієнта Discord 
const client = new Discord.Client(); 
 
// Обробник події "ready", викликається при успішному підключенні бота до 
серверу 
client.on('ready', () => { 
  console.log(`Logged in as ${client.user.tag}!`); 
  // Отримання сервера по його ID 
  const guild = client.guilds.cache.get('ID_сервера'); 
  // Перебір всіх користувачів на сервері 
  guild.members.cache.forEach(member => { 
    // Виведення інформації про кожного користувача 
    console.log(`${member.user.tag} - ${member.nickname} - 
${member.user.createdTimestamp} - ${member.presence.status}`); 
  }); 
}); 
 
// Вхід в Discord з використанням токена бота 
client.login('токен_бота'); 
 
 
Лист 
ЧДТУ.231941.001 ПЗ 47 
Змн. Арк. № докум. Підпис Дата 
 
Блокування та захист від спаму 
 
Задля того, щоб забезпечити користувачам комфортне спілкування з 
психологами, було також додано функцію блокування тих, хто «спамить» до чатів, 
що заважає роботі проєкту: 
 
// Підключення необхідних бібліотек 
const Discord = require('discord.js'); 
 
// Створення екземпляру клієнта Discord 
const client = new Discord.Client(); 
 
// Кількість повідомлень, які користувач повинен відправити, щоб бути 
заблокованим 
const SPAM_LIMIT = 5; 
 
// Обробник події "message", викликається при отриманні нового 
повідомлення 
client.on('message', message => { 
  // Перевірка, чи повідомлення не від бота та не знаходиться в приватному 
повідомленні 
  if (!message.author.bot && message.channel.type !== 'dm') { 
    // Отримання всіх повідомлень користувача на сервері 
    const userMessages = message.channel.messages.cache.filter(msg => 
msg.author.id === message.author.id); 
    // Перевірка, чи користувач відправив достатньо повідомлень для 
блокування 
    if (userMessages.size >= SPAM_LIMIT) { 
      // Блокування користувача 
      message.member.ban({ reason: 'Спам в чаті' }) 
        .then(member => { 
          // Відправка повідомлення про блокування 
          message.channel.send(`${member.user.tag} був заблокований за спам.`); 
        }) 
        .catch(err => { 
Лист 
ЧДТУ.231941.001 ПЗ 48 
Змн. Арк. № докум. Підпис Дата 
 
          console.error(err); 
          message.channel.send('Сталася помилка при блокуванні користувача.'); 
        }); 
    } 
  } 
}); 
 
// Вхід в Discord з використанням токена бота 
client.login('токен_бота'); 
 
3.2 Хто є сервером для бота 
 
Поки-що, сервером для цього бота слугує особистий комп’ютер одного з 
розробників проєкту. Це дає змогу вчасно редагувати помилки та прискорює 
шкидкість реагування, але має ряд проблем, таких як відсутність можливості 
постійної роботи бота у зв’язку з відключенням мережі, та відсутність підключення 
до мережі інтернет також створюють складнощі у правильному функціонуванні 
бота. 
 
  3.3 Види запитів клієнтів 
Існує ряд основних запитів клієнтів, таких як: 
• Звернення до психолога, 
• Звернення до форуму психології 
• Спілкування в чаті (текстовому) 
• Участь у загальних сборах  психологічної теми 
 
Основна частина тих, хто приєднується до нашого проекту – люди, які 
бажають отримати консультацію психолога, що є логічним, оскільки наш проект 
позиціонує себе з тим, який надає безкоштовну анонімну психологічну допомогу. 
За звернення відповідає певна категорія, котра буде описана далі. 
 
Форум психології 
Звернення на форум психології - це другий вид подання звернень та зв'язки з 
психологами, але в цьому випадку запит людини видно абсолютно всім, і кожен 
Лист 
ЧДТУ.231941.001 ПЗ 49 
Змн. Арк. № докум. Підпис Дата 
 
може дати відповідь людині або декільком людям, які ведуть обговорення в певному 
каналі (темі). 
Переваги використання форуму психології: 
• Швидкий відгук користувачів; 
• Варіативність відповідей; 
• Можливість обговорення проблеми з іншими користувачами 
Мінуси використання форуму психології: 
• Відповіді може давати не психолог 
• Відсутність можливості налаштування з допомогою бота форуму 
• Відсутність можилвості контролю форума з допомогою коду 
 
Спілкування в текстових чатах Discord 
Спілкуючись в Discord, всеодно можемо виділити певні переваги та недоліки 
спілкування у цій мережі. 
Ось деякі з переваг та недоліків спілкування у чаті Discord: 
 
Переваги: 
• Багатофункціональність: Discord має багато функцій, таких як 
голосовий та текстовий чат, можливість відправляти файли та 
використовувати емодзі, що дозволяє користувачам взаємодіяти на 
різних рівнях. 
• Багато серверів: Discord має безліч серверів, на яких можна знайти 
тематичні спільноти зі співрозмовниками, які мають спільні інтереси. 
• Зручне управління: Discord має досить простий та зручний інтерфейс, 
що дозволяє швидко знаходити сервери, додавати друзів та взаємодіяти 
з іншими користувачами. 
• Безкоштовно: Discord безкоштовний для всіх користувачів та не має 
обмежень на кількість повідомлень, які можна відправити. 
 
Недоліки: 
 
• Небезпека для дітей: через відкрите середовище та відсутність вікових 
обмежень, Discord може бути небезпечним для дітей та підлітків, які 
можуть стикнутися з несприятливим контентом або зловмисниками. 
Лист 
ЧДТУ.231941.001 ПЗ 50 
Змн. Арк. № докум. Підпис Дата 
 
• Легко перетворитися на часовий вихід: через безліч серверів та 
користувачів, можна легко провести багато часу у чаті, забуваючи про 
інші речі. 
• Відволікання від роботи: Discord може стати джерелом відволікання 
для користувачів, які використовують його на робочому місці. 
• Залежність від інтернету: для використання Discord потрібний 
стабільний доступ до Інтернету. Це може стати проблемою у випадку 
відключення або низької швидкості зв'язку. 
 
• Нав'язлива реклама: на деяких серверах можуть з'являтися рекламні 
повідомлення, які можуть бути нав'язливими та відволікати увагу від 
важливих розмов. 
 
3.3.1 Алгоритм роботи бота та його задачі 
Головна задача боту – фільтрація запитів користувачів та перенаправлення їх 
до конкретного психолога, який допоможе вирішити ту чи іншу проблему.  
 
Рисунок 3.1 – алгоритм роботи бота 
 
Коли клієнт подає запит, він заповнює невелику анкету, у якій указує свій вік, 
суть звернення та вибір психолога (стажор або психолог який давно працює у 
проекті. Після цього, бот автоматично відправляє по цим критеріям запити 
психологам, котрі отримують його у тому випадку, якщо є збіги хоча-б з одним 
пунктом, з яким психолог готовий працювати. Якщо трапляється так, що звернення 
Лист 
ЧДТУ.231941.001 ПЗ 51 
Змн. Арк. № докум. Підпис Дата 
 
клієнта не отримує ні один із психологів через те, що його запит не співпав з 
категоріями психологів, це звернення отримують усі психологи (у тому числі і 
стажори), і при першій можливості, беруть це звернення та працюють з клієнтом. 
Це зроблено для того, щоб клієнт, який вказав невірні дані при заповненні 
анкети (перед тим як відправляти запит), все-одно міг отримати відповідь та 
поспілкуватися з психологом.  
 
 
3.4 Створення системи звернень у Discord 
Мета створення серверу та бота – безкоштовна психологічна допомога 
людям. Завдяки наступному прикладу, я продемонструю, як саме створювалось 
звернення: 
 
 
 
Рисунок 3.2 – Модульна форма, та кнопка подачі звернення 
 
Лист 
ЧДТУ.231941.001 ПЗ 52 
Змн. Арк. № докум. Підпис Дата 
 
За створення цьої форми відповідає багато видів бібліотек та категорій, але  
основний фундамент коду є наступним: 
 
Const about_modal = fields.getTextInputValue(‘aboutFormText’); 
Const age_modal = fields.getTextInputValue(‘ageFormText’) 
Const type_communication_modal = fields.getTextInputValue(‘typeFormText’) 
 
// TODO: Перевірка максимальної довжини опису звернення 
 
 if(about_modal.length > 3000) { 
 newEmbed 
  .setDescription(‘>>> **Довжина звернення не може 
перевищувати більш як __3000__ символів!**’) 
 Return interaction.editReply({ embeds: [newEmbed], ephemeral: true }); 
  } 
// TODO: створення текстового файлу для звернення 
 
Const amount_of_tickets = fs.readFileSync(‘./data/tickets.txt’, ‘utf8’); 
Const amount = Number(amount_of_tickets) + 1; 
If(!member.roles.cache.has(‘10215917825759’)) { 
 Fs.writeFileSync(‘./data/tickets.txt’, `$(amount)`); 
} 
 
Цей код відповідає саме за процесс створення звернення користувачем та 
створення відповідного TXT файлу, куди буде записуватись інформація з цього 
створенного звернення для подальшого редагування. 
 
 
 
Лист 
ЧДТУ.231941.001 ПЗ 53 
Змн. Арк. № докум. Підпис Дата 
 
3.5 Створення системи відгуків користувачів 
 
Задля ведення контролю статистики та роботи психологів проєкту, була 
введена система відгуків. Виглядає це наступним чином: 
 
 
   Рисунок 3.3 – система відгуків 
 
Загальний вигляд коду є наступним: 
 
interaction.update({ components: [[ }).then({} => { 
 const attachment = new AttachmentBuilder(`E:/Discord 
Project/psych/data/tickets/users/${userMember.user.id).txt`, { name: 
`${userMember.user.id}.txt` }); 
 dmEmbed 
 .setDescription(`**Звернення #${ticket_nubmer} зачинено**/n/n>>> **Дякую, 
що скористалися нашими послугами!**/n/n**Також, якщо вам сподобалась наша 
робота, ви можете підтримати наш проєкт!`) 
 
userMember.user.send){ embeds: [dmEmbed] }).catch{)=>{}); 
 
Лист 
ЧДТУ.231941.001 ПЗ 54 
Змн. Арк. № докум. Підпис Дата 
 
newEmbed 
 .setAuthor({ name: `Звіт по зверненню #$(ticket_number}`, iconURL: 
`https://media.discordapp.net/attachments/284815721812578128/217587158718571285
718257/8c18725812758127581257.png` }) 
 .setDescription(`>>>**Звернувся:**${userMember.user} 
(${userMember.user.id})/n**Психолог:**$(psychMember.user) 
(${psychMember.user.id})/n/n**Звернення закрив: ** ${member.user} 
(${member.user.id})`} 
 .setTimestamp{} 
 /setFooter({ text: `ticket#${ticket_number}` }); 
 
ticketLogs.send({ embeds: [newEmbed], files: [attachment} }); 
 
 Цей код спрацьовує після того, як користувач або психолог зачинив звернення, та 
одразу ж після цього відправляється інформація до певної категорії «Відгуки». 
 
3.6 Звернення до запиту, перевірка звернення 
Перевірка та створення звернень є дуже великою задачею для фільтрації  
Інформації, котру користувачі проєкту будуть використовувати у подальшому 
для зв’язку з психологами. Задля запобігання наступних помилок, ми зробили 
можливість створення лише одного активного звернення від користувачів та 
психологів. Це допоможе запобігти поламки бота. Ось частина основного коду: 
 
if{message.author.bot} return; 
if{message.channel == bumpChannel} return message.delete{}; 
 
if{message.channe.type == ChannelType.DM} return; 
if{message.channel.parentId !== `1008345834578345990` && 
!channel.name.includes(`звернення`)} return; 
 
Лист 
ЧДТУ.231941.001 ПЗ 55 
Змн. Арк. № докум. Підпис Дата 
 
const Tickets = require(`./schemas/TicketsSchema`}); 
 
const ticket = await Tickets.find({ channelId: channel.id}); 
 
if{ticket.lenght <1} return; 
 
const userMember = thisGuild.members.cache.get{ticket[0].userId}; 
const psychMember = thisGuild.members.cache.get{ticket[0].psychId}; 
 
if(!psychMember} return; 
if{!userMember} return; 
 
Що робить цей код:  
 
• Перевіряє, чи автор повідомлення ботом. Якщо так, то повертає 
керування. 
• Перевіряє, чи надіслано повідомлення в канал для реклами сервера 
(канал для бампів). Якщо так, видаляє повідомлення і повертає 
керування. 
• Перевіряє, чи надіслано повідомлення в особисті повідомлення. Якщо 
так, то повертає керування. 
• Перевіряє, чи канал, до якого було надіслано повідомлення, каналом 
звернень (тикетів) на сервері. Якщо ні, то повертає керування. 
• Імпортує схему Tickets із файлу TicketsSchema. 
• Шукає тикет у базі даних по id каналу, до якого було надіслано 
повідомлення. 
• Якщо тикет не знайдено, повертає управління. 
• Отримує інформацію про користувача та психолога, які пов'язані з 
тикетом. 
Лист 
ЧДТУ.231941.001 ПЗ 56 
Змн. Арк. № докум. Підпис Дата 
 
• Якщо інформацію про психолога не було знайдено, повертає 
управління. 
• Якщо інформацію про користувача не було знайдено, повертає 
керування. 
 
 
3.7 Система репортування та виклик адміністратора 
 
 
Рисунок 4 – виклик адміністратора до певного каналу 
Для того, щоб краще фільтрувати та редагувати звернення, а також проводити 
модерацію навіть в тет-а-тет зверненнях, було створено систему створення 
репортів, задля виклику адміністратора в той чи інший канал. Ось код: 
 
const { Client, Intents } = require('discord.js'); 
const client = new Client({ intents: [Intents.FLAGS.GUILDS, 
Intents.FLAGS.GUILD_MESSAGES] }); 
const reportChannelId = '1234567890'; // ID канала, в який будуть приходити 
репорти 
const adminRoleId = '0987654321'; // ID ролі адміністраторів 
client.on('messageCreate', async (message) => { 
  if (message.content.startsWith('!report')) { 
    const reportText = message.content.slice(8); 
    const reportChannel = client.channels.cache.get(reportChannelId); 
    if (!reportChannel) { 
Лист 
ЧДТУ.231941.001 ПЗ 57 
Змн. Арк. № докум. Підпис Дата 
 
      return console.log(`Не вдалося найти канал з ID ${reportChannelId}`); 
    } 
    const reportEmbed = new Discord.MessageEmbed() 
      .setTitle('Новий репорт') 
      .setDescription(reportText) 
      .addField('Автор', message.author.toString()) 
      .setColor('#ff0000') 
      .setTimestamp(); 
    reportChannel.send({ content: `<@&${adminRoleId}>`, embeds: 
[reportEmbed] }); 
    await message.reply('Репорт успішно відправлений!'); 
  } 
}); 
client.login('токен_бота'); 
 
3.8 Недоліки крокового двигуна 
Кроковий двигун має низку недоліків, у тому числі високу ціну, високий 
рівень енергоспоживання, низьку швидкість обертання та недостатню точність. 
Також можуть виникнути проблеми з високими температурними показниками та 
вібрацією. Таким чином, вибір крокового двигуна має бути зроблений з 
урахуванням його переваг та недоліків. 
 
3.9 Вікно швидких відповідей 
Для того, щоб не писати повідомлення на одну і ту ж тему, було створене 
контексне меню, яке допоможе психологам надавати швидкі відковіді на популярні 
теми. Це має наступний вигляд:  
Лист 
ЧДТУ.231941.001 ПЗ 58 
Змн. Арк. № докум. Підпис Дата 
 
 
Рисунок 5 – меню швидких відповідей 
Код меню має наступний вигляд: 
Module.exports = { 
 Data: new SlashCommandBuilder() 
  .setName(`ticketfast`) 
  .setDescription(`Команда для швидких відповідей`) 
  .setDMPermission(false) 
  .addSubcommand(subcommand => //TODO : Тема прив’язанність 
   Subcommand 
    .setName(`priv`) 
    .setDescription(`Прив’язанність`) 
   } 
  .addSubcommand(subcommand => //TODO : Тема ревнощі 
   Subcommand 
    .setName(`revn`) 
    .setDescription(`Ревнощі`) 
   } 
  .addSubcommand(subcommand => //TODO : Тема Булінг 
   Subcommand 
    .setName(`buling`) 
    .setDescription(`Булінг`) 
Лист 
ЧДТУ.231941.001 ПЗ 59 
Змн. Арк. № докум. Підпис Дата 
 
   } 
  .addSubcommand(subcommand => //TODO : Тема Селфхарм 
   Subcommand 
    .setName(`selfhatm`) 
    .setDescription(`Селфхарм`) 
   } 
 
 
3.10 Створення діалогових команд 
Діалогові команди - це спосіб забезпечення більш інтерактивної і зручної 
взаємодії з ботом у Discord. Замість того, щоб вводити команди в текстовий канал, 
користувач може запустити команду, яка відкриє діалогове вікно, що містить певні 
параметри та опції, які можна налаштувати. 
 
Основний принцип створення діалогових команд в боті Discord полягає в 
тому, щоб спочатку визначити, яка команда повинна відкрити діалогове вікно, та які 
параметри та опції повинні бути доступні в цьому діалоговому вікні. Після цього 
створюється команда, яка при виклику запускає діалогове вікно. 
 
Наприклад, якщо ми створюємо бота для створення замовлень піци, ми 
можемо створити діалогову команду /order, яка запускає діалогове вікно з 
наступними параметрами: розмір піци, тип тіста, начинка, адреса доставки, 
контактна інформація тощо. Користувач може вибирати параметри та вказувати свої 
дані у відповідних полях, а потім надіслати замовлення. 
 
Для створення діалогових команд в боті Discord використовуються спеціальні 
фреймворки, такі як Discord.js, які надають необхідні інструменти для роботи з 
командами та діалоговими вікнами. 
 
Лист 
ЧДТУ.231941.001 ПЗ 60 
Змн. Арк. № докум. Підпис Дата 
 
Ось приклад коду для створення таймеру (базовий код для того, щоб 
використовувати його як шаблон для створення своїх команд): 
 
const { Client, Intents } = require('discord.js'); 
const client = new Client({ intents: [Intents.FLAGS.GUILDS, 
Intents.FLAGS.DIRECT_MESSAGES] }); 
 
client.on('messageCreate', async message => { 
  if (message.content === '!ping') { 
    const { member } = message; 
    const filter = response => { 
      return response.author.id === member.id; 
    }; 
 
    // Створення діалогової команди 
    message.channel.send('Введіть свій вік').then(() => { 
      message.channel.awaitMessages({ filter, max: 1, time: 10000, errors: ['time'] 
}) 
        .then(async collected => { 
          const age = collected.first().content; 
          message.channel.send(`Ваш вік: ${age}`); 
        }) 
        .catch(() => { 
          message.channel.send(`Час сплинув.`); 
        }); 
    }); 
  } 
}); 
 
client.login('TOKEN'); 
Лист 
ЧДТУ.231941.001 ПЗ 61 
Змн. Арк. № докум. Підпис Дата 
 
 
3.11 Створення свого бота в Discord (початкові кроки) 
Для створення свого бота в Discord необхідно виконати наступні кроки: 
 
• Створіть акаунт розробника Discord. Якщо ви вже маєте акаунт, 
увійдіть в нього і перейдіть до кроку 2. Якщо ні, створіть новий акаунт 
за посиланням: https://discord.com/developers/applications/. 
 
Рисунок 6 – сайт для початку створення власного бота 
• Натисніть кнопку "New Application" і введіть назву вашої програми 
(бота). 
• Перейдіть на вкладку "Bot" і натисніть кнопку "Add Bot". Після цього 
натисніть кнопку "Yes, do it!" на попереджувальному вікні. 
• Налаштуйте параметри вашого бота. Встановіть його аватарку і назву. 
• Опціонально: є можливість налаштувати права для бота, щоб дати йому 
доступ до окремих каналів або серверів. 
• Після того, як ви налаштували свого бота, знайдіть його токен, 
натиснувши кнопку "Copy" під полем "TOKEN". Цей токен потрібен 
для з'єднання вашого бота з Discord API. 
 
Лист 
ЧДТУ.231941.001 ПЗ 62 
Змн. Арк. № докум. Підпис Дата 
 
• Завантажте та встановіть необхідний вам фреймворк для розробки бота 
на мові програмування, яку ви володієте. Наприклад, для JavaScript 
можна використовувати бібліотеку Discord.js. 
• Створіть код для свого бота, використовуючи токен, який ви 
скопіювали, щоб з'єднати свій бот з Discord API. Код повинен включати 
логіку реакції бота на повідомлення, які він отримує від користувачів. 
• Запустіть свого бота, виконавши створений вами код. 
 
Це загальний опис процесу створення бота в Discord. Проте для більш 
детальної інформації варто звернутися до документації Discord Developer Portal або 
шукати готові приклади коду для створення бота в Інтернеті. 
 
3.12 Створення додаткових функцій бота 
Для того, щоб якісно керувати сервером, декількох команд для роботи з 
психологами та клієнтами не достатньо. Для цього, створюємо ще декілька 
управляючих команд, для проведення тестів, та контролю користувачів: 
 
const Discord = require('discord.js'); 
const client = new Discord.Client(); 
const config = require('./config.json'); 
 
client.on('ready', () => { 
  console.log(`Logged in as ${client.user.tag}!`); 
}); 
 
client.on('message', async message => { 
  if (message.author.bot) return; // Ігнорувати повідомлення від ботів 
  if (message.channel.type === 'dm') return; // Ігнорувати приватні повідомлення 
 
  const args = message.content.slice(config.prefix.length).trim().split(/ +/g); 
Лист 
ЧДТУ.231941.001 ПЗ 63 
Змн. Арк. № докум. Підпис Дата 
 
  const command = args.shift().toLowerCase(); 
 
  // Команда !ping 
  if (command === 'ping') { 
    // Відправити "Pong!" в той же канал 
    message.channel.send('Pong!'); 
  } 
 
  // Команда !say 
  if (command === 'say') { 
    // Видалити команду з повідомлення, щоб бот повторив те, що написав 
користувач 
    message.delete(); 
    // Об'єднати аргументи в рядок та відправити їх в той же канал 
    message.channel.send(args.join(' ')); 
  } 
 
  // Команда !kick 
  if (command === 'kick') { 
    // Перевірити наявність прав у користувача 
    if (!message.member.hasPermission('KICK_MEMBERS')) 
      return message.reply('У вас недостатньо прав для цієї команди!'); 
 
    // Перевірити, чи є згаданий користувач та чи можна його видалити 
    const member = message.mentions.members.first(); 
    if (!member) 
      return message.reply('Будь ласка, згадайте користувача, якого потрібно 
видалити!'); 
    if (!member.kickable) 
      return message.reply('Я не можу видалити цього користувача!'); 
Лист 
ЧДТУ.231941.001 ПЗ 64 
Змн. Арк. № докум. Підпис Дата 
 
 
    // Видалити користувача з сервера та повідомити про це в той же канал 
    await member.kick(); 
    message.channel.send(`${member.user.tag} був видалений з сервера!`); 
  } 
}); 
 
client.login(config.token); 
 
Бот містить три команди, !ping, !say, !kick. 
У першому рядку коду відбувається імпорт бібліотеки discord.js, створення 
клієнта та завантаження конфігураційного файлу з параметрами підключення до 
сервера та токеном бота. 
Функція client.on('ready', () => {}) викликається один раз при запуску бота і 
виводить в консоль повідомлення про те, що бот залогінений і готовий до роботи. 
Функція client.on('message', async message => {}) викликається кожного разу, 
коли на сервері з'являється нове повідомлення. Для того, щоб бот розумів команди, 
він перевіряє наявність командного префікса в тексті повідомлення, а потім виконує 
необхідну команду. 
Команда !ping просто відправляє в той же канал повідомлення "Pong!". 
Команда !say видаляє команду з тексту повідомлення та повторює у тому ж 
каналі текст, який написав користувач. 
Команда !kick перевіряє, чи користувач має право видаляти інших 
користувачів, згадує користувача, якого потрібно видалити, перевіряє можливість 
його видалення, видаляє користувача та повідомляє про це в тому ж каналі. 
Останній рядок коду викликає функцію логіну клієнта на сервері з 
використанням токену бота з конфігураційного файлу. 
Мережевий протокол – це комплекс установок, завдяки яким визначається та 
регулюється процес інформаційного обміну між комп'ютерами, підключеними до 
Лист 
ЧДТУ.231941.001 ПЗ 65 
Змн. Арк. № докум. Підпис Дата 
 
Інтернету. Протокол у сенсі вважається мовою, необхідним машинам взаємодії. 
Серед його ключових особливостей — структурованість та стандартизованість. 
 
Для запобігання злочинних діянь зі сторони недобросовісних користувачів, 
та тих, хто цькує проблеми інших, маємо теж рішення. Додаємо до нашого бота 
наступні команди, які допоможуть у майбутньому карати тих, хто порушує правила: 
 
Для того, щоб забанити або замутити користувача на сервері Discord, 
необхідно використовувати бібліотеку Discord.js, яка є найбільш популярною 
бібліотекою для створення Discord-ботів на JavaScript. Для перевірки на наявність 
мультиакаунтів використаємо бібліотеку Puppeteer. 
 
Перш за все, ми повинні підключитися до сервера Discord та отримати 
екземпляр клієнта. Для цього ми використовуємо токен, який можна отримати зі 
сторінки розробника Discord. Тут ми також використаємо бібліотеку dotenv, щоб 
зберегти токен у змінну середовища, а не прямо у коді. 
 
require('dotenv').config(); 
const Discord = require('discord.js'); 
const client = new Discord.Client(); 
const TOKEN = process.env.TOKEN; 
 
Далі ми можемо використовувати події Discord.js, щоб реагувати на різні 
події, наприклад, коли користувач приєднується до сервера, коли він пише 
повідомлення, тощо. В даному випадку ми будемо використовувати події 'message' 
та 'guildMemberAdd'.  
 
client.on('message', message => { 
  // код для обробки повідомлень 
}); 
Лист 
ЧДТУ.231941.001 ПЗ 66 
Змн. Арк. № докум. Підпис Дата 
 
 
client.on('guildMemberAdd', member => { 
  // код для обробки приєднання нового користувача до сервера 
}); 
 
Для замуту або бану користувача ми можемо використовувати методи 'mute' 
та 'ban' у об'єкті класу GuildMember. 
member.mute(); 
member.ban(); 
Щоб перевірити наявність мультиакаунтів, ми використаємо бібліотеку 
Puppeteer, яка дозволяє автоматизувати браузер. Ми збираємося запустити 
браузер, відкрити сторінку пошуку Google та ввести запит, щоб знайти 
користувача на Discord. 
 
const puppeteer = require('puppeteer'); 
 
const searchDiscord = async (username) => { 
  const browser = await puppeteer.launch(); 
  const page = await browser.newPage(); 
  await page.goto('https://www.google.com'); 
 
// знаходимо поле вводу та кнопку пошуку на сторінці Google 
const input = await page.$('input[name="q"]'); 
const searchBtn = await page.$('button[type="submit"]'); 
 
// вводимо запит на пошук користувача на Discord та натискаємо кнопку 
пошуку 
await input.type(site:discord.com/users/ ${username}); 
await searchBtn.click(); 
 
Лист 
ЧДТУ.231941.001 ПЗ 67 
Змн. Арк. № докум. Підпис Дата 
 
// чекаємо, поки сторінка завантажиться та отримуємо URL першого 
результату пошуку 
await page.waitForNavigation(); 
const discordUrl = await page.evaluate(() => { 
const firstResult = document.querySelector('.g a'); 
return firstResult.getAttribute('href'); 
}); 
 
// перевіряємо, чи на сторінці профілю користувача є текст "Mutual Servers" 
await page.goto(discordUrl); 
const hasMutualServers = await page.evaluate(() => { 
const mutualServers = document.querySelector('.mutual-guilds'); 
return !!mutualServers; 
}); 
await browser.close(); 
return hasMutualServers; 
}; 
// використання функції searchDiscord для перевірки наявності 
мультиакаунтів 
const hasMultipleAccounts = await searchDiscord('exampleUser'); 
if (hasMultipleAccounts) { 
// код для заборони доступу до сервера 
} 
 
Цей код дозволить нам перевірити наявність мультиакаунтів для користувача 
і заборонити доступ до сервера, якщо такі аккаунти виявлено. Проте важливо 
зазначити, що цей метод перевірки може бути не завжди надійним і точним, тому 
рекомендується використовувати його у поєднанні з іншими методами перевірки 
[12]. 
Лист 
ЧДТУ.231941.001 ПЗ 68 
Змн. Арк. № докум. Підпис Дата 
 
ВИСНОВКИ 
Тема диплому "Інформаційні технології у сфері надання психологічних 
послуг" є дуже актуальною та важливою в наш час. Сьогодні, заради економії часу 
та зручності, більшість людей шукають різноманітні послуги в Інтернеті, 
включаючи психологічні. Водночас, у зв'язку з пандемією COVID-19, популярність 
онлайн-психотерапії та консультування значно зросла, адже багато людей не 
можуть відвідувати психолога в офлайні через обмеження в переміщенні та страх 
за своє здоров'я. 
Інформаційні технології можуть допомогти психологам та клієнтам знайти 
один одного швидше та ефективніше. Інтернет дозволяє розширити географію 
роботи та дозволяє психологам допомагати клієнтам з усього світу. Технології, такі 
як відеоконференції, чати, електронні записи та інші, можуть сприяти розвитку 
нових форм психологічної допомоги та консультування. 
Однак, використання інформаційних технологій в психології також має свої 
виклики та обмеження. Важливо зберігати конфіденційність даних клієнтів та 
дотримуватися етичних принципів. Також потрібно враховувати, що не всі люди 
мають доступ до технологій, а деякі можуть відчувати незручності при 
використанні онлайн-сервісів. 
Під час виконання кваліфікаційної роботи бакалавра було створенно Discord-
бот для допомоги клієнтам з будь-якої частини світу в зручний час. 
В кваліфікаційній роботі освітнього ступеня «бакалавр» було розроблено 
інформаційну систему для надання допомоги людям з психологічниами 
проблемами. 
Для досягнення поставленої мети потрібно було виконано такі завдання: 
• провести аналіз аналогів інформаційних систем психологічної 
допомоги; 
• розглянути технічні засоби для створення чат-боту; 
• розробити алгоритм роботи системи; 
• порівняти розроблену інформаційнусистему з її аналогами. 
 
Лист 
ЧДТУ.231941.001 ПЗ 69 
Змн. Арк. № докум. Підпис Дата 
 
У підсумку, можна сказати, що використання інформаційних технологій у 
сфері надання психологічних послуг відкриває нові можливості та сприяє розвитку 
галузі. Однак, важливо дотримуватися етичних та правових принципів, 
забезпечувати безпеку та конфіденційність даних клієнтів та забезпечувати якість 
психологічної допомоги.   
Лист 
ЧДТУ.231941.001 ПЗ 70 
Змн. Арк. № докум. Підпис Дата 
 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
 
1. Boyko V. Increase of measuring systems accuracy / V. Boyko, A. Zori, [and at.]. 
– Donetsk: RVV DonNTU, 2017. – 276 p. 
2. Браткевич В. В. Інформатика. Комп’ютерна техніка. Комп’ютерні 
технології: Підручник для студ. вищих навч. закладів / В. В. Браткевич, М. 
В. Бутов, І. О. Золотарьова. – К.: ВЦ Академія, 2019. – 704 с. 
3. Буйницька О. П. Інформаційні технології та технічні засоби навчання. 
Навч. посіб. / О. П. Буйницька – К.: Центр учбової літератури, 2018. – 240 
с 
4. Зорі А.А. Вступ до фаху з електроніки та комп’ютерної інженерії: 
навч.посібник./ В.М.Лукашенко, В.М.Співак, М.В.Чичужко, 2016.-312 с. 
5. Дибкова Л. М. Інформатика і комп’ютерна техніка: Навч. посібник / Л. М. 
Дибкова. – 3- тє вид., доп. – К.: Академвидав, 2018.– 464 с. 
6. Інформатика. Комп’ютерна техніка. Комп’ютерні технології: Підручник 
для студентів вищих навч. закладів / За ред. О. І. Пушкаря. – К.: 
Видавничий центр «Академія», 2019. 
7. Кадемія М. Ю. Інформаційно-комунікаційні технології в навчальному 
процесі : Навчальний посібник / М. Ю. Кадемія, І. Ю. Шахіна / Вінниця, 
ТОВ «Планер». – 2017. – 220 с. 
8. Гуревич Р. С. Інформаційно-телекомунікаційні технології в навчальному 
процесі та наукових дослідженнях : навчальний посібник для студентів 
педагогічних ВНЗ і слухачів інститутів післядипломної педагогічної 
освіти / Р. С. Гуревич, М. Ю. Кадемія. – Київ : Освіта України, 2018. – 
366 с. 
9. Левшин М. М. Практикум для користувачів персональних комп’ютерів: 
Посібник для студентів неспеціальних факультетів / М. М. Левшин, Ю. З. 
Прохур, Р. Я. Ріжняк, Т. В. Фурсикова; За ред. М. М. Левшина. – Тернопіль: 
Навч. книга – Богдан, 2017.– 244 с 
Лист 
ЧДТУ.231941.001 ПЗ 71 
Змн. Арк. № докум. Підпис Дата 
 
10. Морзе Н. В. Основи інформаційно-комунікаційних технологій / Н. В. 
Морзе. – К. : Видавнича група BHV, 2019. – 298 с 
11. Самсонов В. В. Методи та засоби Інтернет-технологій: Навч. посібник / В. 
В. Самсонов, А. Л. Єрохін. – Х. : Компанія СМІТ, 2017. – 264 с. 
12. Сучасні інформаційні засоби навчання: Навч. посібник / П. К. Гороль, Р. С. 
Гуревич, Л. Л. Коношевський, О. В. Шестопалюк. – К.: Освіта України, 
2018. – 536 с. 
13. Романишин Ю. Л. Формування навчально-професійної мотивації 
студентів у технічних закладах вищої освіти [Електронний ресурс] / Ю. Л. 
Романишин, Б. Я. Магас, В. І. Шекета // Науковий вісник Льотної академії. 
Серія : Педагогічні науки. - 2019. - Вип. 5. - С. 212-217.   
14. Романишин Ю. Л. Формування інформаційно-комунікаційного 
середовища передання знань у закладах вищої освіти [Електронний 
ресурс] / Ю. Л. Романишин, В. І. Шекета // Інноваційна педагогіка. - 2019. 
- Вип. 12(1). - С. 185-190. 
15. https://discordjs.guide/#before-you-begin 
16. https://nodejs.org/uk 
17. https://techukraine.net/%D1%8F%D0%BA-
%D1%81%D1%82%D0%B2%D0%BE%D1%80%D0%B8%D1%82%D0%B
8-discord-%D0%B1%D0%BE%D1%82%D0%B0/ 
18. https://discordpy.readthedocs.io/en/stable/ 
19. https://poradnuk.com/hitech/yak-dodati-bota-v-diskord.html 
 
Лист 
ЧДТУ.231941.001 ПЗ 72 
Змн. Арк. № докум. Підпис Дата