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

Название Разработка backend-части мобильного приложения для разделения чеков: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта»
Авторы Полуэктов Яков Александрович
Научный руководитель Петров Александр Владимирович
Организация Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения Санкт-Петербург, 2025
Коллекция Выпускные квалификационные работы ; Общая коллекция
Тематика backend ; microservices ; go ; gin ; postgresql ; redis ; kafka ; docker ; swagger ; grpc ; oauth2 ; minio
Тип документа Выпускная квалификационная работа бакалавра
Тип файла PDF
Язык Русский
Уровень высшего образования Бакалавриат
Код специальности ФГОС 09.03.04
Группа специальностей ФГОС 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2025/vr/vr25-1524
Права доступа Доступ по паролю из сети Интернет (чтение, печать, копирование)
Дополнительно Новинка
Ключ записи ru\spstu\vkr\35841
Дата создания записи 30.07.2025

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

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

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

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

Целью работы являлась реализация серверной части мобильного приложения, предназначенного для автоматического распределения сумм по чекам между пользователями. В качестве архитектурного решения применён микросервисный подход, обеспечивающий независимость компонентов и возможность масштабирования. В процессе разработки была спроектирована и реализована система, включающая аутентификацию, обработку чеков, распределение платежей, а также взаимодействие между сервисами через очередь сообщений. Разработка велась на языке Go с использованием фреймворка Gin. Для хранения данных использовались СУБД PostgreSQL и Redis. Коммуникация между микросервисами была реализована с помощью Apache Kafka и gRPC. Авторизация пользователей обеспечивалась по протоколу OAuth 2.0. Для загрузки и хранения файлов чеков применялось объектное хранилище MinIO. REST API было описано с использованием стандарта OpenAPI (Swagger). Вся система была контейнеризирована с применением Docker и развернута с использованием Docker Compose. Работа включает обзор предметной области, обоснование выбора технических решений, описание проектирования архитектуры, реализацию и тестирование backend-части, а также описание этапов развёртывания.

The objective of this work was to develop the backend part of a mobile application designed for the automatic distribution of receipt amounts among users. A microservices architecture was chosen as the architectural solution, ensuring component independence and scalability. During the development process, a system was designed and implemented to include authentication, receipt processing, payment distribution, and inter-service communication through a message queue. The development was carried out using the Go programming language and the Gin framework. Data storage was managed using PostgreSQL and Redis databases. Communication between microservices was implemented via Apache Kafka and gRPC. User authorization was handled using the OAuth 2.0 protocol. For uploading and storing receipt files, the MinIO object storage was used. The REST API was described using the OpenAPI (Swagger) specification. The entire system was containerized with Docker and deployed using Docker Compose. The work includes an overview of the subject area, justification of the chosen technical solutions, architectural design, backend implementation and testing, as well as a description of the deployment stages.

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все
Прочитать Печать Загрузить
Интернет Авторизованные пользователи СПбПУ
Прочитать Печать Загрузить
Интернет Анонимные пользователи
  • Содержание
  • Введение
  • Глава 1. Обзор существующих решений
  • Глава 2. Обоснование выбора технологий и средств разработки
  • 2.1. Язык программирования Go
  • 2.2 Фреймворк Gin
  • 2.3. Реляционная база данных PostgreSQL
  • 2.4. Система хранения данных в памяти Redis
  • 2.5. Объектное хранилище MinIO
  • 2.6. Брокер сообщений Apache Kafka
  • 2.8. gRPC для межсервисного взаимодействия
  • 2.7. Swagger / OpenAPI для описания REST API
  • 2.8 Keycloack
  • 2.9. Система контроля версий и CI/CD: Git, GitLab
  • 2.10. Контейнеризация с использованием Docker и Docker Compose
  • 2.11 Логирование и мониторинг: Graylog, Prometheus и Grafana
  • 2.12 Обратный прокси и маршрутизация трафика: Nginx
  • Глава 3. Проектирование архитектуры приложения
  • 3.1 Микросервисная архитектура
  • 3.2. Общая структура и логика взаимодействия микросервисов
  • Глава 4. Реализация backend-части приложения
  • 4.1 Структура написания микросервисов
  • 4.2.2 CheckService
  • 4.2.3 UserDetailsService
  • 4.4. Реализация системы аутентификации и авторизации
  • 4.4.1 Конфигурация сервера KeyCloak
  • 4.4.2 Настройка Oauth2 авторизации через сторонних провайдеров
  • 4.5 Тестирование и покрытие реализованного функционала
  • 4.5.1 Модульное тестирование
  • Глава 5. Развертывание и эксплуатация приложения
  • 5.1. Подготовка Docker-контейнеров
  • 5.2. Подготовка Docker-Compose
  • 5.3. Мониторинг и логирование
  • 5.4. Автоматизация сборки и тестирования
  • Заключение
  • Список использованной литературы

Количество обращений: 0 
За последние 30 дней: 0

Подробная статистика