Details

Title Разработка backend-части мобильного приложения для разделения чеков: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта»
Creators Полуэктов Яков Александрович
Scientific adviser Петров Александр Владимирович
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2025
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects backend ; microservices ; go ; gin ; postgresql ; redis ; kafka ; docker ; swagger ; grpc ; oauth2 ; minio
Document type Bachelor graduation qualification work
File type PDF
Language Russian
Level of education Bachelor
Speciality code (FGOS) 09.03.04
Speciality group (FGOS) 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2025/vr/vr25-1524
Rights Доступ по паролю из сети Интернет (чтение, печать, копирование)
Additionally New arrival
Record key ru\spstu\vkr\35841
Record create date 7/30/2025

Allowed Actions

Action 'Read' will be available if you login or access site from another network

Action 'Download' will be available if you login or access site from another network

Group Anonymous
Network Internet

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

Network User group Action
ILC SPbPU Local Network All
Read Print Download
Internet Authorized users SPbPU
Read Print Download
Internet Anonymous
  • Содержание
  • Введение
  • Глава 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. Автоматизация сборки и тестирования
  • Заключение
  • Список использованной литературы

Access count: 0 
Last 30 days: 0

Detailed usage statistics