Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/6034
Title: Мобільний застосунок спортивної соціальної мережі
Authors: Дяченко, Петро Васильович
Туранський, Святослав Ігорович
Keywords: ІНФОРМАЦІЙНА СИСТЕМА,;МОБІЛЬНИЙ ДОДАТОК,;MICROSOFT VISUAL STUDIO,;FLUTTER,;FIREBASE,;ANDROID.
Issue Date: 11-Jun-2025
Abstract: В сучасному світі цифрові технології активно інтегруються у всі сфери життя, включаючи спорт і фізичну активність. Зростаюча популярність здорового способу життя, активного дозвілля та соціальних мереж створює запит на нові інструменти для взаємодії між спортсменами. Одним із таких інструментів є мобільний додаток спортивної соціальної мережі, який стане об’єктом розробки у межах цієї дипломної роботи. «Training Together» це мобільний додаток, що поєднує функції соціальної мережі та сервісу для пошуку спортивних партнерів. Додаток дозволяє користувачам знаходити людей поблизу для спільних тренувань, обирати відповідні локації для занять, створювати спільноти, додавати друзів, а також ділитися мультимедійними матеріалами. Його головною перевагою є можливість об’єднувати спортсменів із різним рівнем підготовки та інтересами, сприяючи побудові дружніх зв’язків і мотивації до тренувань. Метою роботи є створення мобільного додатку спортивної соціальної мережі як зручної платформи для взаємодії спортсменів і популяризація активного способу життя. Предмет дослідження: процес управління певними соціальними групами з спільними спортивними інтересами . Об’єкт дослідження: мобільний додаток для об’єкту дослідження. Методи дослідження: огляд науково технічної літератури; порівняльний аналіз існуючих систем з метою виявлення особливостей, переваг та недоліків; врахування досвіду розробки та впровадження аналогічних систем іншими розробниками; тестування системи з метою оцінки функціональності, працездатності. Роботу було апробовано на днях студентської науки ЧДТУ 2025 з публікацією тез.
URI: https://er.chdtu.edu.ua/handle/ChSTU/6034
Appears in Collections:122 Комп’ютерні науки (Комп’ютерні науки та прикладне програмування)

Files in This Item:
File Description SizeFormat 
Пояснювальна записка_Туранський Святослав_КН-21011_2024-2025.pdf
  Restricted Access
2.37 MBAdobe PDFView/Open Request a copy


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

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
 
Факультет інформаційних технологій і систем 
 
Кафедра комп’ютерних наук та системного аналізу 
 
 
 
 
 
 
 
Пояснювальна записка 
до кваліфікаційної роботи 
                                         бакалавра       
 (освітньо-кваліфікаційний рівень) 
 
на тему: «Web-орієнтований ресурс моніторингу курсу криптовалюти» 
 
 
 
Виконав: студент 4 курсу, групи КН-2101 
  
спеціальності 122 «Комп’ютерні науки» 
                                                             (шифр і назва спеціальності) 
 
Освітня програма «Комп’ютерні науки та  
                                                                (назва освітньої програми) 
прикладне програмування» 
 
Туранський Святослав Ігорович 
 
Керівник                               Дяченко П.В.  
                                                                  (прізвище та ініціали) 
 
Рецензент                              
                                                             (прізвище та ініціали) 
 
 
 
 
 
 
 
 
 
 
 
Черкаси 2025 року 
Черкаський державний технологічний університет 
Факультет Інформаційних технологій і систем 
Кафедра Комп’ютерних наук та системного аналізу 
Освітньо-кваліфікаційний рівень Бакалавр 
Спеціальність 122 – комп’ютерні науки  
Освітня програма Комп’ютерні науки та прикладне програмування 
 
 
ЗАТВЕРДЖУЮ 
Завідувач кафедри КНСА  
_______________ Юрій ТРИУС 
«____» _____________ 20__ р. 
 
 
ЗАВДАННЯ 
на кваліфікаційну роботу бакалавра студенту 
Туранському Святославу Ігоровичу 
(прізвище, ім‘я, по батькові) 
1. Тема роботи  
Мобільний застосунок спортивної соціальної мережі 
Керівник роботи  Дяченко П.В., к.т.н., доцент      
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання) 
 
затверджені наказом університету від «25» лютого 2025 р. №53/03-03. 
 
2. Строк подання студентом роботи «10» червня 2025 року  
3. Вихідні дані до роботи:  
Технічне завдання на розробку мобільного застосунку спортивної соціальної мережі; 
Методичні рекомендації з виконання кваліфікаційної роботи бакалавра; 
 Технологічна документація щодо використання технологій розробки VC Code, Flutter, Dart, 
Firebase, OpenStreetMap; 
Аналітичні матеріали щодо функціональності існуючих додатків аналогів (Strava, Nike Run 
Club). 
4. Зміст пояснювальної записки (перелік питань, що їх належить розробити): 
Вступ 
4.1. Обґрунтування необхідності створення мобільного мобільного додатку спортивної 
соціальної мережі 
4.2. Огляд аналогів існуючих мобільних додатків 
4.3. Задача створення інформаційного ресурсу 
4.4. Вибір програмних засобів 
4.5 Розробка і тестування інформаційного ресурсу 
Висновки.  
5. Перелік додатків (з точним зазначенням назв додатків): 
 
 5.1. Додаток А Специфікація 
 5.2. Додаток Б Текст програми 
1. Інструкція користувача 
5.3. Додаток В Інструкція користувача 
5.4. Додаток Г Публікація в збірнику тез доповідей 
5.5. Додаток Ґ Публікація в збірнику тез доповідей 
5.6. Додаток Д Публікація в збірнику тез доповідей 
 
6. Дата видачі завдання 25.02.2025 р. 
КАЛЕНДАРНИЙ ПЛАН 
Строк виконання 
№ з/п Назва етапів кваліфікаційної роботи бакалавра Примітка 
етапів роботи 
1 Видача завдання на кваліфікаційну роботу  
до 28.02.2025 
бакалавра. 
2 Аналіз літературних джерел, об’єкту та предмету  
до 15.03.2025 
дослідження. 
3 Написання теоретичного розділу кваліфікаційної  
до 01.04.2025 
роботи бакалавра. 
4 Написання аналітичного розділу (аналіз об’єкту  
до 15.04. 2025 
й предмету дослідження). 
5 Написання практичних розділів й висновків по  
до 12.05.2025 
роботі. 
6 Передзахист кваліфікаційної роботи бакалавра  
до 26.05.2025 
на засіданні випускової кафедри. 
7 Подання роботи завідувачу кафедри. до 02.06.2025  
8 Захист кваліфікаційної роботи бакалавра. до 12.06.2025  
 
Студент                                   _____________________________  Святослав ТУРАНСЬКИЙ  
(підпис) 
Керівник роботи                     ____________________________  Петро ДЯЧЕНКО 
(підпис) 
 
РЕФЕРАТ 
Кваліфікаційна робота бакалавра містить: 100 с., 21 рис., 1 таблицю, 11 
використаних джерел, 6 додатків. 
Актуальність теми. В сучасному світі цифрові технології активно 
інтегруються у всі сфери життя, включаючи спорт і фізичну активність. Зростаюча 
популярність здорового способу життя, активного дозвілля та соціальних мереж 
створює запит на нові інструменти для взаємодії між спортсменами. Одним із таких 
інструментів є мобільний додаток спортивної соціальної мережі, який стане об’єктом 
розробки у межах цієї дипломної роботи. 
«Training Together» це мобільний додаток, що поєднує функції соціальної 
мережі та сервісу для пошуку спортивних партнерів. Додаток дозволяє користувачам 
знаходити людей поблизу для спільних тренувань, обирати відповідні локації для 
занять, створювати спільноти, додавати друзів, а також ділитися мультимедійними 
матеріалами. Його головною перевагою є можливість об’єднувати спортсменів із 
різним рівнем підготовки та інтересами, сприяючи побудові дружніх зв’язків і 
мотивації до тренувань. 
Метою роботи є створення мобільного додатку спортивної соціальної мережі 
як зручної платформи для взаємодії спортсменів і популяризація активного способу 
життя. 
Додаток призначений для вирішення таких завдань:  
 надання можливості пошуку спортивних партнерів поблизу з урахуванням 
спільних інтересів;  
 забезпечення інтерактивного доступу до мапи спортивних локацій, включаючи 
інформацію про їхню доступність і відгуки;  
 створення платформи для соціальної взаємодії між спортсменами: додавання 
друзів, організація груп, обмін мультимедіа;  
 забезпечення кросплатформенної доступності додатку для користувачів як 
Android, так і iOS;  
 інтеграція хмарних технології для зберігання даних, що забезпечить 
масштабованість і стабільну роботу додатку.  
Завдання кваліфікаційної роботи бакалавра:  
 аналіз існуючих сучасних мобільних додатків схожого напряму; 
 визначення функціональні вимоги ґрунтуючись на досвіді компаній які 
створюють успішні додатки; 
 проектування, Розробка та реалізація додатку з акцентом зручність та 
доступність продукту; 
 оцінка ефективності і зручності додатку шляхом тестування 
 розробка рекомендації для подальшого покращення додатку. 
Предмет дослідження: процес управління певними соціальними групами з 
спільними спортивними інтересами . 
Об’єкт дослідження: мобільний додаток для об’єкту дослідження. 
Методи дослідження: огляд науково технічної літератури; порівняльний аналіз 
існуючих систем з метою виявлення особливостей, переваг та недоліків; врахування 
досвіду розробки та впровадження аналогічних систем іншими розробниками; 
тестування системи з метою оцінки функціональності, працездатності. 
Апробація результатів роботи. Роботу було апробовано на днях студентської 
науки ЧДТУ 2025 з публікацією тез.  
Публікації: 
1. ІІІ Міжнародна науково-практична інтернет-конференція «ІННОВАЦІЇ ТА 
ПЕРСПЕКТИВНІ ШЛЯХИ РОЗВИТКУ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ». 
(ІПШРІТ-2024), 22 листопада 2024 року м. Черкаси.  
2. ІІ Всеукраїнська науково-практична конференція «Цифрова гуманістика: 
Інформаційні технології та інформаційне моделювання на сучасному етапі 
розвитку суспільства», 22-23 травня 2025 м. Кропивницький.  
3. Міжнародна науково-практична конференція «Наука, освіта та технології: світові 
тенденції та регіональний аспект», 17 травня 2025 року м. Рівне 
4. Студентська науково-практична конференція ЧДТУ, 22-24 квітня 2025 року м. 
Черкаси 
 
Ключові слова: ІНФОРМАЦІЙНА СИСТЕМА, МОБІЛЬНИЙ ДОДАТОК, 
МОБІЛЬНА РОЗРОБКА, FLUTTER, DART, MICROSOFT VISUAL STUDIO, FIREBASE, 
OPENSTREETMAP, ANDROID. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ABSTRACT 
The bachelor's thesis contains: 100 pages, 21 figures, 1 table, 11 references, 6 
appendices. 
Relevance of the topic. In today's world, digital technologies are actively integrated 
into all areas of life, including sports and physical activity. The growing popularity of 
healthy lifestyles, active leisure and social networks is creating a demand for new tools for 
interaction between athletes. One such tool is a mobile application for a sports social 
network, which will be the subject of this thesis. 
Training Together is a mobile application that combines the functions of a social 
network and a service for finding sports partners. The application allows users to find people 
nearby for joint training, choose suitable locations for classes, create communities, add 
friends, and share multimedia materials. Its main advantage is the ability to bring together 
athletes with different levels of training and interests, promoting the building of friendships 
and motivation to train. 
The aim of the work is to create a mobile application for a sports social network as 
a convenient platform for athletes to interact and promote an active lifestyle. 
The application is designed to solve the following tasks:  
 providing the ability to search for sports partners nearby based on common interests; 
 providing interactive access to a map of sports locations, including information about 
their availability and reviews;  
 creating a platform for social interaction between athletes: adding friends, organising 
groups, exchanging multimedia;  
 ensuring cross-platform accessibility of the application for both Android and iOS 
users;  
 integrating cloud technologies for data storage, which will ensure scalability and 
stable operation of the application.  
 
Tasks of the bachelor's thesis: 
 analysis of existing modern mobile applications of a similar nature; 
 determination of functional requirements based on the experience of companies that 
 create successful applications; 
 design, development and implementation of the application with an emphasis on the 
convenience and accessibility of the product; 
 evaluation of the effectiveness and convenience of the application through testing 
 development of recommendations for further improvement of the application. 
Object of research: the process of managing certain social groups with common 
sporting interests. 
Subject of research: mobile application for the object of research. 
Research methods: review of scientific and technical literature; comparative analysis 
of existing systems to identify features, advantages and disadvantages; consideration of the 
experience of developing and implementing similar systems by other developers; testing of 
the system to assess its functionality and performance. 
Approbation of the results of the work. The work was approved at the ChDTU 2025 
Student Science Days with the publication of abstracts.  
Publications: 
1. III International Scientific and Practical Internet Conference ‘INNOVATIONS 
AND PROSPECTIVE WAYS OF DEVELOPMENT OF INFORMATION 
TECHNOLOGIES’. (IPSHRIT-2024), 22 November 2024, Cherkasy.  
2.    II All-Ukrainian Scientific and Practical Conference ‘Digital Humanities: 
Information Technologies and Information Modelling at the Present Stage of Society 
Development’, 22-23 May 2025, Kropyvnytskyi.  
3.    International Scientific and Practical Conference “Science, Education and 
Technology: Global Trends and Regional Aspects”. 
Keywords: INFORMATION SYSTEM, MOBILE APPLICATION, MOBILE 
DEVELOPMENT, FLUTTER, DART, MICROSOFT VISUAL STUDIO, FIREBASE, 
OPENSTREETMAP, ANDROID. 
ЗМІСТ 
 
