Sergey Krylov feaff2103e perf(broker): parallel instrument name loading with per-service rate limit queues
- Split single p-queue (5 req/s) into 3 isolated queues:
  operations (5/s), instruments (20/s), users (5/s)
- Removed dead instruments param from mapBrokerPortfolio
- portfolio/positions endpoints share raw GetPortfolio cache
- Docs: T_BANK_INSTRUMENTS_RATE_LIMIT, CACHE_TBANK_POSITIONS_TTL,
  rate limiting section in tbank-invest.md
2026-06-18 06:34:55 +03:00
2026-06-15 21:04:24 +03:00

MoexVibe

Веб-приложение для анализа ценных бумаг Московской биржи (MOEX).

Tech Stack

  • Backend: NestJS, TypeScript, OpenAPI (Swagger)
  • Frontend: React, TypeScript, Vite, TanStack Query, lightweight-charts
  • Docs: Docusaurus
  • Infrastructure: Docker, docker-compose

Quick Start

# Install dependencies
npm install

# Start backend (http://localhost:3000)
npm run dev:backend

# Start frontend (http://localhost:5173)
npm run dev:frontend

Swagger UI: http://localhost:3000/api/docs

Docker

docker compose up --build

Tests

npm run test:backend
npm run test:frontend

Live MOEX integration checks are opt-in:

npm run test:integration -w apps/backend

Project Structure

apps/
  backend/     — NestJS API (single point of access to MOEX ISS)
  frontend/    — React SPA with Vite
  docs/        — Docusaurus documentation site
docs/
  superpowers/specs/ — accepted SDD specifications
Description
No description provided
Readme 9.1 MiB
Languages
TypeScript 97.7%
Shell 1.2%
JavaScript 0.9%
CSS 0.2%