Volver a proyectos

Market Data Platform

Plataforma full-stack para ingesta, almacenamiento y visualización de datos financieros con asistente RAG local — sin coste de API externa.

FastAPIPostgreSQLReactDockerGitHub ActionsSQLAlchemyPydanticOllamaChromaDBGrafanaAlembicViteTanStack QueryVitestPlaywright

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.