ВСТУП .............................................................................................................................. 12 
1 ОБГРУНТУВАННЯ НЕОБХІДНОСТІ СТВОРЕННЯ МОБІЛЬНОГО 
ДОДАТКУ СПОРТИВНОЇ СОЦІАЛЬНОЇ МЕРЕЖІ.............................................. 16 
1.1 Актуальність задачі створення мобільного додатку спортивної соціальної 
мережі ............................................................................................................................. 16 
1.2 Основні завдання мобільного додатку спортивної соціальної мережі ........ 17 
Висновки до розділу 1 ................................................................................................. 19 
2 ОГЛЯД АНАЛОГІВ ІСНУЮЧИХ МОБІЛЬНИХ ДОДАТКІВ .......................... 20 
2.1 Класифікація мобільних додатків ...................................................................... 20 
2.2 Огляд додатку «Strava» ........................................................................................ 21 
2.3 Огляд додатку «Nike Run Club» .......................................................................... 24 
2.4 Особливості розглянутих додатків .................................................................... 27 
Висновки до розділу 2 ................................................................................................. 28 
3 ЗАДАЧА СТВОРЕННЯ ІНФОРМАЦІЙНОГО РЕСУРСУ ................................. 29 
3.1 Постановка задачі створення мобільного додатку ......................................... 29 
3.2 Призначення мобільного додатку спортивної соціальної мережі ................ 30 
3.3 Вимоги до мобільного додатку спортивної соціальної мережі ..................... 30 
Висновки до розділу 3 ................................................................................................. 31 
4 ВИБІР ПРОГРАМНИХ ЗАСОБІВ ............................................................................ 32 
4.1. Обґрунтування вибору програмних засобів .................................................... 32 
4.2 Апаратні засоби розробки додатку ..................................................................... 35 
Висновки до розділу 4 ................................................................................................. 36 
5 РОЗРОБКА І ТЕСТУВАННЯ ІНФОРМАЦІЙНОГО РЕСУРСУ ...................... 37 
5.1. Проєктування дизайну додатку ......................................................................... 37 
5.2. Розробка додатку .................................................................................................. 38 
Висновки до розділу 5 ................................................................................................. 47 
ВИСНОВКИ ..................................................................................................................... 48 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ .................................................................... 50 
Додаток А ......................................................................................................................... 51 
Додаток Б .......................................................................................................................... 53 
Додаток B .......................................................................................................................... 77 
Додаток Г .......................................................................................................................... 85 
Додаток Д.......................................................................................................................... 92 
Додаток Е .......................................................................................................................... 98 
 
 
 
11 
 
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, СКОРОЧЕНЬ І ТЕРМІНІВ  
Баг – помилка, вада або дефект в комп'ютерній програмі або системі. 
БД – база даних – упорядкована колекція даних, організована за певними 
правилами, яка зберігається в електронному вигляді та доступна для обробки, пошуку 
та аналізу. 
Нікнейм – особисте реальне або вигадане ім'я.  
ОЗ – обліковий запис сукупність наданої інформації про користувача, засобів 
та прав користувача. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12 
 
ВСТУП 
Мільйони років еволюції людство розвивало свої розумові здібності для свого 
виживання, адаптації до мінливих реалій життя та покращення умов свого існування. 
Розробка нових технологій з кожною епохою зменшувала роль титанічних фізичних 
навантажень. Необхідність «працювати руками» сьогодні зведена до мінімуму. Для 
будівництва мосту вже не потрібна праця тисяч робітничих, достатньо декілька 
десятків операторів кранів, навантажувачів, асфальтоукладальників, тощо. А самі 
люди замість важкої праці частіше обирають роботу «мозком» з документами, 
інформаційними технологіями, управлінням.  
Дослідження в ЄС та США виявили, що в середньому 40% працівників у світі 
виконують роботу що вимагає сидячого рівня фізичної активності [5]. Види роботи, 
що вимагають сидячого рівня фізичної активності, охоплюють переважно сфери, де 
основна діяльність відбувається за комп’ютером, телефоном або документами. Це 
робота у офісах підприємств, кол центрах, навчальних та інфраструктурних закладах.  
Дозвілля людства також часто пов'язано з низьким рівнем фізичної активності. 
Неможливо уявити сучасну людину без цифрового гаджету. Абсолютно всі так чи 
інакше користуються цифровими пристроями: робочий комп’ютер, домашній 
телевізор, ігрова приставка, смартфон – більшість має хоча б щось і цього не повного 
списку. Гаджети прикули людей до своїх екранів майже все людство. Дослідження 
показують, що значна частина людей проводить своє дозвілля, використовуючи 
електронні пристрої [4], такі як комп'ютери, приставки та мобільні телефони. 
Наприклад, згідно з даними Управління національної статистики Великої Британії за 
2015 рік, молоді люди витрачали понад третину свого вільного часу приблизно 14 
годин на тиждень на використання таких пристроїв. Недостатній рівень фізичної 
активності негативно впливає на загальний стан здоров’я, підвищує ризик 
неінфекційних захворювань та збільшення зайвої ваги.  
Фізична активність відіграє ключову роль у підтримці здоров'я та добробуту 
людини. Однак, незважаючи на численні докази її користі, багато людей стикаються 
з різноманітними бар'єрами на шляху до регулярних занять спортом. Серед основних 
13 
 
перешкод виділяють брак часу, мотивації, фінансові обмеження, відсутність 
доступних спортивних об'єктів та соціальної підтримки. Зокрема, дослідження 
показують, що люди з низьким рівнем доходу частіше відчувають втому та нестачу 
енергії, що перешкоджає фізичній активності. 
Соціальна ізоляція та відсутність компанії для спільних тренувань також є 
значними бар'єрами. Ці бар'єри можуть бути більш вираженими серед певних 
соціальних груп, таких як люди з низьким рівнем доходу, етнічні меншини або особи 
з обмеженими можливостями За результатами досліджень [6], відсутність друзів або 
знайомих, які займаються спортом, знижує ймовірність залучення до фізичної 
активності. Таким чином, створення платформи, яка сприятиме соціалізації через 
спорт, є важливим кроком до подолання цих перешкод.  
Розробка мобільного додатку, який об'єднує людей для спільних тренувань, 
спілкування та дозвілля, є актуальною відповіддю на проблему фізичної активності 
та соціальної ізоляції. Такий додаток не лише сприятиме покращенню фізичного 
здоров'я користувачів, але й стане інструментом для соціалізації та встановлення 
нових знайомств через спорт. 
На ринку вже існують додатки, які поєднують функції відстеження фізичної 
активності та соціальної взаємодії.зокрема Strava та Nike Run Club. 
Незважаючи на популярність цих додатків, вони мають певні обмеження, такі 
як висока вартість підписки або обмежений набір функцій для соціалізації. 
Для досягнення поставленої мети в кваліфікаційній роботі бакалавра 
розв’язуються наступні завдання:  
− дослідження предметної області; 
− визначення основних вимог до мобільного додатку; 
− аналіз  існуючих інформаційних ресурсів; 
− проектування; 
− оптимізація і адаптація мобільного додатку. 
Предметом дослідження є процес управління певними соціальними групами зі 
спільними інтересами.  
14 
 
Об'єктом дослідження є мобільний додаток що забеспечує процес управління 
певними соціальними групами зі спільними інтересами. 
Мета роботи - створення мобільного додатку спортивної соціальної мережі як 
зручної платформи для взаємодії спортсменів і популяризація активного способу 
життя. 
Для досягнення поставленої мети потрібно вирішити наступні завдання:  
 надання можливості пошуку спортивних партнерів поблизу з урахуванням 
спільних інтересів;  
 забезпечення інтерактивного доступу до мапи спортивних локацій, включаючи 
інформацію про їхню доступність і відгуки;  
 створення платформи для соціальної взаємодії між спортсменами: додавання 
друзів, організація груп, обмін мультимедіа;  
 забезпечення кросплатформенної доступності додатку для користувачів як 
Android, так і iOS;  
 інтеграція хмарних технології для зберігання даних, що забезпечить 
масштабованість і стабільну роботу додатку.  
Методи дослідження: огляд науково технічної літератури; порівняльний аналіз 
існуючих систем з метою виявлення особливостей, переваг та недоліків; врахування 
досвіду розробки та впровадження аналогічних систем іншими розробниками; 
тестування системи з метою оцінки функціональності, працездатності. 
Апробація результатів роботи. Роботу було апробовано на днях студентської 
науки ЧДТУ 2025 з публікацією тез.  
Публікації: 
1) ІІІ Міжнародна науково-практична інтернет-конференція «ІННОВАЦІЇ ТА 
ПЕРСПЕКТИВНІ ШЛЯХИ РОЗВИТКУ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ». 
(ІПШРІТ-2024), 22 листопада 2024 року м. Черкаси.  
2) ІІ Всеукраїнська науково-практична конференція «Цифрова гуманістика: 
Інформаційні технології та інформаційне моделювання на сучасному етапі 
розвитку суспільства», 22-23 травня 2025 м. Кропивницький.  
15 
 
3) Міжнародна науково-практична конференція «Наука, освіта та технології: світові 
тенденції та регіональний аспект». 
4) Студентська науково-практична конференція ЧДТУ, 20-21 квітня 2025 року м. 
Черкаси 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16 
 
1 ОБГРУНТУВАННЯ НЕОБХІДНОСТІ СТВОРЕННЯ МОБІЛЬНОГО 
ДОДАТКУ СПОРТИВНОЇ СОЦІАЛЬНОЇ МЕРЕЖІ 
1.1 Актуальність задачі створення мобільного додатку спортивної 
соціальної мережі 
У сучасну епоху цифрової трансформації важко уявити повсякденне життя без 
новітніх технологій. Вони стали невід’ємною частиною не лише професійної 
діяльності, але й особистого життя кожної людини. Сфера спорту не виняток. 
Сьогодні існує безліч технологічних рішень, які допомагають людям підтримувати 
фізичну форму: фітнес-браслети, смарт-годинники, мобільні додатки для тренувань, 
віртуальні тренери, відео-платформи з програмами вправ, трекери активності та 
багато іншого.  
Сучасні люди дедалі частіше звертаються до технологічних рішень, які 
допомагають не лише контролювати власну фізичну форму, але й знаходити 
однодумців, ділитися досягненнями, планувати тренування та підтримувати 
мотивацію. Зростання інтересу до активного дозвілля, здорового харчування та занять 
спортом супроводжується також збільшенням ролі соціальних мереж, які створюють 
нові формати для взаємодії між користувачами. 
Проте попри стрімкий розвиток цих інновацій, чимало людей усе ще 
стикаються з важливими соціальними проблемами. Однією з них є труднощі з 
пошуком партнерів та однодумців для спільних занять спортом. Люди часто 
відчувають себе ізольованими або не мають достатньої мотивації тренуватися 
наодинці. Це може бути пов’язано з психологічним бар’єром або невпевненістю в 
собі. І хоча технології здатні надати інструменти для самостійних тренувань, вони не 
завжди можуть замінити живе людське спілкування та підтримку з боку інших. 
Варто зауважити, що багато людей стикаються з проблемою, яка на перший 
погляд здається незначною, але насправді має глибший вплив. Самостійні тренування 
можуть бути ефективними, але не кожному підходить такий формат. Відсутність 
партнера або групи підтримки часто викликає зниження рівня мотивації, а також 
17 
 
може призводити до почуття самотності й втрати зацікавленості до фізичних 
навантажень. 
Згідно з результатами соціологічних досліджень, проведених серед 
користувачів фітнес-додатків, більшість респондентів вказують, що при виборі 
партнера для спільних занять спортом вони звертають більше уваги на особисті якості 
та зовнішню привабливість, аніж на рівень спортивної підготовки. Це підкреслює 
важливість людського фактору та соціальної взаємодії у формуванні сталих 
спортивних звичок. 
На цьому тлі особливої актуальності набуває концепція поєднання цифрових 
можливостей із соціальними потребами людини. Саме таку мету ставить перед собою 
мобільний додаток «Training Together». Він створюється для того, щоб стати не 
просто ще одним фітнес-інструментом, а справжньою платформою для соціальної 
інтеграції, яка допомагає людям знайти партнерів для тренувань, подолати самотність 
і вийти за межі індивідуальних обмежень. 
Основною метою додатку «Training Together» є надання користувачам зручної 
платформи для пошуку партнерів для тренувань відповідно до власних уподобань і 
потреб. Додаток дозволить враховувати різні критерії вибору від місця проживання 
та графіку до типу фізичної активності та особистих вподобань, сприяючи 
формуванню нових знайомств і мотивації до активного способу життя. 
Таким чином, «Training Together» це не просто ще один фітнес-додаток, а 
інструмент, який об'єднує цифрові інновації з базовими людськими потребами у 
спілкуванні, підтримці та взаємодії. Його головна ціль надати користувачам гнучку, 
адаптивну платформу для пошуку партнерів, які відповідають індивідуальним 
вподобанням, що сприятиме не лише фізичному розвитку, але й загальному 
добробуту людини. 
1.2 Основні завдання мобільного додатку спортивної соціальної мережі 
«Training Together» – це мобільний додаток, що поєднує функції соціальної 
мережі та сервісу для пошуку спортивних партнерів. Додаток дозволяє користувачам 
18 
 
знаходити людей поблизу для спільних тренувань, обирати відповідні локації для 
занять, створювати спільноти, додавати друзів, а також ділитися мультимедійними 
матеріалами. Його головною перевагою є можливість об’єднувати спортсменів із 
різним рівнем підготовки та інтересами, сприяючи побудові дружніх зв’язків і 
мотивації до тренувань. 
Задача додатку – забезпечити користувачам платформу пошуку партнерів за 
власним уподобанням. Додаток покликаний вирішити такі завдання:  
 надати можливість пошуку спортивних партнерів поблизу з урахуванням 
спільних інтересів;  
 забезпечити інтерактивний доступ до мапи спортивних локацій, включаючи 
інформацію про їхню доступність і відгуки;  
 створити платформу для соціальної взаємодії між спортсменами: додавання 
друзів, організація груп, обмін мультимедіа;  
 забезпечити кросплатформенну доступність додатку для користувачів як 
Android, так і iOS;  
 інтегрувати хмарні технології для зберігання даних, що забезпечить 
