All checks were successful
- Add type query param to GET /accounts/:accountId/positions endpoint - Backend filters T-Bank portfolio positions by instrument type before pagination - Each instrument type (share, bond, etf, fund) has its own frontend table with independent cursor-based pagination and skeleton loading - Groups with no positions are automatically hidden - Cache key includes type for correct per-type caching - Remove centralized positions pagination state from BrokerAccountDetailPage - 94 backend tests / 112 frontend tests pass
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
- Frontend: http://localhost:80
- Backend: http://localhost:3000
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
Languages
TypeScript
97.7%
Shell
1.2%
JavaScript
0.9%
CSS
0.2%