VIZANIXSoftware · Automation · Design

ENGINEERING CASE · React · TypeScript · FastAPI

Trading Dashboard

A web control surface for trading systems: strategies, charts, backtest runs and an equity ledger, with a visual strategy editor.

The task: Replace SSH-and-config-files operations with an interface a non-developer can use safely, without giving that interface the ability to do something the risk rules forbid.

DELIVERY

What was built

  • React 18 + TypeScript on Vite, typed against the backend contract
  • Financial charting with a purpose-built charting library, not a generic plotting kit
  • Node-graph strategy editor so a rule set is visible as a diagram
  • FastAPI backend with strategy versioning, backtest runs and an equity ledger
  • Full RU/EN interface via i18next — not a machine translation layer
  • Playwright end-to-end tests covering the operator paths that touch money

EVIDENCE

Engineering measurements

8 475lines of typed frontend code
77frontend modules
15 853lines of backend code
18backend test modules
2fully separate interface languages

Figures describe software behaviour and come from the running system. Client identity, strategy parameters and financial results stay under NDA; the cover is a schematic, not a client screenshot.

THE HARD PART

What could not be hand-waved

A panel that can start and stop a live trading engine is a security boundary, not a convenience. Live updates make it worse: a stale position on screen is how an operator makes a decision that the data would not support.

THE RESPONSE

How the risk was addressed

Every state-changing action is versioned and written to an audit log with the actor attached. The frontend never computes risk locally — it renders what the backend asserts, so a stale tab shows stale data as stale rather than as truth.

START A PROJECT

Tell us what you want to build

A short description and one contact are enough. Do not send exchange keys, passwords or sensitive data.

Or contact us directly · @vx_ceo

Add an email or Telegram handle — at least one is required.