масштабованість і стабільну роботу додатку.  
Для розробки мобільного додатку «Train Together» будуть використані наступні 
технології:  
 Мова програмування Dart: забезпечує кросплатформенну розробку за 
допомогою фреймворку Flutter. Цей інструмент дозволяє створювати додатки з 
єдиним кодом, які працюють на обох популярних платформах – Android та iOS.  
 Фреймворк Flutter: використовується для побудови швидкого, гнучкого та 
адаптивного інтерфейсу користувача. Flutter дозволяє досягти високої 
продуктивності додатку та створити сучасний дизайн.  
 Хмарні бази даних: планується використання Firebase Firestore, що забезпечить:  
 зберігання даних користувачів (профілі, локації, мультимедіа);  
 синхронізацію даних у реальному часі;  
 можливість масштабування в майбутньому.  
19 
 
 Google Maps API: для інтеграції інтерактивної мапи спортивних локацій, що 
надає користувачам зручний доступ до інформації про тренувальні майданчики.  
Висновки до розділу 1 
У даному розділі було обґрунтовано доцільність створення мобільного додатку 
спортивної соціальної мережі «Training Together» як інноваційного інструменту, що 
поєднує цифрові можливості з потребами у соціальній взаємодії. Було проаналізовано 
актуальність теми в умовах зростаючого інтересу до активного способу життя, а 
також визначено соціальні проблеми, пов’язані з браком мотивації та труднощами у 
пошуку спортивних партнерів. 
Також у розділі було сформульовано основні завдання додатку, серед яких: 
пошук партнерів за інтересами, інтерактивна мапа спортивних локацій, соціальні 
функції (додавання друзів, створення груп, обмін медіа), кросплатформенна 
доступність і використання хмарних технологій для зберігання та синхронізації 
даних. Окреслено основні технології, що будуть застосовані під час розробки 
додатку. 
Таким чином, у розділі було закладено концептуальні основи розробки 
мобільного додатку, що сприятиме популяризації спорту, зміцненню соціальних 
зв’язків та формуванню здорових звичок у користувачів. 
 
 
 
 
 
 
 
 
 
 
20 
 
2 ОГЛЯД АНАЛОГІВ ІСНУЮЧИХ МОБІЛЬНИХ ДОДАТКІВ 
2.1 Класифікація мобільних додатків 
Успішний мобільний додаток – це потужний інструмент, який захоплює увагу 
користувачів. У світі інформаційних технологій мобільні додатки набирають шаленої 
популярності – щороку з’являються сотні нових рішень, які змінюють поведінку 
користувачів і моделі ведення бізнесу. 
Існує декілька видів мобільних додатків: 
1) інформаційні додатки – в таких додатках представлена інформація по 
конкретній темі або про певну організацію. Це одні з найпоширеніших у 
мобільному середовищі застосунки; з плином часу вони часто переймають деякі 
риси інших категорій додатків; 
2) операційні додатки – додатки такого типу використовуються з метою 
виконання будь-якої операції або завдання. У цю категорію входять додатки, 
пов’язані з електронною комерцією або наданням послуг; 
3) додатки-спільноти – в таких додатках представлена інформація або функціонал, 
пов’язаний із взаємодією між користувачами. Такі додатки мають тенденцію 
фокусуватись на конкретній темі або інтересах. Вони заохочують спілкування 
між схожими за інтересами особистостями; 
4) розважальні додатки – ці додатки створені для ігор або будь-якої цікавої 
взаємодії, для яких можуть застосовуватись елементи інформаційних, 
операційних та соціальних додатків; 
5) інші додатки – у цю категорію входять авторські, творчі або експериментальні 
додатки, особисті мобільні проєкти, блоги, а також додатки, які можуть не 
слідувати загальноприйнятим правилам або не мати чітко визначеної 
економічної мети. 
Основні переваги мобільного додатку: 
 інформативність – додаток може містити стислу, або повну інформацію про 
людину, компанію або продукт; 
21 
 
 доступність – в більшості випадків смартфон завжди під рукою. Скористатись 
додатком користувач може в будь-який час, з будь-якої точки світу; 
 ефективніть – додаток допомагає знаходити нову інформацію, клієнтів, друзів 
та утримувати наявні зв’язки. 
Недоліки існують у кожному проєкті. Основними з них є: 
 вартість розробки. Високий ціновий поріг входження на ринок – один із 
найзначніших мінусів. Середня вартість розробки може досягати десятків тисяч 
доларів. У процесі розробки потрібно залучати фахівців різних профілів, що в 
підсумку вимагає великого бютжету; 
  регулярні витрати на підтримку. Додатку потрібен постійний супровід. 
Потрібно наймати команду для оновлень та обслуговування; 
 необхідність реклами. Щодня в App Store і Google Play з’являються тисячі 
додатків. Без просування додаток може залишиться непоміченим. Для 
залучення користувачів потрібно користуватися рекламними інструментами – 
Google Ads, Facebook Ads, ASO тощо. 
Очевидно, що наявність мобільного додатку дає чимало переваг, скорочує час 
взаємодії з клієнтом та сприяє зростанню лояльності до бренду.  
Перевага наявності власного мобільного додатку говорить про те, що компанія 
чи підприємець серйозно ставиться до своєї справи та прагне забезпечити сучасний і 
зручний сервіс для своїх клієнтів. 
2.2 Огляд додатку «Strava» 
Strava — це багатофункціональний мобільний додаток, що поєднує в собі 
трекінг фізичної активності та елементи соціальної мережі.Додаток підтримує різні 
види активностей, зокрема біг, велосипед, ходьбу, плавання та інші. Він дозволяє 
записувати маршрути на карті, відстежувати прогрес, а також змагатися із 
користувачами з усього світу завдяки функції сегментів. 
Особливою рисою Strava є соціальна складова – можливість реагувати на 
активність корисувачів, коментувати тренування друзів та формувати клуби за 
22 
 
інтересами. 
Основні можливості Strava: 
1) трекінг активностей: Strava підтримує понад 30 видів спорту, включаючи біг, 
велоспорт, піші прогулянки, плавання та інші. Додаток записує маршрут, 
швидкість, темп, висоту та інші показники за допомогою GPS; 
2) аналіз даних: Після завершення тренування користувачі отримують детальну 
статистику, що допомагає відстежувати прогрес і планувати майбутні заняття; 
3) соціальна мережа для спортсменів: Strava дозволяє підписуватися на інших 
користувачів, ставити "лайки" (kudos) їхнім активностям, коментувати та 
ділитися власними досягненнями; 
4) виклики та сегменти: Користувачі можуть брати участь у різноманітних 
викликах, створювати та проходити сегменти маршрутів, змагаючись за 
найкращий час; 
5) функція Beacon: Ця опція дозволяє в реальному часі ділитися своїм 
місцезнаходженням з обраними контактами для забезпечення безпеки під час 
тренувань; 
6) планування маршрутів: Strava пропонує інструменти для створення та пошуку 
популярних маршрутів, а також перегляд "теплових карт" (heatmaps), які 
показують найчастіше використовувані шляхи.  
Основні переваги Strava: 
- розширені аналітичні інструменти для аналізу тренувань; 
- можливість створювати власні маршрути та змагатися на популярних 
сегментах; 
- висока мотивація через соціальні функції (рейтинги, клуби). 
До недоліків належать: 
- обмеження в безкоштовній версії, більшість аналітики доступна лише в 
Premium-підписці; 
- іноді інтерфейс може здатись перевантаженим новим користувачам. 
Інтерфейс додатку Strava (рис.2.1 – 2.3). 
23 
 
 
Рисунок 2.1 – Шеринг досягнень користувача в соціальній мережі 
 
Рисунок 2.2 – Відслідковування активності користувача 
 
24 
 
 
Рисунок 2.3 – Досягнення користувача в додатку 
2.3 Огляд додатку «Nike Run Club» 
Nike Run Club створений компанією Nike, орієнтований переважно на бігунів-
початківців та тих, хто прагне мотивації. Додаток поєднує в собі функції трекінгу, 
тренувальних планів та соціальної взаємодії. Він доступний на iOS та Android у понад 
160 країнах світу. Користувачі можуть брати участь у щомісячних викликах, ділитися 
своїми результатами, а також стежити за прогресом через просту та зрозумілу 
статистику. 
Основні можливості NRC: 
 аудіотренування: Більше 300 аудіотренувань, які проводять професійні тренери 
та спортсмени, включаючи Криса Беннетта та Шалейн Фланаган. Ці тренування 
охоплюють різні типи бігу — від коротких дистанцій до марафонів; 
 тренувальні плани: Додаток пропонує структуровані плани на 4, 8 та 14 тижнів 
для підготовки до 5K, 10K та півмарафону. Плани включають різноманітні типи 
пробіжок: легкі, інтервальні, темпові та довгі; 
25 
 
 трекінг пробіжок: Записує маршрут, темп, дистанцію, час та інші метрики. 
Синхронізується з годинниками Apple, Garmin та Coros, а також дозволяє 
експортувати дані до Strava; 
 соціальні функції: Можливість приєднуватися до глобальних викликів, 
створювати власні, ділитися досягненнями та слідкувати за прогресом друзів; 
 поради перед пробіжкою: Функція "know-before-you-go" надає інформацію про 
місцеві погодні умови, час сходу та заходу сонця перед початком пробіжки;  
 безпека: Можливість ділитися реальним місцезнаходженням під час пробіжки з 
друзями та родиною через унікальне посилання; 
 відстеження зносу взуття: Користувачі можуть додавати свої бігові кросівки до 
додатку та відстежувати кількість пробігу на кожній парі . 
Основні переваги Nike Run Club: 
 безкоштовний доступ до всіх основних функцій; 
 великий вибір мотиваційних аудіотренувань; 
 інтуїтивно зрозумілий інтерфейс і проста навігація. 
Недоліки NRC: 
- менш детальна аналітика у порівнянні зі Strava; 
- переважно орієнтований лише на біг, менше підтримки інших видів спорту; 
- менша соціальна взаємодія між користувачами. 
 
Інтерфейс додатку Nike Run Club (рис.2.4 – 2.6). 
 
26 
 
 
Рисунок 2.4 – Головний екран додатку 
 
Рисунок 2.5 – Інтеграція мобільного плеєру в відслідковування активності 
27 
 
 
Рисунок 2.6 – відслідковування активності користувача разом з геолокацією 
2.4 Особливості розглянутих додатків 
Таблиця 2.1 – Порівняльна характеристика програмних продуктів 
Назва програмного продукту Strava Nike Run Club 
Читабельність (Від 1 до 5) 5 5 
Інформаційність (Від 1 до 5 ) 4 4 
Інтерфейс (Від 1 до 5 ) 5 5 
Зручність використання (Від 1 до 5 ) 5 5 
Функціонал (Від 1 до 5 ) 4 3 
 
Детальний аналіз існуючих спортивних спортивних додатків дозволяє прийняти 
рішення про те які функціональні та нефункціональні вимоги повинен виконувати 
розроблюваний сайт у межах цієї дипломної роботи. 
 
 
28 
 
Висновки до розділу 2 
У даному розділі було проведено огляд існуючих аналогів мобільних додатків, 
що дало змогу систематизувати підходи до створення програм для користувачів зі 
спортивними інтересами. Було здійснено класифікацію мобільних додатків за типами 
(інформаційні, операційні, соціальні, розважальні тощо), що дозволило краще 
зрозуміти нішу, до якої належить проєкт «Training Together». 
Також у розділі було детально проаналізовано функціонал та особливості двох 
популярних спортивних додатків – Strava та Nike Run Club. Було визначено їх сильні 
сторони, зокрема: розширені можливості трекінгу, соціальна взаємодія, підтримка 
викликів і тренувальних планів, а також виявлено низку обмежень, таких як 
обмеження функціоналу у безкоштовній версії, перевантаженість інтерфейсу або 
вузька орієнтація на бігову активність. 
У підсумковій порівняльній таблиці було узагальнено ключові характеристики 
обох додатків за такими критеріями, як інтерфейс, зручність використання, 
функціональність та інформаційність. На основі отриманого аналізу сформовано 
уявлення про очікувані функціональні та нефункціональні вимоги до власного 
мобільного додатку. 
Таким чином, у даному розділі було сформовано базу для прийняття 
обґрунтованих рішень щодо архітектури та функціоналу майбутнього додатку, з 
урахуванням як переваг, так і недоліків наявних рішень на ринку. 
 
29 
 
3 ЗАДАЧА СТВОРЕННЯ ІНФОРМАЦІЙНОГО РЕСУРСУ 
3.1 Постановка задачі створення мобільного додатку 
Будь-якй додаток який вимагає користувача щось зробити називається – 
інтерактивним додатом. Такий додаток не просто показує інформацію, а й передбачає 
активну участь користувача – наприклад, введення даних, вибір опцій, натискання 
кнопок тощо. При його розробці дуже важливу роль відіграє оформлення. Адже саме 
дизайн - перше і головне, що помічає користувач і затримує користувача додатку. 
При неправильному дизайні користувач не буде затримуватися на нашому 
проєкті і скоріше за все, більше не повернеться до нього. 
Важливо правильно оформити зовнішнійвигляд додатку, щоб зробити доступ 
до потрібної інформації та функцій максимально зручним і ефективним. 
Ознаками успішного дизайну додатку, є: 
 лаконічність; 
 оптимальне розміщення всієї інформації на сторінці, для більш зручного 
використання; 
 використання мінімальної кількості фарб. 
Завданням дипломної роботи є розробка додатку спортивної соціальної мережі. 
Додаток буде поділений на основні сторінки (екрани), на кожній з яких буде 
відображатися унікальні для кожної функції та інформація. Додаток буде адаптивний 
під девайси різних розмірів, для максимального комфорту буде використано 
мінімальна кількість кольору. 
 
 
 
 
 
 
30 
 
