# tushar5201/algo_trading_platform architecture

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

- Interactive diagram: https://gitdiagram.com/tushar5201/algo_trading_platform
- Repository: https://github.com/tushar5201/algo_trading_platform

## Overview

This is a full-stack algorithmic trading platform. Users and admins manage accounts, credentials, strategies, and trades through the React dashboard and Node API; scheduled or requested strategy jobs are queued for the Python worker, which gathers market data, generates signals, applies risk checks, and can place live broker orders. MongoDB stores platform and trading records, while Redis supports queues and session data. The README documents the overall service flow and capabilities; several internal connections below are therefore cited to it rather than to unsampled implementation.

Main entry points: [`python-engine/src/queue/worker.py`](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/queue/worker.py) (Async Job Worker), [`python-engine/src/execution/order_manager.py`](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/execution/order_manager.py) (Order Lifecycle), [`frontend/src/App.tsx`](https://github.com/tushar5201/algo_trading_platform/blob/main/frontend/src/App.tsx) (React Dashboard), [`python-engine/src/broker/kotak_neo.py`](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/broker/kotak_neo.py) (Kotak Neo Broker)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Dashboard"]
  node_webapp["React Dashboard<br/>[App.tsx]"]
  node_userpages["User Pages"]
  node_adminpages["Admin Pages"]
  node_authpages["Login / Signup"]
  node_api["API Client<br/>[client.ts]"]
end

subgraph group_backend["Platform API"]
  node_routes["API Routes"]
  node_controllers["API Controllers"]
  node_authservice["Authentication<br/>[auth.service.ts]"]
  node_scheduler["Job Scheduler<br/>[scheduler.ts]"]
  node_queues["BullMQ Queues<br/>[index.ts]"]
  node_queue_service["Queue Service<br/>[queue.service.ts]"]
end

subgraph group_execution["Trading Engine"]
  node_worker["Async Job Worker<br/>[worker.py]"]
  node_strategies["Strategy Registry<br/>[registry.py]"]
  node_signals["Trade Signals<br/>[signal.py]"]
  node_marketdata["Market Data<br/>[market_data.py]"]
  node_risk["Risk Checks<br/>[risk_manager.py]"]
  node_validator["Order Validation<br/>[validator.py]"]
  node_orders["Order Lifecycle<br/>[order_manager.py]"]
  node_sltp["SL / TP Monitor<br/>[sl_tp_monitor.py]"]
end

subgraph group_storage["State and Queue"]
  node_mongo[("MongoDB<br/>[mongo.py]")]
  node_redis[("Redis<br/>[redis_client.py]")]
end

subgraph group_broker["Broker Integration"]
  node_session["Broker Sessions<br/>[session_manager.py]"]
  node_kotak["Kotak Neo Broker<br/>[kotak_neo.py]"]
end

node_trader(("Trader / Admin"))
node_brokerapi{{"Kotak Neo API"}}

node_trader -->|"uses"| node_webapp
node_webapp -->|"routes to"| node_authpages
node_webapp -->|"routes to"| node_userpages
node_webapp -->|"routes to"| node_adminpages
node_userpages -->|"requests data"| node_api
node_adminpages -.->|"requests data"| node_api
node_api -->|"calls API"| node_routes
node_routes -->|"dispatches"| node_controllers
node_controllers -->|"uses"| node_authservice
node_controllers -->|"enqueues jobs"| node_queue_service
node_scheduler -->|"schedules jobs"| node_queues
node_queue_service -->|"adds jobs"| node_queues
node_queues -->|"delivers jobs"| node_worker
node_worker -->|"runs strategy"| node_strategies
node_worker -->|"initializes data"| node_marketdata
node_strategies -->|"emits signals"| node_signals
node_worker -->|"executes trades"| node_orders
node_orders -->|"validates"| node_validator
node_orders -->|"checks risk"| node_risk
node_orders -->|"places orders"| node_kotak
node_orders -->|"records trades"| node_mongo
node_sltp -.->|"monitors positions"| node_kotak
node_session -->|"authenticates"| node_kotak
node_session -->|"reads session state"| node_redis
node_session -->|"reads credentials"| node_mongo
node_kotak -->|"calls broker"| node_brokerapi
node_worker -->|"reads queue state"| node_redis
node_worker -->|"reads trade data"| node_mongo

click node_webapp "https://github.com/tushar5201/algo_trading_platform/blob/main/frontend/src/App.tsx"
click node_userpages "https://github.com/tushar5201/algo_trading_platform/tree/main/frontend/src/pages/user"
click node_adminpages "https://github.com/tushar5201/algo_trading_platform/tree/main/frontend/src/pages/admin"
click node_authpages "https://github.com/tushar5201/algo_trading_platform/tree/main/frontend/src/pages/auth"
click node_api "https://github.com/tushar5201/algo_trading_platform/blob/main/frontend/src/api/client.ts"
click node_routes "https://github.com/tushar5201/algo_trading_platform/tree/main/backend/src/routes"
click node_controllers "https://github.com/tushar5201/algo_trading_platform/tree/main/backend/src/controllers"
click node_authservice "https://github.com/tushar5201/algo_trading_platform/blob/main/backend/src/services/auth.service.ts"
click node_scheduler "https://github.com/tushar5201/algo_trading_platform/blob/main/backend/src/queues/scheduler.ts"
click node_queues "https://github.com/tushar5201/algo_trading_platform/blob/main/backend/src/queues/index.ts"
click node_queue_service "https://github.com/tushar5201/algo_trading_platform/blob/main/backend/src/services/queue.service.ts"
click node_worker "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/queue/worker.py"
click node_strategies "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/strategies/registry.py"
click node_signals "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/execution/signal.py"
click node_marketdata "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/utils/market_data.py"
click node_risk "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/execution/risk_manager.py"
click node_validator "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/execution/validator.py"
click node_orders "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/execution/order_manager.py"
click node_sltp "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/execution/sl_tp_monitor.py"
click node_session "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/broker/session_manager.py"
click node_kotak "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/broker/kotak_neo.py"
click node_mongo "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/db/mongo.py"
click node_redis "https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/db/redis_client.py"

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_webapp,node_userpages,node_adminpages,node_authpages,node_api toneBlue
class node_routes,node_controllers,node_authservice,node_scheduler,node_queues,node_queue_service toneAmber
class node_worker,node_strategies,node_signals,node_marketdata,node_risk,node_validator,node_orders,node_sltp,node_brokerapi toneMint
class node_mongo,node_redis toneRose
class node_session,node_kotak,node_trader toneIndigo
```

## Components

### Dashboard

- [React Dashboard](https://github.com/tushar5201/algo_trading_platform/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [User Pages](https://github.com/tushar5201/algo_trading_platform/tree/main/frontend/src/pages/user): `frontend/src/pages/user`
- [Admin Pages](https://github.com/tushar5201/algo_trading_platform/tree/main/frontend/src/pages/admin): `frontend/src/pages/admin`
- [Login / Signup](https://github.com/tushar5201/algo_trading_platform/tree/main/frontend/src/pages/auth): `frontend/src/pages/auth`
- [API Client](https://github.com/tushar5201/algo_trading_platform/blob/main/frontend/src/api/client.ts): `frontend/src/api/client.ts`

### Platform API

- [API Routes](https://github.com/tushar5201/algo_trading_platform/tree/main/backend/src/routes): `backend/src/routes`
- [API Controllers](https://github.com/tushar5201/algo_trading_platform/tree/main/backend/src/controllers): `backend/src/controllers`
- [Authentication](https://github.com/tushar5201/algo_trading_platform/blob/main/backend/src/services/auth.service.ts): `backend/src/services/auth.service.ts`
- [Job Scheduler](https://github.com/tushar5201/algo_trading_platform/blob/main/backend/src/queues/scheduler.ts): `backend/src/queues/scheduler.ts`
- [BullMQ Queues](https://github.com/tushar5201/algo_trading_platform/blob/main/backend/src/queues/index.ts): `backend/src/queues/index.ts`
- [Queue Service](https://github.com/tushar5201/algo_trading_platform/blob/main/backend/src/services/queue.service.ts): `backend/src/services/queue.service.ts`

### Trading Engine

- [Async Job Worker](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/queue/worker.py): `python-engine/src/queue/worker.py`
- [Strategy Registry](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/strategies/registry.py): `python-engine/src/strategies/registry.py`
- [Trade Signals](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/execution/signal.py): `python-engine/src/execution/signal.py`
- [Market Data](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/utils/market_data.py): `python-engine/src/utils/market_data.py`
- [Risk Checks](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/execution/risk_manager.py): `python-engine/src/execution/risk_manager.py`
- [Order Validation](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/execution/validator.py): `python-engine/src/execution/validator.py`
- [Order Lifecycle](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/execution/order_manager.py): `python-engine/src/execution/order_manager.py`
- [SL / TP Monitor](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/execution/sl_tp_monitor.py): `python-engine/src/execution/sl_tp_monitor.py`

### State and Queue

- [MongoDB](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/db/mongo.py): `python-engine/src/db/mongo.py`
- [Redis](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/db/redis_client.py): `python-engine/src/db/redis_client.py`

### Broker Integration

- [Broker Sessions](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/broker/session_manager.py): `python-engine/src/broker/session_manager.py`
- [Kotak Neo Broker](https://github.com/tushar5201/algo_trading_platform/blob/main/python-engine/src/broker/kotak_neo.py): `python-engine/src/broker/kotak_neo.py`

### Other components

- **Trader / Admin**
- **Kotak Neo API**

## Connections

- Trader / Admin → React Dashboard: uses
- React Dashboard → Login / Signup: routes to (evidence: `frontend/src/App.tsx`)
- React Dashboard → User Pages: routes to (evidence: `frontend/src/App.tsx`)
- React Dashboard → Admin Pages: routes to (evidence: `frontend/src/App.tsx`)
- User Pages → API Client: requests data (evidence: `frontend/src/pages/user/DashboardPage.tsx`)
- Admin Pages → API Client: requests data
- API Client → API Routes: calls API
- API Routes → API Controllers: dispatches (evidence: `backend/src/routes/admin.routes.ts`)
- API Controllers → Authentication: uses (evidence: `backend/src/controllers/auth.controller.ts`)
- API Controllers → Queue Service: enqueues jobs (evidence: `backend/src/controllers/admin.controller.ts`)
- Job Scheduler → BullMQ Queues: schedules jobs
- Queue Service → BullMQ Queues: adds jobs (evidence: `backend/src/services/queue.service.ts`)
- BullMQ Queues → Async Job Worker: delivers jobs
- Async Job Worker → Strategy Registry: runs strategy (evidence: `python-engine/src/queue/worker.py`)
- Async Job Worker → Market Data: initializes data (evidence: `python-engine/src/queue/worker.py`)
- Strategy Registry → Trade Signals: emits signals
- Async Job Worker → Order Lifecycle: executes trades (evidence: `python-engine/src/queue/worker.py`)
- Order Lifecycle → Order Validation: validates (evidence: `python-engine/src/execution/order_manager.py`)
- Order Lifecycle → Risk Checks: checks risk (evidence: `python-engine/src/execution/order_manager.py`)
- Order Lifecycle → Kotak Neo Broker: places orders (evidence: `python-engine/src/execution/order_manager.py`)
- Order Lifecycle → MongoDB: records trades (evidence: `python-engine/src/execution/order_manager.py`)
- SL / TP Monitor → Kotak Neo Broker: monitors positions
- Broker Sessions → Kotak Neo Broker: authenticates (evidence: `python-engine/src/broker/session_manager.py`)
- Broker Sessions → Redis: reads session state (evidence: `python-engine/src/broker/session_manager.py`)
- Broker Sessions → MongoDB: reads credentials (evidence: `python-engine/src/broker/session_manager.py`)
- Kotak Neo Broker → Kotak Neo API: calls broker
- Async Job Worker → Redis: reads queue state (evidence: `python-engine/src/queue/worker.py`)
- Async Job Worker → MongoDB: reads trade data (evidence: `python-engine/src/queue/worker.py`)
