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 | |
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 |
|
Internet | Authorized users SPbPU |
|
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