/protasov-telegram-bot

Мини-Банк - проект, разработанный в рамках бэкенд-академии GPB IT FACTORY 2024.

Primary LanguageJava

Мини-Банк

Проект "Мини-Банк" разрабатывается в рамках бэкенд-академии 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

Компоненты системы

  1. Frontend (Telegram-бот)

    • Выступает как клиентское приложение.
    • Инициирует запросы пользователей.
  2. Middle-слой (Java/Kotlin-сервис)

    • Принимает запросы от Telegram-бота.
    • Выполняет валидацию и маршрутизацию запросов.
  3. Backend (Java/Kotlin-сервис)

    • Обрабатывает банковские транзакции.
    • Хранит клиентские данные.

Доступные операции

  1. /register - регистрация в приложении банка;
  2. /createaccount - открытие счёта;
  3. /currentbalance - проверка баланса;
  4. /transfer [пользователь] [сумма] - перевод средств.

Стек технологий

Платформы

  • Java Spring Boot версия 3.3.0
  • Gradle версия 8.7
  • JDK версия 21.0.3

Интерфейс

  • java-telegram-bot-api

База данных

  • PostgreSQL

Запуск проекта

Linux/MacOS:

  1. Клонирование репозитория:
$ git clone https://github.com/gpb-it-factory/protasov-telegram-bot.git
$ cd protasov-telegram-bot
Запуск через Docker
  1. Сборка Docker образа:
$ docker build -t minibank .
  1. Запуск контейнера:
docker run -d --name run-minibank -e bot_token="твой_bot_token" minibank
Запуск через Gradle
  1. Настройка параметров бота:
$ export bot_token="твой_bot_token"
  1. Запуск приложения:
$ ./gradlew bootRun

Материалы и ресурсы