Details

Title Разработка программного прототипа веб-приложения для знакомств на основе музыкальных предпочтений пользователей: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» = Development of the backend of a dating application based on the analysis of users music preferences
Creators Сакаоглу Джан Сарп
Scientific adviser Коликова Татьяна Всеволодовна
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2026
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects веб-приложение ; backend ; приложение для знакомств ; музыкальные предпочтения ; оценка совместимости ; модульный монолит ; Spring Modulith ; Spotify ; Last.fm ; WebSocket ; web application ; dating application ; music preferences ; compatibility scoring ; modular monolith
Document type Bachelor graduation qualification work
Language Russian
Level of education Bachelor
Speciality code (FGOS) 09.03.04
Speciality group (FGOS) 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2026/vr/vr26-5933
Rights Доступ по паролю из сети Интернет (чтение)
Additionally New arrival
Record key ru\spstu\vkr\42896
Record create date 8/21/2026

Allowed Actions

Action 'Прочитать' will be available if you login or access site from another network

Group Anonymous
Network Internet

Работа посвящена проектированию и частичной реализации серверной части приложения для знакомств, в котором музыкальные предпочтения пользователей используются как один из основных факторов совместимости. Актуальность темы связана с тем, что большинство существующих 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.

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