Market Data Platform
Plataforma full-stack para ingesta, almacenamiento y visualización de datos financieros con asistente RAG local — sin coste de API externa.
Overview
Plataforma full-stack que cubre el ciclo completo del dato financiero: ingesta automatizada desde Yahoo Finance (diario e intraday 5min), almacenamiento estructurado en PostgreSQL 16, API REST y visualización en tiempo real con charts candlestick/line/mountain. Incluye un asistente RAG (Retrieval-Augmented Generation) ejecutado en local con Ollama y ChromaDB, con respuestas vía SSE streaming — sin dependencias de APIs de pago externas.
Arquitectura
La plataforma se compone de cuatro capas independientes:
- Ingesta: ETL automatizado con APScheduler — datos de stocks, índices y crypto desde Yahoo Finance (daily + intraday 5min). Workers async normalizan y persisten via SQLAlchemy 2.x + Alembic.
- API: FastAPI con validación Pydantic v2, autenticación JWT + bcrypt, documentación OpenAPI automática, structlog para observabilidad.
- Frontend: React 18 + Vite 5 · TanStack Query v5 para server state · ApexCharts (candlestick / line / mountain) · React Router v6 · Nginx en producción.
- RAG local: ChromaDB como vector store, Ollama (qwen2.5-coder:3b) para inferencia, ingesta de PDFs/docs, respuestas vía SSE streaming — sin llamadas a OpenAI/Anthropic.
- Observabilidad: dashboards Grafana conectados directamente a PostgreSQL para métricas operativas.
Stack técnico
Backend: FastAPI · SQLAlchemy 2.x · Alembic · Pydantic v2 · JWT + bcrypt · APScheduler · PostgreSQL 16 · structlog
Frontend: React 18 · Vite 5 · TanStack Query v5 · ApexCharts · React Router v6 · Nginx
AI / RAG: Ollama (qwen2.5-coder:3b) · ChromaDB · SSE streaming
DevOps: Docker Compose (prod + dev hot-reload) · GitHub Actions CI · Makefile · Grafana
Aspectos destacados
- CI/CD con GitHub Actions: lint + tests + build en cada PR (backend y frontend).
- Cobertura de tests ≥ 85% — unitarios + integración (pytest/httpx) · Vitest + React Testing Library · E2E con Playwright.
- Deploy local reproducible con un único
docker compose up. - RAG sin dependencias externas de pago — modelo local via Ollama con SSE streaming.
- Repository Pattern · Service Layer · SOLID aplicado en toda la capa backend.