Проект "Мини-Банк" разрабатывается в рамках бэкенд-академии GPB IT FACTORY 2024. Проект включает в себя создание системы, состоящей из трёх компонентов: frontend (Telegram-бот), middle-слоя и backend.
Посмотреть код PlantUML
@startuml
actor User as "Client"
participant "Frontend" as Frontend
participant "Middle" as Middle
participant "Backend" as Backend
User -> Frontend : Инициирует запрос
activate Frontend
Frontend -> Middle : Передать запрос
activate Middle
Middle -> Backend : Обработать запрос
activate Backend
Backend -> Middle : Ответ
deactivate Backend
Middle -> Frontend : Ответ
deactivate Middle
Frontend -> User : Ответ пользователю
deactivate Frontend
@enduml
-
Frontend (Telegram-бот)
- Выступает как клиентское приложение.
- Инициирует запросы пользователей.
-
Middle-слой (Java/Kotlin-сервис)
- Принимает запросы от Telegram-бота.
- Выполняет валидацию и маршрутизацию запросов.
-
Backend (Java/Kotlin-сервис)
- Обрабатывает банковские транзакции.
- Хранит клиентские данные.
- /register - регистрация в приложении банка;
- /createaccount - открытие счёта;
- /currentbalance - проверка баланса;
- /transfer [пользователь] [сумма] - перевод средств.
- Java Spring Boot версия 3.3.0
- Gradle версия 8.7
- JDK версия 21.0.3
- java-telegram-bot-api
- PostgreSQL
Linux/MacOS:
- Клонирование репозитория:
$ git clone https://github.com/gpb-it-factory/protasov-telegram-bot.git
$ cd protasov-telegram-bot
Запуск через Docker
- Сборка Docker образа:
$ docker build -t minibank .
- Запуск контейнера:
docker run -d --name run-minibank -e bot_token="твой_bot_token" minibank
Запуск через Gradle
- Настройка параметров бота:
$ export bot_token="твой_bot_token"
- Запуск приложения:
$ ./gradlew bootRun