3.2 Призначення мобільного додатку спортивної соціальної мережі 
Додаток покликаний вирішувати визначену кількість завдань. 
Надання можливості пошуку спортивних партнерів поблизу з урахуванням 
спільних інтересів необхідне для фільтрування найбільш підходящих партнерів для 
обраного користувача. Умови пошуку користувач може змінювати сам.  
Забезпечення інтерактивного доступ до мапи спортивних локацій та подій, 
включаючи інформацію про їхню доступність і відгуки має допомогти користувачу 
обрати найкращу спортивну локацію або подію згідно його вимогам. 
Створення платформи для соціальної взаємодії між спортсменами: додавання 
друзів, організація груп, обмін мультимедіа має на меті покращити соціальні зв’язки 
між користувачами.   
3.3 Вимоги до мобільного додатку спортивної соціальної мережі 
Перед розробкою потрібно поставити вимоги до розроблюваного проекту. 
Вимоги допоможуть більш детально зрозуміти, яким повинен бути проект. 
Структура додатку, доволі важливий момент. Вона включає перелік назв 
сторінок або екранів.  
Структура додатку буде виглядати так: 
1) головний екран; 
2) мапа; 
3) пошук партнерів; 
4) список чатів; 
5) список друзів. 
Після розробки структури проекту, потрібно розібратися з основними вимогами 
до розроблюваного додатку.  
Основні вимоги можна виділити такі: 
 оригинальна назва. Проста, зрозуміла назва додатку буде легко 
запам’ятовуватись користувачам; 
31 
 
 приємний дизайн. Занадто яскрава кольорова гамма може бити по очах, 
напружувати зір. При виборі оформлення ресурсу треба добре продумати його 
дизайн; 
 швидкість роботи. Потрібно оптимізувати додаток так, щоб він відкривався і 
працював стабільно та із прийнятною швидкістю, навіть на пристроях зі 
слабким процесором; 
 адаптація під різні пристрої і екрани, та операційні системи. Додаток повинен 
працювати як на Android так і на iOS. 
Висновки до розділу 3 
У цьому розділі було сформульовано основну задачу створення інформаційного 
ресурсу – мобільного додатку спортивної соціальної мережі. Визначено, що 
ефективний мобільний додаток має бути інтерактивним, мати зручний інтерфейс, 
продуманий дизайн та відповідати сучасним вимогам до користувацького досвіду. 
Описано основне призначення додатку: пошук спортивних партнерів за 
інтересами, доступ до мапи спортивних локацій, а також соціальна взаємодія між 
користувачами. 
Окреслено структуру майбутнього застосунку, що включає п’ять основних 
екранів, та сформульовано вимоги до його реалізації — від оригінальної назви та 
зручного дизайну до стабільної роботи на різних пристроях. 
Усе це закладає концептуальну основу для подальшої реалізації додатку, 
орієнтованого на покращення взаємодії між спортсменами та активними людьми. 
 
 
 
 
 
 
32 
 
4 ВИБІР ПРОГРАМНИХ ЗАСОБІВ 
4.1. Обґрунтування вибору програмних засобів 
Перед початком розробки додатку спершу потрібно встановити необхідне 
програмне забезпечення : 
 
Рисунок 4.1 – Використані технології 
 
Visual Studio Code - це безкоштовний, легкий, але дуже потужний редактор 
коду від Microsoft. Він став надзвичайно популярним серед розробників завдяки своїй 
гнучкості, великій кількості розширень і підтримці багатьох мов програмування. 
Він має приємний та зрозумілий інтерфейс а також зручні налаштування 
завдяки чому є доступним навіть для розробників початківців 
Основні можливості: 
 підтримка багатьох мов: JavaScript, Python, C++, Dart, Java, HTML, CSS, PHP 
тощо; 
 підсвічування синтаксису та автодоповнення коду (IntelliSense); 
 вбудований термінал — можна запускати команди прямо в редакторі; 
 гіт-інтеграція — є можливість працювати із Git прямо з інтерфейсу VS Code 
(pull, commit, push); 
33 
 
 розширення (extensions) —можливість додавати плагіни для Flutter, Python, 
Docker, Themes і багато іншого. 
Flutter – це фреймворк з відкритим кодом, створений компанією Google для 
розробки кросплатформенних застосунків. Він дозволяє створювати нативні 
інтерфейси для Android, iOS, Windows, macOS, Linux, а також веб-додатків — з 
єдиною базою коду. 
Основні характеристики Flutter: 
 мова програмування: Dart — також розроблена Google, оптимізована для 
клієнтської розробки; 
 швидке перезавантаження: дозволяє миттєво бачити зміни в коді без 
необхідності перезавантаження програми; 
 власний рушій рендерингу: Flutter не використовує нативні елементи 
платформи, а замість цього малює все самостійно через движок Skia, що 
забезпечує однаковий вигляд на всіх платформах; 
 гарна продуктивність: майже як у нативних застосунків; 
 розвинена спільнота та велика кількість плагінів: є багато готових рішень для 
роботи з базами даних, камерами, геолокацією тощо. 
Що можна створювати з Flutter: 
 мобільні додатки (Android/iOS); 
 веб-застосунки; 
 десктопні програми; 
 прототипи UI швидко та ефективно. 
Dart – Мова програмування для розробки мобільних додатків на Flutter 
розроблена компанією Google. Вона спеціально спроєктована для клієнтської 
розробки  тобто створення інтерфейсів користувача, які працюють швидко та 
стабільно на мобільних, веб та десктопних платформах. 
Основними характеристиками мови Dart є: 
 простий та зрозумілий синтаксис – схожий на Java, C# чи JavaScript; 
 швидка компіляція: може компілюватися як у байткод для віртуальної машини 
так і в машинний код; 
34 
 
 підтримка асинхронного програмування  через async, await, Future, що особливо 
важливо в мобільних застосунках; 
 об’єктно-орієнтована мова з підтримкою класів, наслідування, абстракцій, 
тощо; 
 підтримка null safety — система, що допомагає уникати помилок, пов’язаних з 
null-посиланнями. 
Firebase – це платформа розроблена Google, яка надає бекенд-рішення та 
інструменти для розробників мобільних і веб-додатків. Вона дозволяє створювати 
повноцінні додатки без потреби будувати власний сервер або інфраструктуру. 
В додатку відіграє роль сервера, бази даних та аутентифікаторв для 
користувачів (Realtime Database, Cloud Firestore, Firebase Authentication). 
OpenStreetMap – відкритий, безкоштовний сервіс мап у якому будь-хто може 
вільно створювати, редагувати та використовувати географічні дані.  
В додатку використовується для визначення геолокації користувачів. Це 
необхідно для пошуку користувачами одне одного в заданих географічних радіусах.   
Першочергово, було створено блок схему реалізації проекту мобільного 
додатку (Рис. 4.2). 
35 
 
 
Рисунок 4.2 – Блок схема створення додатку 
4.2 Апаратні засоби розробки додатку 
Щоб мати можливість створити мобільний додаток необхідно підібрати 
потрібні технічни засоби. Для роботи з електронною інформацією потрібен 
комп'ютер, технічні характеристики якого:  
 процесор: AMD Ryzen 5 2400G, кількість ядер – 4, кількість потоків 8, частота 
3,6 ГГц; 
 відеокарта: 11Гб MSI Armor GTX 1080 TI; 
 оперативна пам'ять: 16 Гб; 
 постійна пам'ять: 2,5 Тб; 
 монітор: два 27 дюймові монітори Samsung. 
 
 
36 
 
 Для тестування мобільного додатку, окрім вбудованого емулятору VS Code 
потрібен фізичний смартфон технічні характеристики якого:  
 операційна система: Android. Версія 12.0; 
 діагональ екрану: 6,5 дюймів; 
 частота процесору: 1,8 – 2,4 ГГц; 
 оперативна пам’ять:4 Гб; 
 постійна пам’ять: 64 Гб. 
Висновки до розділу 4 
У цьому розділі було обґрунтовано вибір програмних та апаратних засобів, 
необхідних для створення мобільного додатку спортивної соціальної мережі. 
Визначено оптимальні інструменти розробки, серед яких ключову роль відіграють 
Flutter та мова програмування Dart — завдяки своїй здатності створювати 
кросплатформенні мобільні інтерфейси з єдиною базою коду. Також важливими є 
середовище розробки Visual Studio Code, яке забезпечує зручність написання коду, та 
платформа Firebase, що виконує функції сервера, бази даних і системи автентифікації 
користувачів. 
Для реалізації функції геолокації було обрано сервіс OpenStreetMap — 
безкоштовне рішення з відкритим доступом до мап і геоданих. 
Окрім цього, визначено технічні характеристики комп’ютера та мобільного 
пристрою, що використовувалися під час розробки та тестування. Це дозволяє 
забезпечити належну продуктивність як під час створення додатку, так і під час його 
практичного використання. 
Отже, вибір інструментів і обладнання був зроблений з урахуванням вимог до 
продуктивності, гнучкості та кросплатформенності, що є запорукою успішної 
реалізації проєкту. 
 
 
37 
 
5 РОЗРОБКА І ТЕСТУВАННЯ ІНФОРМАЦІЙНОГО РЕСУРСУ 
5.1. Проєктування дизайну додатку 
В рамках кваліфікаційної роботи бакалавра стояло завдання розробити макети 
додатку таким чином, користувачу було зручно, зрозуміло і легко працювати з 
системою. Макети розроблюваного додатку зображені на рисунках нижче (Рис. 5.1-
5.2). 
 
Рисунок 5.1 – Макет вікна авторизації та реєстрації 
 
Рисунок 5.2 – Макет головного меню, за сумісництвом профілю користувача з 
вкладками 
Окрім дизайну, важливу роль має візуальне наповнення додатку. Кольори та 
38 
 
шрифти мають бути приємні, необтяжуючі зір, та, можливо спонукаючі до дій. Що 
таке колір? Колір перш за все це асоціація. Зелений – трава, дерева, синій – вода, 
червоний – вогонь. Особисто у мене найперша асоціація зі спортом це втомобільний 
спорт. А найулюбленіший мій спортивний автомобіль – Lamborghini aventador – 
швидкий, яскравий, витончений. Тому палітра кольорів додатку натхненна цим 
автомобілем – насичений помаранчевий, чорний та білий.  
 
Рисунок 5.3 – Lamborghini Aventador Ultimate 
 
5.2. Розробка додатку  
Найперше що бачить користувач після завантаження та запуску додатку це 
вікно авторизації для входу до облікового запису. На випадок, коли облікового запису 
користувач немає – є можливість зареєструватись. В цих вікнах користувач має 
заповнити необхідні поля певною інформацією, з чого випливає потреба цю 
інформацію десь зберігати, та синхронізувати.  
39 
 
 
Рисунок 5.4 – Вікно авторизації та реєстрації 
 
Перш за все в проект було інтегровано сервіси автентифікації, баз даних та 
хмарного сховища Firebase. Весь процес авторизації, реєстрації, збереження та 
синхронізації даних відбувається на стороні сервісу. Додаток спілкується з сервісом 
за допомогою API запитів. Це дозволило заощадити час та спростити розробку 
додатку. Всі зміни даних користувача в додатку в реальному часі змінюються на 
сервері. 
Трохи більше про ресурси Firebase зі сторони самого Firebase.  
Firebase Authentication  відповідає за облікові записи користувачів. Він 
дозволяє переглядати, редагувати, видаляти ОЗ користувача, редагувати, додавати та 
видаляти різні методи авторизації. Також можна додавати та налаштовувати 
інформаційні розсилання на електроні пошти та/або контактні номери телефонів 
користувачів.  
40 
 
 
Рисунок 5.5 – Консоль авторизації Firebase 
Firebase Firestore Database – база даних, що відповідає за всі інформаційні дані 
користувача всередині додатку. Модератор БД має права переглядати, редагувати та 
видаляти дані. Також саме тут можна встановлювати правила доступу користувачів, 
наприклад до можливості надсилання повідомлення, або переглядання інших 
користувачів.   
   
Рисунок 5.6 – Консоль бази даних Firebase 
 
41 
 
Firebase Storage відповідає за збереження та управління файловими об’єктами. 
По аналогії з Firestore має такі ж можливості і правила.  
 
 
Рисунок 5.7 – Консоль бази даних Firebase 
 
Після успішного етапу з реєстрацією користувачу відкривається головний 
екран одразу на вікні його профілю. Тут користувач може переглядати та редагувати 
інформацію про себе. Також додана кнопка виходу з облікового запису. Також, внизу 
відображаються навігаційні кнопки інших функцій. 
42 
 
 
Рисунок 5.8 – Вікно профілю користувача 
 
Однією із таких функцій додатку є можливість знаходити місця для заняття 
спортом. Це можуть бути спортивні майданчики, спортзали, басейни, велосипедні 
доріжки, тощо. Для реалізації цього функціоналу за задумом необхідно інтергувати 
сервіси Google Map, але оскільки цей сервіс є платним було прийнято тимчасове 
рішення використати інший сервіс.  
В додаток інтегровано безкоштовний онлайн сервіс мап OpenStreetMap. Він 
дозволяє в реальному часі відслідковувати місце знаходження користувача за 
допомогою системи GPS, переглядати мапу, а також шукати необхідну адресу. Для 
зручності додано пошукове текстове поле. 
43 
 
 
Рисунок 5.9 – Вікно мапи 
Ще однією з найважливіших функцій є пошук підходящих партнерів. Пошук 
доволі простий, потрібно лише вказати підходящі активності та радіус пошуку. 
Результат буде виведений нижче із вказанням нікнейму  та відстані до поточного 
користувача. Для знайдених користувачів можна переглянути інформацію профілю, 
додати у друзі, або надіслати повідомлення. Також окремо виведені вікно «Чати». 
Через нього користувач може обрати потрібний чат з іншим користувачем.  
44 
 
 
Рисунок 5.10 – Вікно пошуку партнерів, та перегляд користувача 
 
Рисунок 5.11 – Вікно чатів, та вибраного чату окремо 
45 
 
 
 
Рисунок 5.12 – Вікно друзів та перегляд користувача 
 
