# antonyrajancloud1/plutusai architecture

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

- Interactive diagram: https://gitdiagram.com/antonyrajancloud1/plutusai
- Repository: https://github.com/antonyrajancloud1/plutusai

## Overview

#### Purpose and Entry Points
This is a Django-based trading automation/control system (“Plutus AI”) with browser dashboards, manual-order workflows, strategy modules, and integrations for Angel One and Exness brokers. Primary process entry points are `manage.py`, `plutus/wsgi.py`, and `plutus/asgi.py`; route composition starts in `plutus/urls.py` and app routes in `plutusAI/urls.py`.

#### Web Application Boundary
The Django application exposes HTML-oriented operational interfaces through `plutusAI/views.py`, backed by templates such as `plutusAI/templates/dashboard.html` and `plutusAI/templates/manual.html`. Client-side dashboard and trading-console behavior is implemented under `static/js/ui/App.js` and `static/js/ui/utils/api.js`. This UI boundary should invoke server endpoints rather than broker SDKs directly.

#### Domain Persistence and Administration
Persistent Django domain state is defined in `plutusAI/models.py`, with schema history under `plutusAI/migrations/0001_initial.py`. The repository includes a local SQLite database, `db.sqlite3`, and a SQL dump, `madara_db.sql`, indicating development or deploy-time relational-state handling. Django admin registration resides in `plutusAI/admin.py`.

#### Broker Abstraction and Authentication
Broker connectivity is organized behind a shared broker layer in `plutusAI/server/broker/Broker.py`. Concrete implementations target Angel One (`plutusAI/server/broker/AngelOneBroker.py`) and Exness (`plutusAI/server/broker/exness/ExnessBroker.py`), with Angel One authentication isolated in `plutusAI/server/broker/AngelOne/AngelOneAuth.py`. Application-level Angel One orchestration appears in `plutusAI/server/AngelOneApp.py`; credential/session handling should remain contained within these broker/authentication boundaries.

#### Market Data and Trading Execution Flow
The likely operational flow is: browser/API action or automated strategy → server orchestration → broker abstraction → external broker order/market-data APIs. Real-time Angel One connectivity is separated in `plutusAI/server/websocket/WebsocketAngelOne.py`. Manual execution is handled by `plutusAI/server/manualOrder.py`, while automated price-action strategies are grouped in `plutusAI/server/priceAction/FlashTrade.py`, `plutusAI/server/priceAction/Scalper.py`, and `plutusAI/server/priceAction/hft.py`.

#### Strategy and Signal Components
Trading logic is decomposed into price-action and support/resistance modules rather than being embedded in Django views. Key strategy-stage modules include `plutusAI/server/priceAction/NSEPriceAction.py`, `plutusAI/server/priceAction/priceActionScalper.py`, and `plutusAI/server/supportResistance/AngelOneSR.py`. These components consume market/broker data and should produce decisions or orders through the broker interface, preserving a boundary between signal generation and execution.

#### Runtime and Deployment
The system supports conventional Django HTTP serving plus asynchronous/background execution via `plutus/celery.py`; ASGI support is available through `plutus/asgi.py`, relevant to websocket-capable deployments. Container deployment is defined by `Dockerfile`, with operational scripts `start_server.sh` and `stop_server.sh`. Dependencies are declared in `requirements.txt`; external material services are the Angel One and Exness broker platforms.

