Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал:
http://elartu.tntu.edu.ua/handle/lib/53483| Title: | Розробка кросплатформного мобільного додатку обміну порадами з використанням ШІ-модерації контенту |
| Other Titles: | Development of a Cross-Platform Mobile Application for Anonymous Advice Sharing with Artificial Intelligence content moderation |
| Authors: | Петров, Юрій Сергійович Petrov, Yurii |
| Affiliation: | ТНТУ ім. І. Пулюя, Факультет комп’ютерно-інформаційних систем і програмної інженерії, Кафедра програмної інженерії, м. Тернопіль, Україна |
| Bibliographic reference (2015): | Петров Ю. С. Розробка кросплатформного мобільного додатку обміну порадами з використанням ШІ-модерації контенту : робота на здобуття кваліфікаційного ступеня бакалавра : 121 - інженерія програмного забезпечення / наук. кер. М. В. Бачинський. Тернопіль : Тернопільський національний технічний університет імені Івана Пулюя, 2026. 63 с. |
| Issue Date: | Jun-2026 |
| Date of entry: | 15-Jul-2026 |
| Country (code): | UA |
| Place of the edition/event: | ТНТУ ім. І.Пулюя, ФІС, м. Тернопіль, Україна |
| Supervisor: | Бачинський, Михайло Володимирович |
| UDC: | 004.9 |
| Keywords: | Flutter FastAPI Firebase BLoC NLP рекомендаційна система мобільний застосунок модерація контенту recommendation system mobile application content moderation |
| Number of pages: | 63 |
| Abstract: | Метою роботи є проектування та розробка розподіленої системи, що
складається з мобільного клієнта, серверної частини та підсистеми штучного
інтелекту, і реалізує платформу для обміну текстовими порадами між
користувачами з автоматичною модерацією та персоналізацією контенту.
У роботі спроектовано трирівневу клієнт-серверну архітектуру: мобільний
застосунок на Flutter із патерном BLoC та локальним кешуванням Hive; серверна
частина на FastAPI з розгортанням на Google Cloud Run із підтримкою Firebase
Authentication, Cloud Firestore та RevenueCat; підсистема штучного інтелекту на
BentoML, що включає сервіс визначення токсичності та NLP-сервіс із fine-tuned
моделлю DistilBERT для класифікації тематики публікацій за 5 категоріями. Для
персоналізованих рекомендацій реалізовано алгоритм пошуку на основі 768-
вимірних векторів із зберіганням у базі даних Qdrant. The aim of the work is to design and develop a distributed system consisting of a mobile client, a server-side component, and an artificial intelligence subsystem, implementing a platform for sharing text-based advice between users with automatic moderation and content personalization. The work presents a three-tier client-server architecture: a Flutter mobile application utilizing the BLoC pattern and local caching via Hive; a FastAPI backend deployed on Google Cloud Run with support for Firebase Authentication, Cloud Firestore, and RevenueCat; an artificial intelligence subsystem built on BentoML, comprising a toxicity detection service and an NLP service with a fine-tuned DistilBERT model for classifying post topics into 5 categories. For personalized recommendations, a similarity search algorithm based on 768-dimensional vectors stored in a Qdrant database was implemented. |
| Content: | ВСТУП.............................................................................................................................. 6 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ОГЛЯД ІСНУЮЧИХ РІШЕНЬ................ 8 1.1 Характеристика предметної області та постановка задачі ................................ 8 1.2 Огляд існуючих рішень та аналіз конкурентів ................................................... 9 1.3 Обґрунтування вибору технологічного стеку................................................... 11 1.4 Вимоги до системи .............................................................................................. 12 2 ПРОЕКТУВАННЯ АРХІТЕКТУРИ СИСТЕМИ .................................................... 15 2.1 Загальна архітектура клієнт-серверної системи ............................................... 15 2.2 Варіанти використання........................................................................................ 17 2.3 Ключові сценарії.................................................................................................. 18 2.4 Модель даних ....................................................................................................... 21 3 РОЗРОБКА МОБІЛЬНОГО КЛІЄНТУ .................................................................... 23 3.1 Архітектура Flutter-додатку та патерн BLoC.................................................... 23 3.2 Система навігації та маршрутизації................................................................... 24 3.3 Ін'єкція залежностей та репозиторний патерн.................................................. 25 3.4 Локальне кешування даних................................................................................. 27 3.5 Інтеграція з Firebase Authentication.................................................................... 28 3.6 Система підписок RevenueCat ............................................................................ 29 4 РОЗРОБКА СЕРВЕРНОЇ ЧАСТИНИ....................................................................... 30 4.1 REST API на основі FastAPI ............................................................................... 30 4.2 Робота з Firebase Firestore ................................................................................... 32 4.3 Інтеграція NLP-сервісу модерації контенту...................................................... 33 4.5 Обробка вебхуків RevenueCat............................................................................. 34 4.6 Векторна база даних Qdrant................................................................................ 35 5 ШІ КОМПОНЕНТИ СИСТЕМИ .............................................................................. 36 5.1 Архітектура NLP-сервісу на BentoML............................................................... 36 5.2 Fine-tuning моделі DistilBERT для визначення тематики порад..................... 38 5.3 Алгоритм векторних рекомендацій ................................................................... 40 6 РОЗГОРТАННЯ СИСТЕМИ..................................................................................... 44 6.1 Розгортання серверної частини на Google Cloud ............................................. 44 6.2 Налаштування Firebase та хмарної інфраструктури ........................................ 47 6.3 Публікація та тестування додатку...................................................................... 497 БЕЗПЕКА ЖИТТЄДІЯЛЬНОСТІ, ОСНОВИ ОХОРОНИ ПРАЦІ ........................ 51 7.1 Психологічні чинники небезпеки....................................................................... 51 7.2 Вимоги до профілактичних медичних оглядів для працівників ПК .............. 54 |
| URI: | http://elartu.tntu.edu.ua/handle/lib/53483 |
| Copyright owner: | © Петров Юрій Сергійович, 2026 |
| References (Ukraine): | 1. Михалик Д.М. Методичні вказівки до виконання кваліфікаційної роботи бакалавра для здобувачів першого (бакалаврського) рівня вищої освіти за освітньопрофесійною програмою «Інженерія програмного забезпечення» спеціальності 121 – «Інженерія програмного забезпечення» всіх форм навчання. – Тернопіль : ТНТУ ім. І. Пулюя, 2024. – 45 с. 2. Flutter documentation. – URL: https://docs.flutter.dev (дата звернення: 10.05.2025). 3. FastAPI documentation. – URL: https://fastapi.tiangolo.com (дата звернення: 10.05.2025). 4. Firebase documentation. – URL: https://firebase.google.com/docs (дата звернення: 10.05.2025). 5. Sanh V., Debut L., Chaumond J., Wolf T. DistilBERT, a distilled version of BERT. – 2019. – URL: https://arxiv.org/abs/1910.01108. 6. BentoML documentation. – URL: https://docs.bentoml.com (дата звернення: 10.05.2025). 7. Qdrant vector database documentation. – URL: https://qdrant.tech/documentation (дата звернення: 10.05.2025). 8. RevenueCat documentation. – URL: https://docs.revenuecat.com (дата звернення: 10.05.2025). 9. Google Cloud Run documentation. – URL: https://cloud.google.com/run/docs (дата звернення: 10.05.2025). 10. Detoxify library. – URL: https://github.com/unitaryai/detoxify (дата звернення: 10.05.2025). 11. Devlin J. et al. BERT: Pre-training of Deep Bidirectional Transformers. – 2018. – URL: https://arxiv.org/abs/1810.04805. 12. Reimers N., Gurevych I. Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks. – 2019. – URL: https://arxiv.org/abs/1908.10084. 13. Hive database for Flutter. – URL: https://docs.hivedb.dev (дата звернення: 10.05.2025). 14. go_router package. – URL: https://pub.dev/packages/go_router (дата звернення: 10.05.2025). 15. Kocienda K. et al. Bloc Library for Flutter. – URL: https://bloclibrary.dev (дата звернення: 10.05.2025). |
| Content type: | Bachelor Thesis |
| Appears in Collections: | 121 — Інженерія програмного забезпечення, F2 Інженерія програмного забезпечення (бакалаври) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| dyplom_Petrov_Y_2026.pdf | 1,74 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Інструменти адміністратора