5.3. Тестування мобільного додатку 
В процесі розробки додатку було проведено тестування задля виявлення і 
усунення помилок. Не тільки додаток проходив тестування, сервіси Firebase також 
тестувалися на предмет помилок при реалізації правил безпеки бази даних (Рис. 5.13). 
Так, наприклад, в процесі тестування було виявлено декілька багів в системі 
відправки повідомлень (Рис. 5.14). Завдяки глибокому аналізу, причину помилок було 
виявлено і усунуто. 
46 
 
 
Рисунок 5.13 – тестування нових правил безпеки бази даних на стороні Firebase 
 
 
Рисунок 5.14 – помилка в системі відправки повідомлень 
 
Додаток протестовано на екранах різних девайсів адаптація на відмінному 
рівні. Вся інформація виглядає належним чином, всі посилання, картинки, а також 
47 
 
кнопки працюють належним чином.  
Після тестування даного програмного продукту було встановлено, що він не має 
критичних або ж блокуючих помилок. 
Висновки до розділу 5 
У цьому розділі було детально розглянуто процес розробки та тестування 
мобільного додатку спортивної соціальної мережі. Проведено проєктування 
користувацького інтерфейсу з урахуванням принципів зручності, доступності та 
естетичної привабливості. Особливу увагу приділено кольоровій гамі додатку, що 
відображає динаміку та емоційність спортивної тематики. 
На етапі розробки було реалізовано ключовий функціонал: реєстрацію та 
авторизацію користувачів із використанням сервісів Firebase, створення профілів, 
пошук спортивних локацій за допомогою OpenStreetMap, а також функції пошуку 
партнерів, додавання друзів і спілкування через чати. Для забезпечення надійного 
зберігання даних були використані Firebase Authentication, Firestore Database та 
Firebase Storage. 
Після завершення розробки проведено комплексне тестування додатку, в 
результаті якого було виявлено та усунено декілька помилок, зокрема у функціоналі 
відправки повідомлень. Тестування охоплювало перевірку на різних пристроях і в 
різних умовах використання, що дозволило переконатися в коректній роботі 
інтерфейсу, стабільності сервісів та відповідності очікуваному функціоналу. 
Таким чином, мобільний додаток успішно реалізовано, протестовано і 
підготовлено до подальшого використання або розширення. 
 
 
 
 
 
 
48 
 
ВИСНОВКИ 
У ході виконання кваліфікаційної роботи бакалавра було розроблено мобільний 
додаток – соціальну мережу для спортсменів, яка сприяє пошуку партнерів для занять 
спортом, комунікації, а також пошуку спортивних локацій у заданому географічному 
радіусі. 
Перш за все було проведено аналіз предметної області, що дозволило чітко 
окреслити актуальність теми, визначити цільову аудиторію, а також сформулювати 
основні завдання проєкту. Було вивчено існуючі рішення на ринку та їхні 
функціональні особливості, що допомогло уникнути дублювання та спрямувати 
розробку на унікальні можливості та покращення. 
Наступним кроком стало проєктування структури інформаційного ресурсу, 
включаючи архітектуру додатку, базу даних та основні функціональні модулі — 
авторизацію, профіль користувача, пошук партнерів, чат та інтеграцію з 
геолокаційними сервісами. Завдяки цьому був створений чіткий план розробки та 
реалізації. 
Для розробки було обрано сучасні, надійні і гнучкі технології — Flutter як 
кросплатформенний фреймворк, мову Dart, а також хмарну платформу Firebase для 
аутентифікації, збереження даних та синхронізації в реальному часі. З метою 
інтеграції геолокації використано безкоштовний сервіс OpenStreetMap, що забезпечує 
необхідний функціонал без значних витрат. Обране апаратне та програмне 
забезпечення відповідає сучасним вимогам і дозволяє ефективно проводити розробку 
і тестування. 
Розробка інтерфейсів здійснювалась з урахуванням зручності користувача, 
інтуїтивності та приємного візуального оформлення, яке було натхненне спортивною 
тематикою та яскравими кольорами. Реалізовано всі основні екрани додатку: 
авторизацію, профіль, пошук партнерів, чат, друзів та мапу. 
В ході тестування було перевірено коректність роботи додатку на різних 
пристроях, проведено тестування правил безпеки Firebase, що дозволило виявити і 
49 
 
виправити помилки, особливо у системі відправки повідомлень. В результаті додаток 
продемонстрував високу стабільність, адаптивність і відсутність критичних помилок. 
Отже, поставлені цілі і завдання кваліфікаційної роботи бакалавра були 
успішно реалізовані. Розроблений інформаційний ресурс відповідає сучасним 
вимогам мобільних додатків і може бути використаний як ефективний інструмент для 
спортсменів, що бажають знаходити партнерів, обмінюватися інформацією та 
знаходити спортивні локації.  
Мета кваліфікаційної роботи бакалавра досягнута. В ході її було проектування 
та створення мобільного додатку соціальної мобільної мережі, написано 
пояснювальну записку до кваліфікаційної роботи, розроблено презентацію. 
Згідно поставленої мети було вирішено наступні завдання: 
– досліджено предметну область, та визначено основні процеси роботи додатку; 
– визначено основні вимоги до додатку; 
– проведено аналіз актуальності проекту на сьогоднішній день; 
– проведено аналіз  існуючих аналогів; 
– проектування мобільного додатку; 
– оптимізація і адаптація; 
– перевірка на наявність помилок і багів. 
Подальший розвиток проєкту може включати розширення функціоналу, 
інтеграцію з іншими сервісами та поліпшення користувацького досвіду. 
 
 
 
 
 
 
 
 
 
 
50 
 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
1. Bailey T., Biessek A. Flutter for Beginners Birmingham: Packt Punlishing Ltd. 
2021. 352 p. 
2. Warlath K., Ladd S., Dart: Up and Running. Sebastopol : O’Reilly Media. 2014. 155 
p. 
3. Franken R, Bekhuis H, Tolsma J. Choosing Your Sports Partners: Assessing 
Selection Preferences Through Observational and Experimental Studies. Res Q 
Exerc Sport. 2024 Aug 30:1-15. doi: 10.1080/02701367.2024.2389907. Epub ahead 
of print. PMID: 39213427. 
4. Young people spend a third of their leisure time on devices URL: 
https://www.ons.gov.uk/peoplepopulationandcommunity/leisureandtourism/article
s/youngpeoplespendathirdoftheirleisuretimeondevices/2017-12-19 (Дата 
звернення 14.04.2025) 
5. Sedentary behaviour on the rise across Europe URL: 
https://www.biomedcentral.com/about/press-centre/science-press-releases/26-08-
20 (Дата звернення 14.04.2025) 
6.  Loneliness: Causes and Health Consequences URL: 
https://www.verywellmind.com/loneliness-causes-effects-and-treatments-2795749 
(Дата звернення 14.04.2025) 
7. FAQ Visualstudio. URL: https://code.visualstudio.com/docs/supporting/faq (Дата 
звернення 14.04.2025) 
8. Flutter documentation URL: https://flutter.dev (Дата звернення 14.04.2025)  
9. Developer documentation for Firebase URL: 
https://firebase.google.com/docs?hl=ru (Дата звернення 14.04.2025) 
10. Сервісна довідка OpenStreetMap URL: https://www.openstreetmap.org/help 
(Дата звернення 14.04.2025) 
11. Lamborghini Aventador Ultimae: A Fitting Tribute to a Legend URL: 
https://www.lambocharlotte.com/blog/lamborghini-aventador-ultimae-a-fitting-
tribute-to-a-legend/ (Дата звернення 14.04.2025) 
 
 
Додаток А 
 
 «Затверджую»               
Завідувач кафедри КН та СА 
проф. Триус Ю.В. 
_________________________ 
                                                                               «____»______________2025 р. 
 
 
 
 
 
 
МОБІЛЬНИЙ ЗАСТОСУНОК СПОРТИВНОЇ СОЦІАЛЬНОЇ МЕРЕЖІ  
Специфікація  
482.ЧДТУ. 52301-01 
 
Листів 2 
 
 
 
 
 
Розробник                          ____________________                 Туранський С. І. 
Керівник                             ____________________                 Дяченко П. В. 
 
 
 
 
Черкаси – 2025 
 
 
482.ЧДТУ. 52301-01 
Позначення Найменування Примітка 
482.ЧДТУ. 52301-01    12 01 Текст програми  
482.ЧДТУ. 52301-01    34 01 Інструкція користувачеві  
482.ЧДТУ. 52301-01    91 01 Публікація по темі  
кваліфікаційної роботи 
бакалавра в збірнику тез 
доповідей ІІІ Міжнародної 
науково-практичної 
інтернет-конференції 
«Інновації та перспективні 
шляхи розвитку 
інформаційних технологій» 
(ІПШРІТ-2024), 22 
листопада 2024 року м. 
Черкаси. 
482.ЧДТУ. 52301-01    91 01 Публікація по темі  
кваліфікаційної роботи 
бакалавра в збірнику тез 
доповідей ІІІ Міжнародної 
науково-практичної 
конференції «Наука, освіта 
та технології: світові 
тенденції та регіональний 
аспект»  
482.ЧДТУ. 52301-01    91 01 Публікація по темі  
кваліфікаційної роботи 
магістра в збірнику тез 
доповідей студентської 
науково-практичної 
конференції ЧДТУ, 20-121 
квітня 2025 р. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Додаток Б 
 
                                                      
«Затверджую»               
Завідувач кафедри КН та СА 
проф. Триус Ю.В. 
_________________________ 
                                                                                «____»______________2025 р.                                                                                                                                                                              
 
 
 
 
 
МОБІЛЬНИЙ ЗАСТОСУНОК СПОРТИВНОЇ СОЦІАЛЬНОЇ МЕРЕЖІ  
 
Текст програми 
482.ЧДТУ. 52301-01 12 01 
 
Листів 16 
 
 
 
Розробник                          ____________________                  Туранський С.І 
Керівник                             ____________________                 Дяченко П.В. 
 
 
 
 
 
Черкаси – 2025 
 
 
В додатку наведено  програмний код головних модулів та сторінок мобільного 
застосунку спортивної соціальної мережі (фрагмент). 
В.1 main.dart 
import 'package:flutter/material.dart'; 
import 'package:firebase_core/firebase_core.dart'; 
import 'package:firebase_auth/firebase_auth.dart'; 
import 'package:cloud_firestore/cloud_firestore.dart'; 
import 'package:geolocator/geolocator.dart'; 
import 'firebase_options.dart'; 
import 'screens/splash_screen.dart'; 
import 'screens/main_screen.dart'; 
import 'screens/authentication_screen.dart'; 
import 'screens/chat_screen.dart'; 
import 'screens/friends_screen.dart'; 
 
void main() async { 
  WidgetsFlutterBinding.ensureInitialized(); 
  await Firebase.initializeApp( 
    options: DefaultFirebaseOptions.currentPlatform, 
  ); 
 
  runApp(const MyApp()); 
} 
 
class MyApp extends StatelessWidget { 
  const MyApp({super.key}); 
 
  @override 
  Widget build(BuildContext context) { 
    return MaterialApp( 
 
 
      debugShowCheckedModeBanner: false, 
      title: 'LTT', 
      themeMode: ThemeMode.dark, 
      theme: ThemeData( 
        brightness: Brightness.dark, 
        scaffoldBackgroundColor: Colors.black, 
        primaryColor: Colors.deepOrange, 
        colorScheme: const ColorScheme.dark( 
          primary: Colors.white, 
          onPrimary: Colors.black, 
          background: Colors.black, 
          onBackground: Colors.deepOrange, 
        ), 
        textTheme: const TextTheme( 
          bodyLarge: TextStyle(color: Colors.white), 
          bodyMedium: TextStyle(color: Colors.white), 
          titleLarge: TextStyle(color: Colors.white), 
        ), 
        appBarTheme: const AppBarTheme( 
          backgroundColor: Colors.black, 
          foregroundColor: Colors.white, 
        ), 
        iconTheme: const IconThemeData(color: Colors.white), 
        elevatedButtonTheme: ElevatedButtonThemeData( 
          style: ElevatedButton.styleFrom( 
            backgroundColor: Colors.black, 
            foregroundColor: Colors.deepOrange, 
          ), 
        ), 
        textButtonTheme: TextButtonThemeData( 
 
 
          style: TextButton.styleFrom( 
            backgroundColor: Colors.black, 
            foregroundColor: Colors.white, 
          ), 
        ), 
        bottomNavigationBarTheme: const BottomNavigationBarThemeData( 
          backgroundColor: Colors.black, 
          selectedItemColor: Colors.white, 
          unselectedItemColor: Colors.grey, 
        ), 
      ), 
      home: const AuthCheckScreen(), 
      routes: { 
        '/chat': (context) { 
          final args = ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>; 
          return ChatScreen( 
            receiverId: args['receiverId'], 
            receiverNickname: args['receiverNickname'], 
          ); 
        }, 
        '/friends': (context) => const FriendsScreen(), 
      }, 
    ); 
  } 
} 
 
class AuthCheckScreen extends StatefulWidget { 
  const AuthCheckScreen({super.key}); 
 
  @override 
 
 
  _AuthCheckScreenState createState() => _AuthCheckScreenState(); 
} 
 
class _AuthCheckScreenState extends State<AuthCheckScreen> { 
  bool _isLoading = true; 
  User? _user; 
 
  @override 
  void initState() { 
    super.initState(); 
    _checkAuthStatus(); 
  } 
 
  Future<void> _checkAuthStatus() async { 
    final user = await FirebaseAuth.instance.authStateChanges().first; 
 
    if (mounted) { 
      setState(() { 
        _user = user; 
        _isLoading = false; 
      }); 
    } 
 
    if (user != null) { 
      await _updateUserLocation(user.uid); 
    } 
  } 
 
  Future<void> _updateUserLocation(String uid) async { 
    bool serviceEnabled = await Geolocator.isLocationServiceEnabled(); 
 
 
    if (!serviceEnabled) return; 
 
    LocationPermission permission = await Geolocator.checkPermission(); 
    if (permission == LocationPermission.denied) { 
      permission = await Geolocator.requestPermission(); 
      if (permission == LocationPermission.denied) return; 
    } 
 
    if (permission == LocationPermission.deniedForever) return; 
 
    final position = await Geolocator.getCurrentPosition(desiredAccuracy: 
LocationAccuracy.high); 
 
    await FirebaseFirestore.instance.collection('users').doc(uid).update({ 
      'location': { 
        'latitude': position.latitude, 
        'longitude': position.longitude, 
      } 
    }); 
  } 
 
