# biikash1/tradeforge architecture

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

- Interactive diagram: https://gitdiagram.com/biikash1/tradeforge
- Repository: https://github.com/biikash1/tradeforge

## Overview

TradeForge is a Spring Boot backend for cryptocurrency trading, portfolio tracking, wallets, and fiat payments; its React trading terminal is a separate repository. The principal workflow is a client request routed through REST controllers to domain services, which execute trades or financial operations and persist state. Authentication, market data, portfolio/watchlists, and payment processing are distinct product branches. Several services are represented by the tree and README but were not sampled, so their connections are marked unverified rather than asserted as inspected.

Main entry points: [`src/main/java/com/cryptotrading/controller/UserController.java`](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/controller/UserController.java) (User API), [`src/main/java/com/cryptotrading/service/PaymentService.java`](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/PaymentService.java) (Payment service), [`src/main/java/com/cryptotrading/service/CoinService.java`](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/CoinService.java) (Market data service), [`src/main/java/com/cryptotrading/service/OrderExecutionEngine.java`](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/OrderExecutionEngine.java) (Order execution engine)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and security"]
  node_auth_api["Authentication API"]
  node_user_api["User API"]
  node_user_service["User service<br/>[UserService.java]"]
  node_verification["OTP verification"]
  node_email["Email delivery<br/>[EmailService.java]"]
end

subgraph group_market["Market and portfolio"]
  node_market_api["Coin API"]
  node_coin_service["Market data service<br/>[CoinService.java]"]
  node_price_stream["Price streaming"]
  node_portfolio["Portfolio analytics"]
  node_watchlist["Watchlists"]
end

subgraph group_trading["Trading execution"]
  node_order_api["Order API"]
  node_order_service["Order service<br/>[OrderService.java]"]
  node_execution["Order execution engine"]
end

subgraph group_finance["Wallets and payments"]
  node_payment_api["Payment API"]
  node_payment_service["Payment service"]
  node_wallet_service["Wallet service<br/>[WalletService.java]"]
end

subgraph group_platform["Persistence and integrations"]
  node_user_store[("User records<br/>[User.java]")]
  node_verification_store[("Verification records")]
  node_coin_store[("Coin records<br/>[Coin.java]")]
  node_order_store[("Order records<br/>[Order.java]")]
  node_payment_store[("Payment orders<br/>[PaymentOrder.java]")]
  node_wallet_store[("Wallet ledger")]
end

node_client(("Trading client"))
node_payment_gateways{{"Razorpay and Stripe"}}

node_client -->|"authenticates"| node_auth_api
node_client -.->|"manages profile"| node_user_api
node_client -.->|"requests market data"| node_market_api
node_client -->|"places orders"| node_order_api
node_client -.->|"starts payment"| node_payment_api
node_auth_api -->|"saves users"| node_user_store
node_auth_api -->|"sends OTP"| node_email
node_user_api -->|"loads users"| node_user_service
node_user_api -->|"creates and verifies codes"| node_verification
node_user_api -->|"sends OTP"| node_email
node_verification -.->|"persists codes"| node_verification_store
node_market_api -->|"requests coins"| node_coin_service
node_coin_service -.->|"manages coin data"| node_coin_store
node_price_stream -->|"reads prices"| node_coin_service
node_client -.->|"views portfolio"| node_portfolio
node_client -.->|"manages watchlist"| node_watchlist
node_order_api -->|"submits orders"| node_order_service
node_execution -->|"loads pending orders"| node_order_store
node_execution -->|"fetches current price"| node_coin_service
node_execution -->|"dispatches execution"| node_order_service
node_order_service -.->|"persists orders"| node_order_store
node_payment_api -.->|"processes payments"| node_payment_service
node_payment_service -.->|"tracks payment orders"| node_payment_store
node_payment_service -->|"credits wallet"| node_wallet_service
node_wallet_service -.->|"records ledger entries"| node_wallet_store
node_payment_service -.->|"verifies payment"| node_payment_gateways

