# bodyakyryliuk/tradebit architecture

> Architecture diagram of the GitHub repository bodyakyryliuk/tradebit, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bodyakyryliuk/tradebit
- Repository: https://github.com/bodyakyryliuk/tradebit

## Overview

TradeBit is a cross-platform crypto-trading product: users authenticate, link Binance, inspect balances and market data, trade manually, or configure bots that execute trades and expose history and forecasts. The graph includes identity, trading, exchange, prediction, and notification capabilities documented in the README and represented in the tree. Client Dart sources and most implementation bodies were not provided, so several service-to-service links are omitted where their wiring cannot be confirmed.

Main entry points: [`server/bot-service/src/main/java/com/tradebit/controllers/BotController.java`](https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/controllers/BotController.java) (Bot service), [`server/binance-service/src/main/java/com/tradebit/controller/BinanceController.java`](https://github.com/bodyakyryliuk/tradebit/blob/main/server/binance-service/src/main/java/com/tradebit/controller/BinanceController.java) (Binance service), [`server/identity-service/src/main/java/com/tradebit/controller/AuthController.java`](https://github.com/bodyakyryliuk/tradebit/blob/main/server/identity-service/src/main/java/com/tradebit/controller/AuthController.java) (Identity service), [`client`](https://github.com/bodyakyryliuk/tradebit/tree/main/client) (Flutter client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Client"]
  node_mobile["Flutter client"]
end

subgraph group_identity["Identity"]
  node_gateway["API gateway"]
  node_tracking["Request tracking"]
  node_identity_service["Identity service"]
  node_keycloak["Keycloak"]
  node_identity_store[("User and token data")]
end

subgraph group_trading["Trading"]
  node_bot_service["Bot service<br/>[BotController.java]"]
  node_bot_engine["Bot execution"]
  node_manual_orders["Manual orders"]
  node_trade_history["Order history"]
  node_bot_store[("Bot and order data<br/>[BotRepository.java]")]
  node_prediction_service["Prediction service"]
  node_prediction_models["Prediction jobs<br/>[get_predictions.py]"]
end

subgraph group_exchange["Exchange"]
  node_binance_service["Binance service"]
  node_account_service["Account and wallet"]
  node_binance_api["Market data access"]
  node_binance_store[("Exchange account data")]
end

subgraph group_messaging["Messaging"]
  node_amqp_producer["Message producer"]
  node_queue["RabbitMQ"]
  node_email_consumer["Email consumer<br/>[EmailConsumer.java]"]
  node_email_sender["Email delivery"]
end

node_user(("User"))
node_binance["Binance API"]

node_user -->|"uses"| node_mobile
node_mobile -->|"REST requests"| node_gateway
node_gateway -->|"filters"| node_tracking
node_identity_service -->|"authenticates"| node_keycloak
node_identity_service -->|"reads and writes"| node_identity_store
node_bot_service -->|"manages"| node_bot_engine
node_bot_service -->|"handles"| node_manual_orders
node_bot_service -->|"serves forecasts"| node_prediction_service
node_bot_engine -->|"loads and saves"| node_bot_store
node_manual_orders -->|"records trades"| node_trade_history
node_prediction_models -.->|"supplies forecasts"| node_prediction_service
node_binance_service -->|"handles accounts"| node_account_service
node_binance_service -->|"fetches market data"| node_binance_api
node_account_service -->|"reads and writes"| node_binance_store
node_binance_api -->|"requests data"| node_binance
node_binance_service -->|"executes trades"| node_binance
node_amqp_producer -->|"publishes messages"| node_queue
node_queue -->|"delivers messages"| node_email_consumer
node_email_consumer -->|"requests delivery"| node_email_sender

click node_mobile "https://github.com/bodyakyryliuk/tradebit/tree/main/client"
click node_gateway "https://github.com/bodyakyryliuk/tradebit/blob/main/server/api-gateway/src/main/java/com/tradebit/ApiGatewayApplication.java"
click node_tracking "https://github.com/bodyakyryliuk/tradebit/blob/main/server/api-gateway/src/main/java/com/tradebit/filters/TrackingFilter.java"
click node_identity_service "https://github.com/bodyakyryliuk/tradebit/blob/main/server/identity-service/src/main/java/com/tradebit/controller/AuthController.java"
click node_identity_store "https://github.com/bodyakyryliuk/tradebit/blob/main/server/identity-service/src/main/java/com/tradebit/user/repositories/UserRepository.java"
click node_bot_service "https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/controllers/BotController.java"
click node_bot_engine "https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/services/bots/BotTradingServiceImpl.java"
click node_manual_orders "https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/controllers/BuyOrderController.java"
click node_trade_history "https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/services/orders/SellOrderServiceImpl.java"
click node_bot_store "https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/repositories/BotRepository.java"
click node_prediction_service "https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/services/predictions/PredictionServiceImpl.java"
click node_prediction_models "https://github.com/bodyakyryliuk/tradebit/blob/main/ai_predictions/get_predictions.py"
click node_binance_service "https://github.com/bodyakyryliuk/tradebit/blob/main/server/binance-service/src/main/java/com/tradebit/controller/BinanceController.java"
click node_account_service "https://github.com/bodyakyryliuk/tradebit/blob/main/server/binance-service/src/main/java/com/tradebit/controller/AccountController.java"
click node_binance_api "https://github.com/bodyakyryliuk/tradebit/blob/main/server/binance-service/src/main/java/com/tradebit/services/BinanceApiService.java"
click node_binance_store "https://github.com/bodyakyryliuk/tradebit/blob/main/server/binance-service/src/main/java/com/tradebit/repositories/BinanceAccountLinkRepository.java"
click node_amqp_producer "https://github.com/bodyakyryliuk/tradebit/blob/main/server/amqp/src/main/java/com/tradebit/RabbitMQMessageProducer.java"
click node_email_consumer "https://github.com/bodyakyryliuk/tradebit/blob/main/server/email/src/main/java/com/tradebit/rabbitmq/EmailConsumer.java"
click node_email_sender "https://github.com/bodyakyryliuk/tradebit/blob/main/server/email/src/main/java/com/tradebit/services/EmailServiceImpl.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_mobile,node_user toneBlue
class node_gateway,node_tracking,node_identity_service,node_keycloak,node_identity_store toneAmber
class node_bot_service,node_bot_engine,node_manual_orders,node_trade_history,node_bot_store,node_prediction_service,node_prediction_models,node_binance toneMint
class node_binance_service,node_account_service,node_binance_api,node_binance_store toneRose
class node_amqp_producer,node_queue,node_email_consumer,node_email_sender toneIndigo
```

## Components

### Client

- [Flutter client](https://github.com/bodyakyryliuk/tradebit/tree/main/client): `client`

### Identity

- [API gateway](https://github.com/bodyakyryliuk/tradebit/blob/main/server/api-gateway/src/main/java/com/tradebit/ApiGatewayApplication.java): `server/api-gateway/src/main/java/com/tradebit/ApiGatewayApplication.java`
- [Request tracking](https://github.com/bodyakyryliuk/tradebit/blob/main/server/api-gateway/src/main/java/com/tradebit/filters/TrackingFilter.java): `server/api-gateway/src/main/java/com/tradebit/filters/TrackingFilter.java`
- [Identity service](https://github.com/bodyakyryliuk/tradebit/blob/main/server/identity-service/src/main/java/com/tradebit/controller/AuthController.java): `server/identity-service/src/main/java/com/tradebit/controller/AuthController.java`
- **Keycloak**
- [User and token data](https://github.com/bodyakyryliuk/tradebit/blob/main/server/identity-service/src/main/java/com/tradebit/user/repositories/UserRepository.java): `server/identity-service/src/main/java/com/tradebit/user/repositories/UserRepository.java`

### Trading

- [Bot service](https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/controllers/BotController.java): `server/bot-service/src/main/java/com/tradebit/controllers/BotController.java`
- [Bot execution](https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/services/bots/BotTradingServiceImpl.java): `server/bot-service/src/main/java/com/tradebit/services/bots/BotTradingServiceImpl.java`
- [Manual orders](https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/controllers/BuyOrderController.java): `server/bot-service/src/main/java/com/tradebit/controllers/BuyOrderController.java`
- [Order history](https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/services/orders/SellOrderServiceImpl.java): `server/bot-service/src/main/java/com/tradebit/services/orders/SellOrderServiceImpl.java`
- [Bot and order data](https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/repositories/BotRepository.java): `server/bot-service/src/main/java/com/tradebit/repositories/BotRepository.java`
- [Prediction service](https://github.com/bodyakyryliuk/tradebit/blob/main/server/bot-service/src/main/java/com/tradebit/services/predictions/PredictionServiceImpl.java): `server/bot-service/src/main/java/com/tradebit/services/predictions/PredictionServiceImpl.java`
- [Prediction jobs](https://github.com/bodyakyryliuk/tradebit/blob/main/ai_predictions/get_predictions.py): `ai_predictions/get_predictions.py`

### Exchange

- [Binance service](https://github.com/bodyakyryliuk/tradebit/blob/main/server/binance-service/src/main/java/com/tradebit/controller/BinanceController.java): `server/binance-service/src/main/java/com/tradebit/controller/BinanceController.java`
- [Account and wallet](https://github.com/bodyakyryliuk/tradebit/blob/main/server/binance-service/src/main/java/com/tradebit/controller/AccountController.java): `server/binance-service/src/main/java/com/tradebit/controller/AccountController.java`
- [Market data access](https://github.com/bodyakyryliuk/tradebit/blob/main/server/binance-service/src/main/java/com/tradebit/services/BinanceApiService.java): `server/binance-service/src/main/java/com/tradebit/services/BinanceApiService.java`
- [Exchange account data](https://github.com/bodyakyryliuk/tradebit/blob/main/server/binance-service/src/main/java/com/tradebit/repositories/BinanceAccountLinkRepository.java): `server/binance-service/src/main/java/com/tradebit/repositories/BinanceAccountLinkRepository.java`

### Messaging

- [Message producer](https://github.com/bodyakyryliuk/tradebit/blob/main/server/amqp/src/main/java/com/tradebit/RabbitMQMessageProducer.java): `server/amqp/src/main/java/com/tradebit/RabbitMQMessageProducer.java`
- **RabbitMQ**
- [Email consumer](https://github.com/bodyakyryliuk/tradebit/blob/main/server/email/src/main/java/com/tradebit/rabbitmq/EmailConsumer.java): `server/email/src/main/java/com/tradebit/rabbitmq/EmailConsumer.java`
- [Email delivery](https://github.com/bodyakyryliuk/tradebit/blob/main/server/email/src/main/java/com/tradebit/services/EmailServiceImpl.java): `server/email/src/main/java/com/tradebit/services/EmailServiceImpl.java`

### Other components

- **User**
- **Binance API**

## Connections

- User → Flutter client: uses
- Flutter client → API gateway: REST requests
- API gateway → Request tracking: filters
- Identity service → Keycloak: authenticates
- Identity service → User and token data: reads and writes
- Bot service → Bot execution: manages
- Bot service → Manual orders: handles
- Bot service → Prediction service: serves forecasts
- Bot execution → Bot and order data: loads and saves
- Manual orders → Order history: records trades
- Prediction jobs → Prediction service: supplies forecasts
- Binance service → Account and wallet: handles accounts
- Binance service → Market data access: fetches market data
- Account and wallet → Exchange account data: reads and writes
- Market data access → Binance API: requests data
- Binance service → Binance API: executes trades
- Message producer → RabbitMQ: publishes messages
- RabbitMQ → Email consumer: delivers messages
- Email consumer → Email delivery: requests delivery