  @override 
  Widget build(BuildContext context) { 
    if (_isLoading) { 
      return const SplashScreen(); 
    } 
 
    return _user == null ? const AuthenticationScreen() : const MainScreen(); 
  } 
} 
 
 
 
B.2 profile_screen.dart 
import 'dart:io'; 
import 'package:flutter/material.dart'; 
import 'package:firebase_auth/firebase_auth.dart'; 
import 'package:cloud_firestore/cloud_firestore.dart'; 
import 'package:image_picker/image_picker.dart'; 
import 'package:firebase_storage/firebase_storage.dart'; 
import 'authentication_screen.dart'; 
 
class ProfileScreen extends StatefulWidget { 
  const ProfileScreen({super.key}); 
 
  @override 
  _ProfileScreenState createState() => _ProfileScreenState(); 
} 
 
class _ProfileScreenState extends State<ProfileScreen> { 
  final _nicknameController = TextEditingController(); 
  final _ageController = TextEditingController(); 
  final _cityController = TextEditingController(); 
  final _aboutController = TextEditingController(); 
 
  bool _isEditing = false; 
  bool _isLoading = true; 
  Map<String, dynamic>? _userData; 
  List<String> _activities = []; 
  File? _profileImage; 
  String? _profileImageUrl; 
 
 
 
  final List<String> _allActivities = [ 
    'Біг', 
    'Плавання', 
    'Футбол', 
    'Баскетбол', 
    'Велосипед', 
    'Спортивний зал', 
  ]; 
 
  @override 
  void initState() { 
    super.initState(); 
    _fetchUserData(); 
  } 
 
  Future<void> _fetchUserData() async { 
    final uid = FirebaseAuth.instance.currentUser?.uid; 
    if (uid == null) return; 
 
    try { 
      final doc = await FirebaseFirestore.instance.collection('users').doc(uid).get(); 
      if (doc.exists) { 
        setState(() { 
          _userData = doc.data(); 
          _nicknameController.text = _userData?['nickname'] ?? ''; 
          _ageController.text = (_userData?['age'] ?? '').toString(); 
          _cityController.text = _userData?['city'] ?? ''; 
          _aboutController.text = _userData?['about'] ?? ''; 
          _activities = List<String>.from(_userData?['activities'] ?? []); 
          _profileImageUrl = _userData?['profileImageUrl']; 
 
 
          _isLoading = false; 
        }); 
      } 
    } catch (e) { 
      print('Помилка при завантаженні даних: $e'); 
    } 
  } 
 
  Future<void> _pickImage() async { 
    final pickedFile = await ImagePicker().pickImage(source: ImageSource.gallery); 
    if (pickedFile != null) { 
      setState(() { 
        _profileImage = File(pickedFile.path); 
      }); 
    } 
  } 
 
  Future<void> _uploadProfileImage(String uid) async { 
    if (_profileImage == null) return; 
    try { 
      final storageRef = FirebaseStorage.instance.ref().child('profile_images/$uid.jpg'); 
      await storageRef.putFile(_profileImage!); 
      _profileImageUrl = await storageRef.getDownloadURL(); 
    } catch (e) { 
      print('Помилка при завантаженні фото: $e'); 
    } 
  } 
 
  Future<void> _saveChanges() async { 
    final uid = FirebaseAuth.instance.currentUser?.uid; 
 
 
    if (uid == null) return; 
 
    final age = int.tryParse(_ageController.text.trim()); 
    if (age == null || age < 0 || age > 120) { 
      ScaffoldMessenger.of(context).showSnackBar( 
        const SnackBar(content: Text('Введіть коректний вік (0–120)')), 
      ); 
      return; 
    } 
 
    try { 
      if (_profileImage != null) { 
        await _uploadProfileImage(uid); 
      } 
 
      await FirebaseFirestore.instance.collection('users').doc(uid).update({ 
        'nickname': _nicknameController.text.trim(), 
        'age': age, 
        'city': _cityController.text.trim(), 
        'about': _aboutController.text.trim(), 
        'activities': _activities, 
        'profileImageUrl': _profileImageUrl ?? '', 
      }); 
 
      setState(() { 
        _isEditing = false; 
      }); 
 
      ScaffoldMessenger.of(context).showSnackBar( 
        const SnackBar(content: Text('Зміни збережено')), 
 
 
      ); 
    } catch (e) { 
      print('Помилка при збереженні: $e'); 
      ScaffoldMessenger.of(context).showSnackBar( 
        const SnackBar(content: Text('Помилка при збереженні')), 
      ); 
    } 
  } 
 
  Future<void> _logout() async { 
    await FirebaseAuth.instance.signOut(); 
    if (mounted) { 
      Navigator.pushReplacement( 
        context, 
        MaterialPageRoute(builder: (_) => const AuthenticationScreen()), 
      ); 
    } 
  } 
 
  Widget _buildTextField( 
    String label, 
    TextEditingController controller, 
    bool isEditable, { 
    TextInputType keyboardType = TextInputType.text, 
    int maxLines = 1, 
  }) { 
    return TextField( 
      controller: controller, 
      readOnly: !isEditable, 
      style: const TextStyle(color: Colors.white), 
 
 
      keyboardType: keyboardType, 
      maxLines: maxLines, 
      decoration: InputDecoration( 
        labelText: label, 
        labelStyle: const TextStyle(color: Colors.deepOrange), 
        enabledBorder: const UnderlineInputBorder( 
          borderSide: BorderSide(color: Colors.deepOrange), 
        ), 
        focusedBorder: const UnderlineInputBorder( 
          borderSide: BorderSide(color: Colors.deepOrange), 
        ), 
      ), 
    ); 
  } 
 
  Widget _buildActivities() { 
    if (_isEditing) { 
      return Wrap( 
        spacing: 8.0, 
        children: _allActivities.map((activity) { 
          final isSelected = _activities.contains(activity); 
          return FilterChip( 
            label: Text(activity), 
            selected: isSelected, 
            onSelected: (selected) { 
              setState(() { 
                if (selected) { 
                  _activities.add(activity); 
                } else { 
                  _activities.remove(activity); 
 
 
                } 
              }); 
            }, 
            selectedColor: Colors.deepOrange, 
            checkmarkColor: Colors.black, 
            labelStyle: TextStyle(color: isSelected ? Colors.white : Colors.deepOrange), 
            backgroundColor: Colors.black, 
            side: const BorderSide(color: Colors.deepOrange), 
          ); 
        }).toList(), 
      ); 
    } else { 
      return Wrap( 
        spacing: 8.0, 
        children: _activities.map((activity) { 
          return Chip( 
            label: Text(activity), 
            backgroundColor: Colors.deepOrange, 
            labelStyle: const TextStyle(color: Colors.white), 
          ); 
        }).toList(), 
      ); 
    } 
  } 
 
  @override 
  Widget build(BuildContext context) { 
    final uid = FirebaseAuth.instance.currentUser?.uid; 
    if (uid == null) { 
      return Scaffold( 
 
 
        backgroundColor: Colors.black, 
        body: const Center( 
          child: Text( 
            'Користувач не авторизований', 
            style: TextStyle(color: Colors.white), 
          ), 
        ), 
      ); 
    } 
 
    return Scaffold( 
      backgroundColor: Colors.black, 
      appBar: AppBar( 
        title: const Text('Профіль', style: TextStyle(color: Colors.white)), 
        backgroundColor: Colors.deepOrange, 
        iconTheme: const IconThemeData(color: Colors.deepOrange), 
        actions: [ 
          IconButton( 
            icon: Icon(_isEditing ? Icons.save : Icons.edit, color: Colors.white), 
            onPressed: () { 
              if (_isEditing) { 
                _saveChanges(); 
              } else { 
                setState(() { 
                  _isEditing = true; 
                }); 
              } 
            }, 
          ), 
          IconButton( 
 
 
            icon: const Icon(Icons.logout, color: Colors.white), 
            onPressed: _logout, 
            tooltip: 'Вийти', 
          ), 
        ], 
      ), 
      body: _isLoading 
          ? const Center(child: CircularProgressIndicator(color: Colors.deepOrange)) 
          : SingleChildScrollView( 
              padding: const EdgeInsets.all(16.0), 
              child: Column( 
                children: [ 
                  GestureDetector( 
                    onTap: _isEditing ? _pickImage : null, 
                    child: CircleAvatar( 
                      radius: 60, 
                      backgroundImage: _profileImage != null 
                          ? FileImage(_profileImage!) 
                          : (_profileImageUrl != null && _profileImageUrl!.isNotEmpty) 
                              ? NetworkImage(_profileImageUrl!) as ImageProvider 
                              : null, 
                      child: (_profileImage == null && (_profileImageUrl == null || 
_profileImageUrl!.isEmpty)) 
                          ? const Icon(Icons.camera_alt, size: 40, color: Colors.deepOrange) 
                          : null, 
                    ), 
                  ), 
                  const SizedBox(height: 16), 
                   const SizedBox(height: 8), 
                  _buildTextField('Нікнейм', _nicknameController, _isEditing), 
 
 
                  const SizedBox(height: 8), 
                  _buildTextField('Вік', _ageController, _isEditing, keyboardType: 
TextInputType.number), 
                  const SizedBox(height: 8), 
                  _buildTextField('Місто', _cityController, _isEditing), 
                  const SizedBox(height: 8), 
                  Align( 
                    alignment: Alignment.centerLeft, 
                    child: Text( 
                      'Фізична активність', 
                      style: TextStyle(color: Colors.white, fontSize: 16), 
                    ), 
                  ), 
                  const SizedBox(height: 8), 
                  _buildActivities(), 
                  const SizedBox(height: 8), 
                  _buildTextField('Про себе', _aboutController, _isEditing, maxLines: 3), 
                ], 
              ), 
            ), 
    ); 
  } 
} 
B.3 registration_screen.dart 
import 'dart:io'; 
import 'package:flutter/material.dart'; 
import 'package:firebase_auth/firebase_auth.dart'; 
import 'package:cloud_firestore/cloud_firestore.dart'; 
import 'package:image_picker/image_picker.dart'; 
import 'package:firebase_storage/firebase_storage.dart'; 
 
 
import 'package:dropdown_search/dropdown_search.dart'; 
import 'profile_screen.dart'; 
 
class RegistrationScreen extends StatefulWidget { 
  const RegistrationScreen({super.key}); 
 
  @override 
  _RegistrationScreenState createState() => _RegistrationScreenState(); 
} 
 
class _RegistrationScreenState extends State<RegistrationScreen> { 
  final TextEditingController _emailController = TextEditingController(); 
  final TextEditingController _passwordController = TextEditingController(); 
  final TextEditingController _nicknameController = TextEditingController(); 
  final TextEditingController _ageController = TextEditingController(); 
  final TextEditingController _aboutController = TextEditingController(); 
 
  String? _selectedCity; 
  List<String> _selectedActivities = []; 
  File? _profileImage; 
  String? _profileImageUrl; 
 
  final List<String> _activities = [ 
    'Біг', 
    'Плавання', 
    'Футбол', 
    'Баскетбол', 
    'Велосипед', 
    'Спортивний зал', 
  ]; 
 
 
 
  final List<String> _cities = [ 
    'Київ', 'Харків', 'Одеса', 'Дніпро', 'Львів', 'Запоріжжя', 
    'Кривий Ріг', 'Миколаїв', 'Маріуполь', 'Вінниця', 'Черкаси' 
  ]; 
 
  Future<void> _pickImage() async { 
    final pickedFile = await ImagePicker().pickImage(source: ImageSource.gallery); 
    if (pickedFile != null) { 
      setState(() { 
        _profileImage = File(pickedFile.path); 
      }); 
    } 
  } 
 
  Future<void> _uploadProfileImage(String uid) async { 
    if (_profileImage == null) return; 
    final storageRef = FirebaseStorage.instance.ref().child('profile_images/$uid'); 
    await storageRef.putFile(_profileImage!); 
    _profileImageUrl = await storageRef.getDownloadURL(); 
  } 
 
  Future<void> _register() async { 
    try { 
      UserCredential userCredential = await 
FirebaseAuth.instance.createUserWithEmailAndPassword( 
        email: _emailController.text.trim(), 
        password: _passwordController.text.trim(), 
      ); 
 
 
 
      final uid = userCredential.user?.uid; 
      if (uid != null) { 
        await _uploadProfileImage(uid); 
        await FirebaseFirestore.instance.collection('users').doc(uid).set({ 
          'email': _emailController.text.trim(), 
          'nickname': _nicknameController.text.trim(), 
          'age': int.tryParse(_ageController.text.trim()) ?? 0, 
          'city': _selectedCity ?? '', 
          'activities': _selectedActivities, 
          'about': _aboutController.text.trim(), 
          'profileImageUrl': _profileImageUrl ?? '', 
          'createdAt': Timestamp.now(), 
        }); 
      } 
 
      Navigator.pushReplacement( 
        context, 
        MaterialPageRoute(builder: (context) => const ProfileScreen()), 
      ); 
    } catch (e) { 
      print('Помилка реєстрації: $e'); 
    } 
  } 
 