Main entry points: [`plutusAI/views.py`](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/views.py) (Operational views), [`plutusAI/server/broker/Broker.py`](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/broker/Broker.py) (Broker abstraction), [`plutusAI/server/broker/AngelOneBroker.py`](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/broker/AngelOneBroker.py) (Angel One broker), [`plutus/urls.py`](https://github.com/antonyrajancloud1/plutusai/blob/main/plutus/urls.py) (Route composition)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_django["Django application"]
  node_manage{{"Django CLI<br/>entry point<br/>[manage.py]"}}
  node_routes["Route composition<br/>URL routing<br/>[urls.py]"]
  node_app_routes["App routes<br/>URL routing<br/>[urls.py]"]
  node_views["Operational views<br/>Django views<br/>[views.py]"]
  node_models["Trading domain state<br/>Django models<br/>[models.py]"]
  node_admin["Django admin<br/>admin registration<br/>[admin.py]"]
  node_database[("Local relational state<br/>SQLite database<br/>[db.sqlite3]")]
end

subgraph group_ui["Browser UI"]
  node_dashboard_ui["Dashboard &amp; trading console<br/>browser UI<br/>[App.js]"]
  node_api_client["UI API client<br/>browser API layer<br/>[api.js]"]
end

subgraph group_trading["Trading services"]
  node_manual_orders["Manual order workflow<br/>execution service<br/>[manualOrder.py]"]
  node_angel_orchestrator["Angel One orchestration<br/>application service<br/>[AngelOneApp.py]"]
  node_strategies["Price-action strategies<br/>signal generation<br/>[FlashTrade.py]"]
  node_signal_analysis["Market signal analysis<br/>price action &amp; support/resistance<br/>[NSEPriceAction.py]"]
end

subgraph group_brokers["Broker integrations"]
  node_broker_interface["Broker abstraction<br/>broker interface<br/>[Broker.py]"]
  node_angel_broker["Angel One broker<br/>broker adapter<br/>[AngelOneBroker.py]"]
  node_angel_auth["Angel One authentication<br/>credential &amp; session handling<br/>[AngelOneAuth.py]"]
  node_exness_broker["Exness broker<br/>broker adapter<br/>[ExnessBroker.py]"]
  node_angel_websocket["Angel One market stream<br/>real-time market data"]
  node_broker_platforms(("Angel One &amp; Exness platforms<br/>external broker APIs"))
end

subgraph group_runtime["Runtime &amp; deployment"]
  node_celery["Background execution<br/>Celery runtime<br/>[celery.py]"]
  node_asgi{{"ASGI server entry<br/>async entry point<br/>[asgi.py]"}}
  node_container["Container deployment<br/>deployment definition"]
end

node_manage -->|"starts Django"| node_routes
node_asgi -->|"serves async HTTP"| node_routes
node_routes -->|"includes"| node_app_routes
node_app_routes -->|"dispatches"| node_views
node_dashboard_ui -->|"uses"| node_api_client
node_api_client -->|"calls endpoints"| node_views
node_views -->|"reads and writes"| node_models
node_models -->|"persists to"| node_database
node_admin -->|"administers"| node_models
node_views -->|"submits manual orders"| node_manual_orders
node_views -->|"invokes broker operations"| node_angel_orchestrator
node_celery -->|"runs automated work"| node_strategies
node_angel_websocket -->|"streams market data"| node_signal_analysis
node_signal_analysis -->|"feeds signals"| node_strategies
node_strategies -->|"sends decisions/orders"| node_broker_interface
node_manual_orders -->|"places orders"| node_broker_interface
node_angel_orchestrator -->|"uses"| node_angel_broker
node_broker_interface -->|"implemented by"| node_angel_broker
node_broker_interface -->|"implemented by"| node_exness_broker
node_angel_broker -->|"authenticates through"| node_angel_auth
node_angel_broker -->|"orders and data"| node_broker_platforms
node_exness_broker -->|"orders and data"| node_broker_platforms
node_angel_websocket -->|"market stream"| node_broker_platforms
node_container -.->|"deploys runtime"| node_asgi

click node_manage "https://github.com/antonyrajancloud1/plutusai/blob/main/manage.py"
click node_routes "https://github.com/antonyrajancloud1/plutusai/blob/main/plutus/urls.py"
click node_app_routes "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/urls.py"
click node_views "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/views.py"
click node_models "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/models.py"
click node_admin "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/admin.py"
click node_database "https://github.com/antonyrajancloud1/plutusai/blob/main/db.sqlite3"
click node_dashboard_ui "https://github.com/antonyrajancloud1/plutusai/blob/main/static/js/ui/App.js"
click node_api_client "https://github.com/antonyrajancloud1/plutusai/blob/main/static/js/ui/utils/api.js"
click node_manual_orders "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/manualOrder.py"
click node_angel_orchestrator "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/AngelOneApp.py"
click node_strategies "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/priceAction/FlashTrade.py"
click node_signal_analysis "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/priceAction/NSEPriceAction.py"
click node_broker_interface "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/broker/Broker.py"
click node_angel_broker "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/broker/AngelOneBroker.py"
click node_angel_auth "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/broker/AngelOne/AngelOneAuth.py"
click node_exness_broker "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/broker/exness/ExnessBroker.py"
click node_angel_websocket "https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/websocket/WebsocketAngelOne.py"
click node_celery "https://github.com/antonyrajancloud1/plutusai/blob/main/plutus/celery.py"
click node_asgi "https://github.com/antonyrajancloud1/plutusai/blob/main/plutus/asgi.py"
click node_container "https://github.com/antonyrajancloud1/plutusai/blob/main/Dockerfile"

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_manage,node_routes,node_app_routes,node_views,node_models,node_admin,node_database toneBlue
class node_dashboard_ui,node_api_client toneAmber
class node_manual_orders,node_angel_orchestrator,node_strategies,node_signal_analysis toneMint
class node_broker_interface,node_angel_broker,node_angel_auth,node_exness_broker,node_angel_websocket,node_broker_platforms toneRose
class node_celery,node_asgi,node_container toneIndigo
```

## Components

### Django application

- [Django CLI](https://github.com/antonyrajancloud1/plutusai/blob/main/manage.py): entry point · `manage.py`
- [Route composition](https://github.com/antonyrajancloud1/plutusai/blob/main/plutus/urls.py): URL routing · `plutus/urls.py`
- [App routes](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/urls.py): URL routing · `plutusAI/urls.py`
- [Operational views](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/views.py): Django views · Serves dashboard and manual-order endpoints. · `plutusAI/views.py`
- [Trading domain state](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/models.py): Django models · `plutusAI/models.py`
- [Django admin](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/admin.py): admin registration · `plutusAI/admin.py`
- [Local relational state](https://github.com/antonyrajancloud1/plutusai/blob/main/db.sqlite3): SQLite database · `db.sqlite3`

### Browser UI

- [Dashboard & trading console](https://github.com/antonyrajancloud1/plutusai/blob/main/static/js/ui/App.js): browser UI · HTML templates with client-side API behavior. · `static/js/ui/App.js`
- [UI API client](https://github.com/antonyrajancloud1/plutusai/blob/main/static/js/ui/utils/api.js): browser API layer · `static/js/ui/utils/api.js`

### Trading services

- [Manual order workflow](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/manualOrder.py): execution service · `plutusAI/server/manualOrder.py`
- [Angel One orchestration](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/AngelOneApp.py): application service · `plutusAI/server/AngelOneApp.py`
- [Price-action strategies](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/priceAction/FlashTrade.py): signal generation · Flash trade, scalper, and HFT strategy modules. · `plutusAI/server/priceAction/FlashTrade.py`
- [Market signal analysis](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/priceAction/NSEPriceAction.py): price action & support/resistance · Produces strategy inputs and decisions from market data. · `plutusAI/server/priceAction/NSEPriceAction.py`

### Broker integrations

- [Broker abstraction](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/broker/Broker.py): broker interface · `plutusAI/server/broker/Broker.py`
- [Angel One broker](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/broker/AngelOneBroker.py): broker adapter · `plutusAI/server/broker/AngelOneBroker.py`
- [Angel One authentication](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/broker/AngelOne/AngelOneAuth.py): credential & session handling · `plutusAI/server/broker/AngelOne/AngelOneAuth.py`
- [Exness broker](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/broker/exness/ExnessBroker.py): broker adapter · `plutusAI/server/broker/exness/ExnessBroker.py`
- [Angel One market stream](https://github.com/antonyrajancloud1/plutusai/blob/main/plutusAI/server/websocket/WebsocketAngelOne.py): real-time market data · `plutusAI/server/websocket/WebsocketAngelOne.py`
- **Angel One & Exness platforms**: external broker APIs

### Runtime & deployment

- [Background execution](https://github.com/antonyrajancloud1/plutusai/blob/main/plutus/celery.py): Celery runtime · `plutus/celery.py`
- [ASGI server entry](https://github.com/antonyrajancloud1/plutusai/blob/main/plutus/asgi.py): async entry point · `plutus/asgi.py`
- [Container deployment](https://github.com/antonyrajancloud1/plutusai/blob/main/Dockerfile): deployment definition · `Dockerfile`

## Connections

- Django CLI → Route composition: starts Django
- ASGI server entry → Route composition: serves async HTTP
- Route composition → App routes: includes
- App routes → Operational views: dispatches
- Dashboard & trading console → UI API client: uses
- UI API client → Operational views: calls endpoints
- Operational views → Trading domain state: reads and writes
- Trading domain state → Local relational state: persists to
- Django admin → Trading domain state: administers
- Operational views → Manual order workflow: submits manual orders
- Operational views → Angel One orchestration: invokes broker operations
- Background execution → Price-action strategies: runs automated work
- Angel One market stream → Market signal analysis: streams market data
- Market signal analysis → Price-action strategies: feeds signals
- Price-action strategies → Broker abstraction: sends decisions/orders
- Manual order workflow → Broker abstraction: places orders
- Angel One orchestration → Angel One broker: uses
- Broker abstraction → Angel One broker: implemented by
- Broker abstraction → Exness broker: implemented by
- Angel One broker → Angel One authentication: authenticates through
- Angel One broker → Angel One & Exness platforms: orders and data
- Exness broker → Angel One & Exness platforms: orders and data
- Angel One market stream → Angel One & Exness platforms: market stream
- Container deployment → ASGI server entry: deploys runtime