click node_auth_api "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/controller/AuthController.java"
click node_user_api "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/controller/UserController.java"
click node_user_service "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/UserService.java"
click node_verification "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/VerificationCodeService.java"
click node_email "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/EmailService.java"
click node_user_store "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/User.java"
click node_verification_store "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/VerificationCode.java"
click node_market_api "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/controller/CoinController.java"
click node_coin_service "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/CoinService.java"
click node_coin_store "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/Coin.java"
click node_price_stream "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/PriceStreamingService.java"
click node_portfolio "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/PortfolioServiceImpl.java"
click node_watchlist "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/WatchlistServiceImpl.java"
click node_order_api "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/controller/OrderController.java"
click node_order_service "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/OrderService.java"
click node_execution "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/OrderExecutionEngine.java"
click node_order_store "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/Order.java"
click node_payment_api "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/controller/PaymentController.java"
click node_payment_service "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/PaymentService.java"
click node_payment_store "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/PaymentOrder.java"
click node_wallet_service "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/WalletService.java"
click node_wallet_store "https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/WalletTransaction.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_auth_api,node_user_api,node_user_service,node_verification,node_email,node_client toneBlue
class node_market_api,node_coin_service,node_price_stream,node_portfolio,node_watchlist toneAmber
class node_order_api,node_order_service,node_execution toneMint
class node_payment_api,node_payment_service,node_wallet_service toneRose
class node_user_store,node_verification_store,node_coin_store,node_order_store,node_payment_store,node_wallet_store,node_payment_gateways toneIndigo
```

## Components

### Identity and security

- [Authentication API](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/controller/AuthController.java): `src/main/java/com/cryptotrading/controller/AuthController.java`
- [User API](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/controller/UserController.java): `src/main/java/com/cryptotrading/controller/UserController.java`
- [User service](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/UserService.java): `src/main/java/com/cryptotrading/service/UserService.java`
- [OTP verification](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/VerificationCodeService.java): `src/main/java/com/cryptotrading/service/VerificationCodeService.java`
- [Email delivery](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/EmailService.java): `src/main/java/com/cryptotrading/service/EmailService.java`

### Market and portfolio

- [Coin API](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/controller/CoinController.java): `src/main/java/com/cryptotrading/controller/CoinController.java`
- [Market data service](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/CoinService.java): `src/main/java/com/cryptotrading/service/CoinService.java`
- [Price streaming](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/PriceStreamingService.java): `src/main/java/com/cryptotrading/service/PriceStreamingService.java`
- [Portfolio analytics](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/PortfolioServiceImpl.java): `src/main/java/com/cryptotrading/service/PortfolioServiceImpl.java`
- [Watchlists](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/WatchlistServiceImpl.java): `src/main/java/com/cryptotrading/service/WatchlistServiceImpl.java`

### Trading execution

- [Order API](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/controller/OrderController.java): `src/main/java/com/cryptotrading/controller/OrderController.java`
- [Order service](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/OrderService.java): `src/main/java/com/cryptotrading/service/OrderService.java`
- [Order execution engine](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/OrderExecutionEngine.java): `src/main/java/com/cryptotrading/service/OrderExecutionEngine.java`

### Wallets and payments

- [Payment API](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/controller/PaymentController.java): `src/main/java/com/cryptotrading/controller/PaymentController.java`
- [Payment service](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/PaymentService.java): `src/main/java/com/cryptotrading/service/PaymentService.java`
- [Wallet service](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/service/WalletService.java): `src/main/java/com/cryptotrading/service/WalletService.java`

### Persistence and integrations

- [User records](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/User.java): `src/main/java/com/cryptotrading/model/User.java`
- [Verification records](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/VerificationCode.java): `src/main/java/com/cryptotrading/model/VerificationCode.java`
- [Coin records](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/Coin.java): `src/main/java/com/cryptotrading/model/Coin.java`
- [Order records](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/Order.java): `src/main/java/com/cryptotrading/model/Order.java`
- [Payment orders](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/PaymentOrder.java): `src/main/java/com/cryptotrading/model/PaymentOrder.java`
- [Wallet ledger](https://github.com/biikash1/tradeforge/blob/main/src/main/java/com/cryptotrading/model/WalletTransaction.java): `src/main/java/com/cryptotrading/model/WalletTransaction.java`

### Other components

- **Trading client**
- **Razorpay and Stripe**

## Connections

- Trading client → Authentication API: authenticates
- Trading client → User API: manages profile
- Trading client → Coin API: requests market data
- Trading client → Order API: places orders (evidence: `src/main/java/com/cryptotrading/controller/OrderController.java`)
- Trading client → Payment API: starts payment
- Authentication API → User records: saves users (evidence: `src/main/java/com/cryptotrading/controller/AuthController.java`)
- Authentication API → Email delivery: sends OTP (evidence: `src/main/java/com/cryptotrading/controller/AuthController.java`)
- User API → User service: loads users (evidence: `src/main/java/com/cryptotrading/controller/UserController.java`)
- User API → OTP verification: creates and verifies codes (evidence: `src/main/java/com/cryptotrading/controller/UserController.java`)
- User API → Email delivery: sends OTP (evidence: `src/main/java/com/cryptotrading/controller/UserController.java`)
- OTP verification → Verification records: persists codes (evidence: `src/main/java/com/cryptotrading/service/VerificationCodeService.java`)
- Coin API → Market data service: requests coins (evidence: `src/main/java/com/cryptotrading/controller/CoinController.java`)
- Market data service → Coin records: manages coin data (evidence: `src/main/java/com/cryptotrading/service/CoinService.java`)
- Price streaming → Market data service: reads prices (evidence: `src/main/java/com/cryptotrading/service/PriceStreamingService.java`)
- Trading client → Portfolio analytics: views portfolio
- Trading client → Watchlists: manages watchlist
- Order API → Order service: submits orders (evidence: `src/main/java/com/cryptotrading/controller/OrderController.java`)
- Order execution engine → Order records: loads pending orders (evidence: `src/main/java/com/cryptotrading/service/OrderExecutionEngine.java`)
- Order execution engine → Market data service: fetches current price (evidence: `src/main/java/com/cryptotrading/service/OrderExecutionEngine.java`)
- Order execution engine → Order service: dispatches execution (evidence: `src/main/java/com/cryptotrading/service/OrderExecutionEngine.java`)
- Order service → Order records: persists orders (evidence: `src/main/java/com/cryptotrading/service/OrderService.java`)
- Payment API → Payment service: processes payments (evidence: `src/main/java/com/cryptotrading/controller/PaymentController.java`)
- Payment service → Payment orders: tracks payment orders (evidence: `src/main/java/com/cryptotrading/service/PaymentService.java`)
- Payment service → Wallet service: credits wallet
- Wallet service → Wallet ledger: records ledger entries
- Payment service → Razorpay and Stripe: verifies payment
