Детальная информация

Название Разработка программного прототипа веб-приложения для знакомств на основе музыкальных предпочтений пользователей: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» = Development of the backend of a dating application based on the analysis of users music preferences
Авторы Сакаоглу Джан Сарп
Научный руководитель Коликова Татьяна Всеволодовна
Организация Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения Санкт-Петербург, 2026
Коллекция Выпускные квалификационные работы ; Общая коллекция
Тематика веб-приложение ; backend ; приложение для знакомств ; музыкальные предпочтения ; оценка совместимости ; модульный монолит ; Spring Modulith ; Spotify ; Last.fm ; WebSocket ; web application ; dating application ; music preferences ; compatibility scoring ; modular monolith
Тип документа Выпускная квалификационная работа бакалавра
Язык Русский
Уровень высшего образования Бакалавриат
Код специальности ФГОС 09.03.04
Группа специальностей ФГОС 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2026/vr/vr26-5933
Права доступа Доступ по паролю из сети Интернет (чтение)
Дополнительно Новинка
Ключ записи ru\spstu\vkr\42896
Дата создания записи 21.08.2026

Разрешенные действия

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа Анонимные пользователи
Сеть Интернет

Работа посвящена проектированию и частичной реализации серверной части приложения для знакомств, в котором музыкальные предпочтения пользователей используются как один из основных факторов совместимости. Актуальность темы связана с тем, что большинство существующих dating-сервисов опирается преимущественно на визуальное восприятие, географическую близость и историю реакций, тогда как долгосрочные интересы пользователя используются ограниченно. В ходе работы был выполнен анализ предметной области, рассмотрены существующие приложения для знакомств, музыкальные сервисы и подходы к вычислению сходства пользовательских профилей. Серверная часть спроектирована как модульный монолит на основе Spring Modulith. В системе выделены модули управления пользователями, модуль первичной настройки пользователя, музыкального профиля, подбора кандидатов, совпадений, интеграций и чата. Для хранения транзакционных данных используется PostgreSQL, для сообщений чата — Apache Cassandra, для поддержки присутствия и межэкземплярных событий — Redis. Ключевым результатом является алгоритм оценки совместимости пользователей на основе взвешенного косинусного сходства музыкальных векторов. Алгоритм учитывает совпадения по исполнителям и жанрам, при этом предпочтения исполнителей рассматриваются как более информативный признак музыкальной идентичности. Также реализованы интеграции со Spotify и Last.fm, REST API, WebSocket-механизмы обмена сообщениями, обработка пользовательских реакций и создание совпадений. Практическая значимость работы заключается в демонстрации возможности использовать музыкальный профиль не только как элемент анкеты, но и как интерпретируемое основание для персонализации подбора пользователей. Полученный прототип показывает, что такой подход может быть реализован в контролируемой backend-архитектуре без преждевременного перехода к микросервисной декомпозиции.

The work is devoted to the design and partial implementation of the backend of a dating application in which users’ music preferences are used as one of the main compatibility factors. The relevance of the topic is determined by the fact that most existing dating services rely mainly on visual impression, geographical proximity, and reaction history, while long-term user interests are used only to a limited extent. The study includes an analysis of the domain, existing dating applications, music services, and approaches to comparing user profiles. The backend is designed as a modular monolith based on Spring Modulith. The system includes modules for user management, onboarding, music profile processing, candidate discovery, matches, integrations, and chat. PostgreSQL is used for transactional data, Apache Cassandra is used for chat messages, and Redis is used for presence tracking and cross-instance chat events. The key result of the work is a compatibility scoring algorithm based on weighted cosine similarity of music preference vectors. The algorithm compares artists and genres, while artist preferences are treated as a more informative indicator of a user’s musical identity. The prototype also includes integrations with Spotify and Last.fm, REST API endpoints, WebSocket messaging, user reactions, and match creation. The practical value of the work lies in showing that a music profile can be used not only as an additional profile field, but also as an interpretable basis for personalized candidate selection. The developed prototype demonstrates that this approach can be implemented within a controlled backend architecture without premature transition to a microservice-based design.

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все
Прочитать
Интернет Авторизованные пользователи СПбПУ
Прочитать
Интернет Анонимные пользователи
  • ОПРЕДЕЛЕНИЯ, ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ
  • ВВЕДЕНИЕ
  • ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И СУЩЕСТВУЮЩИХ РЕШЕНИЙ
    • Анализ предметной области
    • Обзор существующих решений
      • Критерии сравнения
    • Выводы
  • ГЛАВА 2. ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ СЕРВЕРНОЙ ЧАСТИ ПРИЛОЖЕНИЯ
    • Обоснование выбора архитектурного подхода
    • Модульная структура приложения
    • Проектирование модели данных
    • Алгоритм оценки совместимости пользователей
    • Интеграция с музыкальными сервисами
      • Интеграция со Spotify
      • Интеграция с Last.fm
    • Обоснование выбора технологий
  • ГЛАВА 3. ТЕСТИРОВАНИЕ И ОЦЕНКА РЕЗУЛЬТАТОВ
    • Проверка работоспособности серверной части
    • Автоматизированное тестирование и покрытие кода
      • Unit-тестирование с использованием JUnit и Mockito
      • Интеграционный тест Spring Boot
      • Отчёт JaCoCo о покрытии кода
      • Проверка модульной архитектуры Spring Modulith
    • Нагрузочное тестирование API
    • Оценка качества разработанного решения
      • Количественная оценка алгоритма совместимости
    • Результаты проверки серверной части приложения
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • Приложение А. Описание основных endpoint-ов серверной части приложения
...