Skip to content

SReateguiUtec/FinTrendAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FinTrend Icon

FinTrend AI


React Flask Spring Boot Express.js MySQL Postgres MongoDB Docker AWS CloudFormation AWS S3 AWS Glue AWS Athena AWS Amplify OpenRouter Groq Yahoo Finance Finnhub NewsAPI

FinTrend es una plataforma basada en arquitectura de microservicios diseñada para la gestión de portafolios, análisis de mercado, historial de precios y orquestación de señales de inversión (trading insights) utilizando Inteligencia Artificial (LLMs). El proyecto utiliza un enfoque políglota, combinando diferentes lenguajes de programación y bases de datos especializadas para cada dominio.

Repositorios de Microservicios

Microservicio Descripción Repositorio
MS1 - Gestión de Portafolio Gestión de perfiles y portafolios de inversión MS1
MS2 - Historial de Precios Datos históricos de precios de activos financieros MS2
MS3 - Feed de Noticias Consumo y almacenamiento de noticias del mercado MS3
MS4 - Orquestador de Señales Generación de señales e insights con IA (LLMs) MS4
MS5 - Analítica de Mercado Análisis de datos a gran escala con AWS Athena MS5
Ingesta de Datos Scripts y automatización para la ingesta de datos a S3 Ingesta
Frontend Aplicación web interactiva y dashboards consolidando los servicios Frontend

🎥 Demo

fintrendDemo.mp4

🏗 Arquitectura del Sistema

El proyecto está diseñado bajo una arquitectura de microservicios, donde cada servicio tiene una responsabilidad única, su propia base de datos (Database per Service) y se comunica con otros servicios mediante APIs REST.

Toda la infraestructura está containerizada con Docker y orquestada para despliegue tanto local (Docker Compose) como en la nube (AWS CloudFormation).

Diagrama de Alto Nivel

  • Frontend: Aplicación SPA interactiva.
  • Backend (Microservicios): 5 servicios independientes.
  • Bases de Datos: MySQL, PostgreSQL, MongoDB, y servicios analíticos (AWS Athena).
  • Integraciones Externas: APIs de noticias financieras, proveedores de LLMs (OpenAI, Groq).

Diagrama de Arquitectura de Solucion

Arquitectura Solucion

🧩 Microservicios

1. Gestión de Portafolio (MS1)

  • Directorio: Gestion-Portafolio/
  • Tecnologías: Python, Flask, MySQL, SQLAlchemy.
  • Descripción: Se encarga de gestionar los perfiles de los usuarios y sus portafolios de inversión. Mantiene el registro de los activos adquiridos y las transacciones realizadas por los usuarios.

2. Historial de Precios (MS2)

  • Directorio: Historial-Precios/
  • Tecnologías: Java, Spring Boot, PostgreSQL, JPA/Hibernate.
  • Descripción: Responsable de almacenar y proveer datos históricos de precios de diferentes activos financieros. Expone endpoints para consultar la evolución de precios en el tiempo.

3. Feed de Noticias (MS3)

  • Directorio: Feed-Noticias/
  • Tecnologías: Node.js, Express, MongoDB, Mongoose.
  • Descripción: Consume y almacena noticias del mercado financiero a través de APIs externas (como Finnhub o News API). Utiliza una base de datos NoSQL (MongoDB) debido a la naturaleza semi-estructurada de las noticias y artículos.

4. Orquestador de Señales (MS4)

  • Directorio: Orquestador-Senales/
  • Tecnologías: Python, Flask, Integración LLM (OpenAI / Groq / OpenRouter).
  • Descripción: Es el motor de inteligencia del sistema. Actúa como un orquestador que recopila información del MS2 (precios) y MS3 (noticias), y utiliza Modelos de Lenguaje Grande (LLMs) para generar análisis de sentimiento, insights y señales de inversión para el usuario.

5. Analítica de Mercado (MS5)

  • Directorio: Analitica-Mercado/
  • Tecnologías: Python, Flask, Boto3 (AWS SDK), AWS Athena, AWS S3.
  • Descripción: Microservicio enfocado en el análisis de datos a gran escala utilizando infraestructura de AWS (Athena y S3). Ejecuta consultas analíticas sobre grandes volúmenes de datos financieros exportados.

💻 Frontend

  • Tecnologías: React 19, Vite, TypeScript, Tailwind CSS.
  • Librerías Destacadas:
    • Recharts y d3 para visualización de datos financieros.
    • Framer Motion y Three.js para animaciones e interfaces 3D (ej. globo terráqueo interactivo, componentes dinámicos).
    • Componentes de UI modernos y modulares (Bento grids, efectos retro/terminal).
  • Descripción: Una interfaz de usuario moderna, reactiva y altamente interactiva que consolida la información de todos los microservicios, presentando dashboards de portafolio, gráficos de precios, noticias de mercado y las señales generadas por IA.

☁️ Infraestructura y Despliegue (Cloud Computing)

Toda la infraestructura cloud está automatizada como código (IaC) mediante AWS CloudFormation (CloudFormation.yaml).

  • Contenedores: Todos los servicios y bases de datos están definidos en archivos Dockerfile individuales.
  • Ingesta de Datos: Scripts y configuraciones para migrar o inicializar datos en MySQL, PostgreSQL y MongoDB a un S3 Bucket para su posterior catalogación en AWS Glue y consultas analíticas en AWS Athena.
  • Bases de Datos Aisladas: Cada microservicio cuenta con su propia base de datos (MySQL, PostgreSQL, MongoDB) desplegada en instancias protegidas dentro de una subred privada.
  • Balanceo de Carga: Un Load Balancer interno (ILB) distribuye las peticiones del frontend hacia las instancias EC2 que ejecutan los contenedores Docker de los microservicios, asegurando resiliencia.
  • Seguridad: Implementación de Security Groups estrictos que limitan el tráfico, exponiendo únicamente los puertos necesarios entre las capas de la VPC.

About

Proyecto Cloud Computing - Arquitectura de microservicios y analítica desplegada en AWS. Sistema escalable con 5 microservicios (Python, Java, Node.js) y bases de datos (SQL/NoSQL). Integra un data pipeline con 1 VM Ingesta para procesar los datos, S3, Glue y Athena, exposición vía API Gateway y frontend en AWS Amplify.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors