# ashraful3ra/polytrade architecture

> Architecture diagram of the GitHub repository ashraful3ra/polytrade, 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/ashraful3ra/polytrade
- Repository: https://github.com/ashraful3ra/polytrade

## Overview

PolyTrade is a web dashboard for managing Binance USD-M futures accounts and trades. Users add encrypted exchange credentials, select symbols and trade settings, submit orders, then poll positions and ROI or close trades; they can also save and reuse settings templates. Flask routes orchestrate the browser-facing workflows, while Binance and database access are delegated to utility modules. The excerpts show these main paths, but not every route or template detail, so the graph omits uncertain wiring.

Main entry points: [`app.py`](https://github.com/ashraful3ra/polytrade/blob/main/app.py) (Flask routes), [`static/js/account.js`](https://github.com/ashraful3ra/polytrade/blob/main/static/js/account.js) (Account management), [`static/js/dashboard.js`](https://github.com/ashraful3ra/polytrade/blob/main/static/js/dashboard.js) (Trading dashboard), [`utils/db.py`](https://github.com/ashraful3ra/polytrade/blob/main/utils/db.py) (Database access)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_account_ui["Account management<br/>[account.js]"]
  node_dashboard_ui["Trading dashboard<br/>[dashboard.js]"]
  node_account_page["Account page<br/>[account.html]"]
  node_dashboard_page["Dashboard page<br/>[dashboard.html]"]
  node_login_page["Login page<br/>[login.html]"]
end

subgraph group_api["Flask application"]
  node_flask["Flask routes<br/>[app.py]"]
end

subgraph group_services["Runtime services"]
  node_db_helpers["Database access<br/>[db.py]"]
  node_crypto["Credential encryption<br/>[crypto.py]"]
  node_binance_client["Binance client<br/>[binance.py]"]
end

subgraph group_external["External systems"]
  node_mysql[("MySQL database")]
  node_binance["Binance Futures API"]
  node_sso["JWT identity provider"]
end

node_user(("User"))

node_user -->|"manages accounts"| node_account_ui
node_user -->|"trades"| node_dashboard_ui
node_flask -->|"renders"| node_account_page
node_flask -->|"renders"| node_dashboard_page
node_flask -->|"renders"| node_login_page
node_account_ui -->|"account requests"| node_flask
node_dashboard_ui -->|"trade requests"| node_flask
node_flask -->|"queries and writes"| node_db_helpers
node_db_helpers -->|"reads and writes"| node_mysql
node_flask -->|"encrypts credentials"| node_crypto
node_flask -->|"decrypts credentials"| node_crypto
node_flask -->|"calls exchange methods"| node_binance_client
node_binance_client -->|"REST requests"| node_binance
node_flask -.->|"validates JWT"| node_sso

click node_account_ui "https://github.com/ashraful3ra/polytrade/blob/main/static/js/account.js"
click node_dashboard_ui "https://github.com/ashraful3ra/polytrade/blob/main/static/js/dashboard.js"
click node_account_page "https://github.com/ashraful3ra/polytrade/blob/main/templates/account.html"
click node_dashboard_page "https://github.com/ashraful3ra/polytrade/blob/main/templates/dashboard.html"
click node_login_page "https://github.com/ashraful3ra/polytrade/blob/main/templates/login.html"
click node_flask "https://github.com/ashraful3ra/polytrade/blob/main/app.py"
click node_db_helpers "https://github.com/ashraful3ra/polytrade/blob/main/utils/db.py"
click node_crypto "https://github.com/ashraful3ra/polytrade/blob/main/utils/crypto.py"
click node_binance_client "https://github.com/ashraful3ra/polytrade/blob/main/utils/binance.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_account_ui,node_dashboard_ui,node_account_page,node_dashboard_page,node_login_page,node_user toneBlue
class node_flask toneAmber
class node_db_helpers,node_crypto,node_binance_client toneMint
class node_mysql,node_binance,node_sso toneRose
```

## Components

### Web interface

- [Account management](https://github.com/ashraful3ra/polytrade/blob/main/static/js/account.js): `static/js/account.js`
- [Trading dashboard](https://github.com/ashraful3ra/polytrade/blob/main/static/js/dashboard.js): `static/js/dashboard.js`
- [Account page](https://github.com/ashraful3ra/polytrade/blob/main/templates/account.html): `templates/account.html`
- [Dashboard page](https://github.com/ashraful3ra/polytrade/blob/main/templates/dashboard.html): `templates/dashboard.html`
- [Login page](https://github.com/ashraful3ra/polytrade/blob/main/templates/login.html): `templates/login.html`

### Flask application

- [Flask routes](https://github.com/ashraful3ra/polytrade/blob/main/app.py): `app.py`

### Runtime services

- [Database access](https://github.com/ashraful3ra/polytrade/blob/main/utils/db.py): `utils/db.py`
- [Credential encryption](https://github.com/ashraful3ra/polytrade/blob/main/utils/crypto.py): `utils/crypto.py`
- [Binance client](https://github.com/ashraful3ra/polytrade/blob/main/utils/binance.py): `utils/binance.py`

### External systems

- **MySQL database**
- **Binance Futures API**
- **JWT identity provider**

### Other components

- **User**

## Connections

- User → Account management: manages accounts
- User → Trading dashboard: trades
- Flask routes → Account page: renders
- Flask routes → Dashboard page: renders
- Flask routes → Login page: renders
- Account management → Flask routes: account requests
- Trading dashboard → Flask routes: trade requests
- Flask routes → Database access: queries and writes
- Database access → MySQL database: reads and writes
- Flask routes → Credential encryption: encrypts credentials
- Flask routes → Credential encryption: decrypts credentials
- Flask routes → Binance client: calls exchange methods
- Binance client → Binance Futures API: REST requests
- Flask routes → JWT identity provider: validates JWT