  @override 
  Widget build(BuildContext context) { 
    return Scaffold( 
      backgroundColor: Colors.black, 
      appBar: AppBar( 
        title: const Text('Реєстрація', style: TextStyle(color: Colors.deepOrange)), 
 
 
        backgroundColor: Colors.black, 
        iconTheme: const IconThemeData(color: Colors.deepOrange), 
      ), 
      body: SingleChildScrollView( 
        padding: const EdgeInsets.all(16.0), 
        child: Column( 
          children: [ 
            GestureDetector( 
              onTap: _pickImage, 
              child: CircleAvatar( 
                radius: 60, 
                backgroundImage: _profileImage != null ? FileImage(_profileImage!) : null, 
                child: _profileImage == null ? const Icon(Icons.camera_alt, size: 40, color: 
Colors.deepOrange) : null, 
              ), 
            ), 
            const SizedBox(height: 16), 
            TextField( 
              controller: _emailController, 
              style: const TextStyle(color: Colors.deepOrange), 
              decoration: const InputDecoration( 
                labelText: 'Email', 
                labelStyle: TextStyle(color: Colors.deepOrange), 
                enabledBorder: UnderlineInputBorder( 
                  borderSide: BorderSide(color: Colors.deepOrange), 
                ), 
              ), 
            ), 
            TextField( 
              controller: _passwordController, 
 
 
              style: const TextStyle(color: Colors.deepOrange), 
              decoration: const InputDecoration( 
                labelText: 'Пароль', 
                labelStyle: TextStyle(color: Colors.deepOrange), 
                enabledBorder: UnderlineInputBorder( 
                  borderSide: BorderSide(color: Colors.deepOrange), 
                ), 
              ), 
              obscureText: true, 
            ), 
            TextField( 
              controller: _nicknameController, 
              style: const TextStyle(color: Colors.deepOrange), 
              decoration: const InputDecoration( 
                labelText: 'Нік або ім\'я', 
                labelStyle: TextStyle(color: Colors.deepOrange), 
                enabledBorder: UnderlineInputBorder( 
                  borderSide: BorderSide(color: Colors.deepOrange), 
                ), 
              ), 
            ), 
            TextField( 
              controller: _ageController, 
              style: const TextStyle(color: Colors.deepOrange), 
              decoration: const InputDecoration( 
                labelText: 'Вік', 
                labelStyle: TextStyle(color: Colors.deepOrange), 
                enabledBorder: UnderlineInputBorder( 
                  borderSide: BorderSide(color: Colors.deepOrange), 
                ), 
 
 
              ), 
              keyboardType: TextInputType.number, 
            ), 
            const SizedBox(height: 12), 
            DropdownSearch<String>( 
              items: _cities, 
              selectedItem: _selectedCity, 
              onChanged: (value) => setState(() => _selectedCity = value), 
              popupProps: const PopupProps.menu( 
                showSearchBox: true, 
              ), 
              dropdownDecoratorProps: const DropDownDecoratorProps( 
                dropdownSearchDecoration: InputDecoration( 
                  labelText: "Місто", 
                  labelStyle: TextStyle(color: Colors.deepOrange), 
                  enabledBorder: OutlineInputBorder( 
                    borderSide: BorderSide(color: Colors.deepOrange), 
                  ), 
                ), 
              ), 
              dropdownButtonProps: const DropdownButtonProps( 
                icon: Icon(Icons.arrow_drop_down, color: Colors.deepOrange), 
              ), 
              dropdownBuilder: (context, selectedItem) => Text( 
                selectedItem ?? '', 
                style: const TextStyle(color: Colors.deepOrange), 
              ), 
            ), 
            const SizedBox(height: 12), 
            Align( 
 
 
              alignment: Alignment.centerLeft, 
              child: Text( 
                'Фізична активність', 
                style: TextStyle(color: Colors.deepOrange, fontSize: 16), 
              ), 
            ), 
            Column( 
              children: _activities.map((activity) { 
                return CheckboxListTile( 
                  title: Text(activity, style: TextStyle(color: Colors.deepOrange)), 
                  value: _selectedActivities.contains(activity), 
                  onChanged: (bool? value) { 
                    setState(() { 
                      if (value == true) { 
                        _selectedActivities.add(activity); 
                      } else { 
                        _selectedActivities.remove(activity); 
                      } 
                    }); 
                  }, 
                  activeColor: Colors.deepOrange, 
                  checkColor: Colors.black, 
                  controlAffinity: ListTileControlAffinity.leading, 
                ); 
              }).toList(), 
            ), 
            const SizedBox(height: 12), 
            TextField( 
              controller: _aboutController, 
              style: const TextStyle(color: Colors.deepOrange), 
 
 
              decoration: const InputDecoration( 
                labelText: 'Про себе', 
                labelStyle: TextStyle(color: Colors.deepOrange), 
                enabledBorder: UnderlineInputBorder( 
                  borderSide: BorderSide(color: Colors.deepOrange), 
                ), 
              ), 
              maxLines: 3, 
            ), 
            const SizedBox(height: 16), 
            ElevatedButton( 
              onPressed: _register, 
              style: ElevatedButton.styleFrom( 
                backgroundColor: Colors.deepOrange, 
              ), 
              child: const Text('Зареєструватися', style: TextStyle(color: Colors.black)), 
            ), 
          ], 
        ), 
      ), 
    ); 
  } 
} 
 
 
 
 
 
 
 
 
 
Додаток B 
 
 
 
 
 
 
 
 
 
ІНФОРМАЦІЙНА СИСТЕМА УПРАВЛІННЯ КОНТЕНТОМ WEB-РЕСУРСУ 
ДЛЯ МОНІТОРИНГУ КУРСУ КРИПТОВАЛЮТИ 
 
ІНСТРУКЦІЯ КОРИСТУВАЧА 
482.ЧДТУ. 12301-01 34 01 
Листів 7 
 
 
 
Розробник                          ____________________                Туранський С.І 
 
 
 
 
 
 
 
 
 
Черкаси – 2025 
 
 
АНОТАЦІЯ 
Предметом розробки кваліфікаційної роботи бакалавра є проектування і 
створення мобільного застосунку спортивної соціальної мережі.  
1. Реєстрація користувача 
1) Завантажити та запустити додаток; 
2) Натиснути «Немає акаунту? Зареєструватися»; 
 
Рисунок В.1 – Вікно авторизації та реєстрації 
3) Процес реєстрації: 
a) Завантажити фотографію натиснувши на відповідну кнопку з зображенням 
фотокамери; 
b) Заповнити всі поля – email, пароль, нік, вік, місто, фізичну активність, про себе; 
c) Натиснути кнопку «Зареєструватися»; 
2. Користування додатком 
 
 
1. Вікно профілю дозволяє: 
 Переглядати особисту інформацію; 
 Редагувати інформацію. Для цього необхідно натиснути на зображення олівця. 
Для збереження змін потрібно натиснути на зображення дискети; 
 Вийти з облікового запису. Для цього потрібно натиснути на зображення 
квадрату зі стрілкою;  
 
Рисунок В.2 – Вікно профілю користувача 
2. Вікно мапи дозволяє переглянути свою геолокацію в реальному часі та 
шукати потрібні місця за адресою. Для цього в поле пошуку потрібно 
ввести необхідну адресу  
 
 
 
Рисунок В.3 – Вікно мапи 
3. Вікно пошуку партнерів дозволяє знайти необхідних користувачів. Для 
цього потрібно обрати активності та радіус пошуку і натиснути на кнопку 
«Пошук». Результат пошуку буде виведений нижче. На користувача 
можна натиснути.  
 
 
 
Рисунок В.4 – Вікно пошуку партнерів 
 
4. Дії з користувачем. На потрібного користувача потрібно натиснути. 
Відкриється вікно профілю користувача з інформацією про нього. 
Користувача можна додати до друзів натиснувши на кнопку «Додати до 
друзів», або написати повідомлення натиснувши кнопку 
«Повідомлення»; 
 
 
 
Рисунок В.5 – вікно перегляду профілю користувача 
5. Чати. Список чатів відображає всі існуючи чати користувача. Для ведення 
чату потрібно обрати потрібний і натиснути на нього. Відкриється чат з 
відображенням всіх попередніх повідомлень. Для продовження чату 
повідомлення необхідно ввести в поле для тесту; 
 
 
 
Рисунок В.6 – Вікно чатів, та вибраного чату окремо 
6.  Дії з друзями. Вікно «Друзі» відображає список всіх друзів користувача. 
На обраного друга можна натиснути. Відкриється вікно профілю 
користувача. В вікні можна переглянути інформацію друга та написати 
повідомлення через кнопку «Повідомлення»; 
 
 
 
Рисунок В.7 – Вікно друзів та перегляд користувача 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Додаток Г 
 
 
 
 
 
 
 
 
МОБІЛЬНИЙ ЗАСТОСУНОК СПОРТИВНОЇ СОЦІАЛЬНОЇ МЕРЕЖІ 
 
Публікація по темі кваліфікаційної роботи бакалавра в збірнику тез доповідей ІІІ 
Міжнародної науково-практичної інтернет-конференції «Інновації та перспективні 
шляхи розвитку інформаційних технологій» (ІПШРІТ-2024), 22 листопада 2024 року м. 
Черкаси. 
482.ЧДТУ. 52301-01 90 01 
 
Листів 3 
 
 
 
 
 
Розробник                          ____________________                 Туранський С. І. 
Керівник                             ____________________                Дяченко П. В. 
 
 
 
 
Черкаси – 2025 
 
 
 
 
 
ДЯЧЕНКО ПЕТРО ВАСИЛЬОВИЧ 
К. Т. Н., ДОЦ., ДОЦЕНТ КАФЕДРИ КОМПʼЮТЕРНИХ НАУК ТА 
СИСТЕМНОГО АНАЛІЗУ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ, М. 
ЧЕРКАСИ, УКРАЇНА 
ТУРАНСЬКИЙ СВЯТОСЛАВ ІГОРОВИЧ 
ЗДОБУВАЧ ВИЩОЇ ОСВІТИ 1-ГО (БАКАЛАВРСЬКОГО) РІВНЯ 
WEB-ОРІЄНТОВАНИЙ МОБІЛЬНИЙ ДОДАТОК 
«TRAIN TOGETHER» 
У сучасному світі, цифрові технології активно інтегруються у всі сфери життя, 
включаючи спорт і фізичну активність. Зростаюча популярність здорового способу 
життя, активного дозвілля та соціальних мереж створює запит на нові інструменти 
для взаємодії між спортсменами. Одним із таких інструментів є мобільний додаток 
«Train Together», який є об’єктом розгляду у межах даної публікації.  
«Train Together» – це мобільний додаток, що поєднує функції соціальної мережі 
та сервісу для пошуку спортивних партнерів. Він є одним з основних сервісів 
інтернету, що відрізняється популярністю та різновидом спілкування для обміну 
інформацією. Додаток дозволяє користувачам знаходити людей поблизу для спільних 
тренувань, обирати відповідні локації для занять, створювати спільноти, додавати 
друзів, а також ділитися мультимедійними матеріалами. Його головною перевагою є 
можливість об’єднувати спортсменів з різним рівнем підготовки та інтересами, 
сприяючи побудові дружніх зв’язків і мотивації до тренувань. Концепція роботи 
сервісу полягає у створенні користувачами (відвідувачами додатку) своїх пропозицій 
з їх подальшим обговоренням, шляхом постигну та розміщення повідомлень 
всередині додатку. Користувачі можуть коментувати заявлену пропозицію, ставити 
питання по ній і отримувати відповіді, а також самі відповідати на запитання інших 
користувачів додатку і надавати їм поради [1]. 
 
 
Для проведення, наприклад спільних тренувань, важливо забезпечити не лише 
якісну організацію цього заходу, але й зручний доступ до необхідної інформації. В 
даному випадку створення мобільного додатку для спортивних змагань, може стати 
ключовим елементом успішного проведення такого заходу. Перш за все, веб-
орієнтований інформаційний сервіс забезпечує зручний доступ до всієї інформації 
про спортивний захід, що є важливим для учасників. Це може бути інформація про 
дату і місце проведення, програма, умови участі, інформація про учасників, та інше. 
Крім того, на сервісі можна розмістити контактну інформацію, яка допоможе 
учасникам зв’язатися з організаторами змагань. Також веб-сервіс може бути 
використаний для забезпечення зручності реєстрації на змагання чи тренування. 
Учасники можуть зареєструватися, що значно спрощує організацію заходу для 
організаторів та робить процес реєстрації швидшим та зручнішим для учасників 
змагань. Веб-додаток може бути використаний для поширення інформації про 
змагання [2].  
Створивши веб-додаток, його корисно зареєструвати у пошукових системах, 
рейтингах, каталогах. Це дозволить легко виявити його користувачам Internet, хто 
цікавиться сайтами даної тематики а також дозволить відстежувати відвідуваність 
сайту і мати додаткову статистичну інформацію про його відвідувачів. Реклама на 
сайті форуму – найбільш ефективна, а форми такої реклами на сайті можуть бути 
найрізноманітніші: банери і кнопки на окремих або на всіх сторінках, текстова і 
банерна реклама в розсилці, web-сторінка у web-каталозі (що дозволяє мати своє 
представництво в Internet на відвідуваному сайті при мінімальних фінансових 
затратах). Корисну і цікаву для учасників форуму інформацію можна розмістити за в 
різних розділах, що сприятиме швидкому її поширенню. Таким може бути приклад 
можливостей веб-орієнтованого мобільного додатку для представників спортивної 
спільноти.  
Метою роботи є розробка мобільного додатку «Train Together», як забезпечення 
зручної платформи для взаємодії спортсменів, та популяризації активного способу 
життя. Додаток повинен вирішувати такі завдання:  
 
 
 надавати можливість пошуку спортивних партнерів поблизу з урахуванням 
спільних інтересів; 
 забезпечувати інтерактивний доступ до мапи спортивних локацій, включаючи 
інформацію про їхню доступність і відгуки; 
 створювати платформу для соціальної взаємодії між спортсменами (додавання 
друзів, організація груп, обмін мультимедіа); 
 забезпечувати кросплатформенну доступність додатку для користувачів як 
Android, так і iOS; 
 інтегрувати хмарні технології для зберігання даних, що забезпечить 
масштабованість і стабільну роботу додатку.  
Для досягнення поставленої мети, у роботі вирішено такі завдання: 
 проведено аналітичний огляд та складено порівняльну характеристику 
сучасних існуючих мобільних додатків, визначено їх переваги та недоліки, а 
також особливості кожного з них; 
 здійснено опис предметної області, визначено напрями діяльності; 
 здійснено аналіз вимог до програмної системи. розроблено архітектуру web-
