Учебный проект "Телеграмм-банк" в рамках учебного курса "GPB IT FACTORY". :shipit:

В данном репозитории представлен исходный код разрабатываемого проекта "Телеграмм-банк".


Содержание


Архитектура

Представленный проект состоит из 3 ключевых компонентов, подробнее рассмотренных ниже.

FRONTEND (Telegram-bot на Java)

В качестве пользовательского интерфейса для взаимодействия с приложением используется телеграмм-бот.

Расширяемый механизм команд основан на интерфейсе Command. Каждый класс, реализующий интерфейс - отдельный бин, занимающийся логикой обработки команды.

Описание главных классов:

1. Bot - главный класс с ботом;
2. BotInitializer - класс-инициализатор для бота;
3. Command - интерфейс команды, которую обслуживает бот;
4. PingCommand - класс, который обслуживает ответы на "/ping";
5. StartCommand - класс, который обслуживает ответы на "/start";
6. RegisterCommand - класс, который обслуживает ответы на "/register";
7. CommandHandler - класс, который занимается логикой определения команды и передачей управления обслуживающему команду классу.
8. MiddleServiceApi - feign-клиент, для взаимодействия с middle-service.
To be continued...

MIDDLE (Java-сервис)

Данный компонент занимается обработкой пользовательских запросов, валидацией, выполняет бизнес-логику, а также направляет запросы в BACKEND-компонент.

BACKEND (Java-сервис)

Данный компонент занимается основными операциями, такими как: обработка транзакций, хранение данных пользователя и т.п.


UML-диаграммы

Диаграмма компонентов

diagram_comp

Описание диаграммы

Передача сообщений между клиентом и сервисом происходит с помощью используемого в Telegram протокола передачи сообщений MTProto. Внутри сервиса взаимодействие между компонентами осуществляется по протоколу HTTP.

Диаграмма последовательности

diagram_seq

Описание диаграммы

На данной диаграмме изображен абстрактный сценарий работы клиента с сервисом. Клиент отправляет команду, сервис занимается ее обработкой и возвращает ответ.


COMING SOON

Данный файл будет расширяться в процессе разработки проекта. 🐸