Telegram-бот "Мини-банка" - это фронтенд-часть приложения разрабатываемого в рамках программы GPB IT Factory Backend 2024. Бот инициирует запросы пользователей в Middle-слой, где происходит их дальнейшая обработка.
- Локальный запуск
- Запуск в Docker
- Как использовать
- Демо-видео работы приложения
- Архитектура системы
- Интеграции
- Получить API-токен с помощью Telegram-бота @BotFather (подробно данный процесс описан в документации)
- Клонировать репозиторий
git clone git@github.com:gpb-it-factory/gladskoy-telegram-bot.git
- Перейти в директорию с проектом
cd gladskoy-telegram-bot
- Запустить приложение (
telegram_bot_name
будет создано при получении API-токена)BOT_NAME={telegram_bot_name} \ BOT_TOKEN={telegram_bot_token} \ ./gradlew bootRun
- Найти в Telegram бота по имени
@{telegram_bot_name}
(пример@GpbITFactoryGladskoyTelegramBot
)
- Создать общую сеть, если этого не было сделано ранее
docker network create mini-bank-net
- Выполнить скрипт, заменив значения переменных (<...>) корректными значениями
docker run --network mini-bank-net \ --name telegram-bot \ --env MIDDLE_SERVICE_URL=<middle_hostname> \ --env BOT_NAME=<bot_name> \ --env BOT_TOKEN=<bot_token> \ -dp 8088:8088 \ saneci/mini-bank-telegram-bot:<tag>
Актуальные теги тут: https://github.com/gpb-it-factory/gladskoy-telegram-bot/tags, указывать без префикса v
/start
- точка входа в приложение, запускает бота/register
- первичное оформление пользователя/createaccount
- открытие счёта в Мини-банке, в данный момент у клиента может быть только один счёт/currentbalance
- получение текущего баланса открытого пользователем счёта/transfer toUserName amount
- перевод средств между счетами пользователей
demo.mp4
@startuml architecture
skinparam sequenceMessageAlign center
skinparam ParticipantPadding 20
participant Client
participant TelegramBot
participant MiddleService
participant BackendService
Client -> TelegramBot: HTTP request
activate TelegramBot
TelegramBot -> MiddleService: HTTP request
activate MiddleService
MiddleService -> MiddleService: Business logic
MiddleService -> BackendService: Request
activate BackendService
BackendService --> MiddleService: Response
deactivate BackendService
MiddleService --> TelegramBot: HTTP response
deactivate MiddleService
TelegramBot --> Client: HTTP response
deactivate TelegramBot
@enduml
- Middle Service
- Backend Service // TBD