сервісу, що дозволить краще зрозуміти функції основних його частин;  
 створено та описано структурну схему, основними компонентами якої є рівень 
клієнта, рівень завдання та рівень даних; 
 описано функціональну структуру системи та її основних елементів –модулів 
обробки даних; 
 визначено основні елементи бази даних та встановлено зв’язки між ними, 
спроектовано структуру бази даних. 
Створена реляційна модель бази даних, являє собою взаємопов’язану структуру 
з трьох таблиць train_message, train_users, train_topics. Кожна з таблиць містить 
відповідно інформацію про повідомлення на сайті, зареєстрованих користувачів та 
види змагань чи тренувань. Для програмної реалізації проекту було використано такі 
програмні засоби та технології [3]:  
 
 
 мова програмування Dart: забезпечує кросплатформенну розробку за 
допомогою фреймворку Flutter. Цей інструмент дозволяє створювати додатки з 
єдиним кодом, які працюють на обох популярних платформах – Android та iOS;  
 фреймворк Flutter: використовується для побудови швидкого, гнучкого та 
адаптивного інтерфейсу користувача. Flutter дозволяє досягти високої 
продуктивності додатку та створити сучасний дизайн; 
 хмарні бази даних: використовується Firebase Firestore, що забезпечує: 
 зберігання даних користувачів (профілі, локації, мультимедіа); 
 синхронізацію даних у реальному часі; 
 можливість масштабування у майбутньому; 
 Google Maps API: для інтеграції інтерактивної мапи спортивних локацій, що 
надає користувачам зручний доступ до інформації про тренувальні майданчики. 
Більшу частину веб-сервісу займають такі елементи як головна сторінка, розділ 
реєстрації та авторизації користувача, сторінки поставторизації, інструменти 
адміністратора, сторінка адаптації сервісу під мобільну версію.  
Таким чином, у рамках даного проекту розроблено функціональний мобільний 
додаток, який відповідає сучасним вимогам якості, продуктивності та зручності 
користування. Реалізація цього проєкту дозволяє не лише створити корисний 
інструмент для спортсменів, але й набути практичного досвіду роботи з новітніми 
технологіями мобільної розробки. У результаті реалізації проекту отримано 
практичні навички з проектування та створення веб-сервісів;  
реалізовано реєстрацію та авторизацію користувача у межах сесії; розроблено 
структуру, дизайн та здійснено верстку веб-сторінок; забезпечено взаємодію 
користувача з базами даних сайту; використано наборів інструментів з відкритим 
кодом, призначених для створення веб-сайтів та веб-сервісів.  
Список літератури 
1. Modern Java in Action: Lambdas, streams, functional and reactive programming 
2nd Edition/ Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft. Manning – 2018. 592p. 
 
 
2. Practical PostgreSQL/Joshua D. Drake, John C. Worsley. O'Reilly Media 2002. 
640p. 
3. Firebase: Documentation: 14: Index Types. URL: 
https://www.firebase.org/docs/14/functions.html 60 (дата звернення 12.11.2024). 
4. Google Maps API: Documentation: 12: Index Types. URL: https://www. Google 
maps.org/docs/14/functions.html 60 (дата звернення 10.11.2024). 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Додаток Д 
 
 
 
 
 
 
 
 
МОБІЛЬНИЙ ЗАСТОСУНОК СПОРТИВНОЇ СОЦІАЛЬНОЇ МЕРЕЖІ 
 
Публікація по темі кваліфікаційної роботи бакалавра в збірнику тез доповідей ІІІ 
Міжнародної науково-практичної конференції «Наука, освіта та технології: світові 
тенденції та регіональний аспект», 17 травня 2025 року м.Рівне 
482.ЧДТУ. 52301-01 90 01 
 
Листів 5 
 
 
 
 
 
Розробник                          ____________________                 Туранський С. І. 
Керівник                             ____________________                Дяченко П. В. 
 
 
 
 
 
Черкаси – 2025 
 
 
 
 
 
Дяченко П. В. 
к. т. н., доц., доцент кафедри 
компʼютерних наук та системного аналізу 
Черкаський державний технологічний університет, 
 
Туранський С. I. 
здобувач вищої освіти 1-го (бакалаврського) рівня, 
Черкаський державний технологічний університет 
РОЗРОБКА МОБІЛЬНОГО ДОДАТКУ СОЦІАЛЬНОЇ МЕРЕЖІ 
У доповіді розглядається процес розробки мобільного додатку, що поєднує 
функції соціальної мережі та сервісу для пошуку спортивних партнерів. Він є одним 
з основних сервісів інтернету, що відрізняється популярністю та різновидом 
спілкування для обміну інформацією. Додаток дозволяє користувачам знаходити 
людей поблизу для спільних тренувань, обирати відповідні локації для занять, 
створювати спільноти, додавати друзів, а також ділитися мультимедійними 
матеріалами. Його головною перевагою є можливість об’єднувати спортсменів з 
різним рівнем підготовки та інтересами, сприяючи побудові дружніх зв’язків і 
мотивації до тренувань. Концепція роботи сервісу полягає у створенні користувачами 
(відвідувачами додатку) своїх пропозицій з їх подальшим обговоренням, шляхом 
постигну та розміщення повідомлень всередині додатку. Користувачі можуть 
коментувати заявлену пропозицію, ставити питання, отримувати відповіді, а також 
самі відповідати на запитання інших користувачів додатку і надавати їм поради [1].  
Для проведення, наприклад спільних тренувань, важливо забезпечити не лише 
якісну організацію цього заходу, але й зручний доступ до необхідної інформації. В 
даному випадку створення мобільного додатку для спортивних змагань, може стати 
ключовим елементом успішного проведення такого заходу. Перш за все, веб-
орієнтований інформаційний сервіс забезпечує зручний доступ до всієї інформації 
про спортивний захід, що є важливим для учасників. Це може бути інформація про 
 
 
дату і місце проведення, програма, умови участі, інформація про учасників, та інше.  
Крім того, на сервісі можна розмістити контактну інформацію, яка допоможе 
учасникам зв'язатися з організаторами змагань. Також веб-сервіс може бути 
використаний для забезпечення зручності реєстрації на змагання чи тренування. 
Учасники можуть зареєструватися, що значно спрощує організацію заходу для 
організаторів та робить процес реєстрації швидшим та зручнішим для учасників 
змагань. Веб-додаток може бути використаний для поширення інформації про 
змагання [2]. 
Створивши веб-додаток, його корисно зареєструвати у пошукових системах, 
рейтингах, каталогах. Це дозволить легко виявити його користувачам Internet, хто 
цікавиться сайтами даної тематики а також дозволить відстежувати відвідуваність 
сайту і мати додаткову статистичну інформацію про його відвідувачів. Реклама на 
сайті форуму – найбільш ефективна, а форми такої реклами на сайті можуть бути 
найрізноманітніші: банери і кнопки на окремих або на всіх сторінках, текстова і 
банерна реклама в розсилці, web-сторінка у web-каталозі (що дозволяє мати своє 
представництво в Internet на відвідуваному сайті при мінімальних фінансових 
затратах). Корисну і цікаву для учасників форуму інформацію можна розмістити за в 
різних розділах, що сприятиме швидкому її поширенню. Таким може бути приклад 
можливостей веб-орієнтованого мобільного додатку для представників спортивної 
спільноти.  
Метою роботи є розробка мобільного додатку “Train Together”, як забезпечення 
зручної платформи для взаємодії спортсменів, та популяризації активного способу 
життя. Додаток повинен вирішувати такі завдання: 
 надавати можливість пошуку спортивних партнерів поблизу з урахуванням 
спільних інтересів; 
 забезпечувати інтерактивний доступ до мапи спортивних локацій, включаючи 
інформацію про їхню доступність і відгуки; 
 створювати платформу для соціальної взаємодії між спортсменами (додавання 
друзів, організація груп, обмін мультимедіа); 
 
 
 забезпечувати кросплатформенну доступність додатку для користувачів як 
Android, так і iOS; 
 інтегрувати хмарні технології для зберігання даних, що забезпечить 
масштабованість і стабільну роботу додатку. 
Для досягнення поставленої мети, у роботі вирішено такі завдання: 
 проведено аналітичний огляд та складено порівняльну характеристику 
сучасних існуючих мобільних додатків, визначено їх переваги та недоліки, а 
також особливості кожного з них; 
 здійснено опис предметної області, визначено напрями діяльності; 
 здійснено аналіз вимог до програмної системи. Розроблено архітектуру web-
сервісу, що дозволить краще зрозуміти функції основних його частин; 
 створено та описано структурну схему, основними компонентами якої є рівень 
клієнта, рівень завдання та рівень даних; 
 описано функціональну структуру системи та її основних елементів – 
 модулів обробки даних;  
 визначено основні елементи бази даних та встановлено зв’язки між ними, 
спроектовано структуру бази даних. 
Створена реляційна модель бази даних, являє собою взаємопов’язану структуру 
з трьох таблиць train_message, train_users, train_topics. Кожна з таблиць містить 
відповідно інформацію про повідомлення на сайті, зареєстрованих користувачів та 
види змагань чи тренувань. Для програмної реалізації проекту було використано такі 
програмні засоби та технології [3]: 
- мова програмування Dart: забезпечує кросплатформенну розробку за допомогою 
фреймворку Flutter. Цей інструмент дозволяє створювати додатки з єдиним 
кодом, які працюють на обох популярних платформах – Android та iOS; 
- фреймворк Flutter: використовується для побудови швидкого, гнучкого та 
адаптивного інтерфейсу користувача. Flutter дозволяє досягти високої 
продуктивності додатку та створити сучасний дизайн;  
- хмарні бази даних: використовується Firebase Firestore, що забезпечує: 
 
 
- зберігання даних користувачів (профілі, локації, мультимедіа); 
- синхронізацію даних у реальному часі; 
- можливість масштабування у майбутньому; 
- Google Maps API: для інтеграції інтерактивної мапи спортивних локацій, що надає 
користувачам зручний доступ до інформації про тренувальні майданчики. 
Більшу частину веб-сервісу займають такі елементи як головна сторінка, розділ 
реєстрації та авторизації користувача, сторінки поставторизації, інструменти 
адміністратора, сторінка адаптації сервісу під мобільну версію.  
Таким чином, у рамках даного проекту розроблено функціональний мобільний 
додаток, який відповідає сучасним вимогам якості, продуктивності та зручності 
користування. Реалізація цього проєкту дозволяє не лише створити корисний 
інструмент для спортсменів, але й набути практичного досвіду роботи з новітніми 
технологіями мобільної розробки. У результаті реалізації проекту отримано 
практичні навички з проектування та створення веб-сервісів; реалізовано реєстрацію 
та авторизацію користувача у межах сесії; розроблено структуру, дизайн та здійснено 
верстку веб-сторінок; забезпечено взаємодію користувача з базами даних сайту; 
використано наборів інструментів з відкритим кодом, призначених для створення 
веб-сайтів та веб-сервісів.  
Список літератури 
 
1. Modern Java in Action: Lambdas, streams, functional and reactive 
programming 2nd Edition/ Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft. 
Manning – 2018. 592p. 
2. Practical PostgreSQL/Joshua D. Drake, John C. Worsley. O'Reilly Media 
2002. 640p. 
3. Firebase: Documentation: 14: Index Types. URL: https://www. 
firebase.org/docs/14/functions.html 60 (дата звернення 10.05.2025). 
4. Google Maps API: Documentation: 12: Index Types. URL: https://www. 
google maps.org/docs/14/functions.html 60 (дата звернення 10.05.2025).  
 
 
 
Додаток Е 
 
 
 
 
 
 
 
 
МОБІЛЬНИЙ ЗАСТОСУНОК СПОРТИВНОЇ СОЦІАЛЬНОЇ МЕРЕЖІ 
 
Публікація по темі кваліфікаційної роботи магістра в збірнику тез доповідей 
студентської науково-практичної конференції ЧДТУ, 20-121 квітня 2025 
р.482.ЧДТУ. 52301-01 90 01 
 
Листів 5 
 
 
 
 
 
Розробник                          ____________________                 Туранський С. І. 
Керівник                             ____________________                Дяченко П. В. 
 
 
 
Черкаси – 2025 
 
 
 
 
 
 
 
 
МОБІЛЬНИЙ ДОДАТОК «TRAIN TOGETHER»  
Туранський С.І. (студент ФІТІС), Дяченко П.В., к.т.н, доц.  
Черкаський державний технологічний університет 
У доповіді розглядається питання створення мобільного додатку «Train 
Together», оскільки в сучасному світі цифрові технології активно інтегруються у всі 
сфери життя, включаючи спорт і фізичну активність. Зростаюча популярність 
здорового способу життя, активного дозвілля та соціальних мереж створює запит на 
нові інструменти для взаємодії між спортсменами. «Train Together» – це мобільний 
додаток, що поєднує функції соціальної мережі та сервісу для пошуку спортивних 
партнерів. Додаток дозволяє користувачам знаходити людей поблизу для спільних 
тренувань, обирати відповідні локації для занять, створювати спільноти, додавати 
друзів, а також ділитися мультимедійними матеріалами. Його головною перевагою є 
можливість об’єднувати спортсменів з різним рівнем підготовки та інтересами, 
сприяючи побудові дружніх зв’язків і мотивації до тренувань. Метою створення 
додатку «Train Together» є забезпечення зручної платформи для взаємодії 
спортсменів і популяризація активного способу життя. Додаток покликаний 
вирішити такі завдання як, надати можливість пошуку спортивних партнерів поблизу 
з урахуванням спільних інтересів, забезпечити інтерактивний доступ до мапи 
спортивних локацій, включаючи інформацію про їхню доступність і відгуки, 
створити платформу для соціальної взаємодії між спортсменами: додавання друзів, 
організація груп, обмін мультимедіа. Мобільний додаток створений з використанням 
сучасних вебтехнологій, що забезпечують його масштабованість та зручність у 
використанні. Запропоноване рішення допомагає підвищити рівень інтеграції таких 
сфер життя як фізкультура та спорт, а також покращити взаємодію між членами 
команди.