SOUND
LANGUAGE
THEME

Hola, soy Lyra, el asistente IA de este portafolio. Haz clic para preguntarme sobre los proyectos, el stack o la trayectoria de Ever.

AI-Powered Image Processing | Event-Driven Architecture | Real-Time Estado: Completado (Proyecto Universitario)

PixPro

Plataforma inteligente de procesamiento de imágenes con IA, arquitectura basada en eventos y notificaciones en tiempo real.

Demo privada
PRIVADO

Pure software architecture

Robust backend · No visual UI

Vista General del Proyecto

Plataforma de procesamiento de imágenes con IA. Problema: procesar imágenes en paralelo sin bloquear la UI. Solución: microservicios con Kafka, elegido sobre Redis Streams por durabilidad y rebalanceo automático (matriz de decisión). Stack: Node.js, Kafka, Docker, React, MinIO, Keycloak. Resultado: equipo Scrum de 5, MVP en 8 semanas, notificaciones en vivo con WebSockets.

RolSoftware Architect & Technical Lead
ClienteProyecto Capstone - Universidad Jala
DuraciónEnero 2025 - Junio 2025
Año2026

Diseño de Arquitectura

Event-Driven Microservices | CQRS | Clean Architecture (backend)RESTful API + Apache Kafka + WebSockets (Socket.io)
Diagrama de Contexto: Usuarios interactúan con PixPro, que orquesta autenticación, procesamiento, almacenamiento y base de datos.

Diagrama de Contexto: Usuarios interactúan con PixPro, que orquesta autenticación, procesamiento, almacenamiento y base de datos.

Diagrama de Contenedores: Frontend React, Backend API, Workers IA, Kafka, Redis, MinIO, Keycloak y MongoDB.

Diagrama de Contenedores: Frontend React, Backend API, Workers IA, Kafka, Redis, MinIO, Keycloak y MongoDB.

Módulos Core

Autenticación y Gestión de Usuarios con Keycloak

SSO y RBAC con Keycloak, registro, login, recuperación de contraseña. Backend valida tokens JWT, frontend protege rutas vía contexto. Integración con PostgreSQL.

Carga de Imágenes y Almacenamiento en CDN (MinIO)

Carga individual o por lotes con vista previa y progreso. Imágenes almacenadas en MinIO (API S3) con URLs firmadas. Adaptador IStoragePort permite intercambiar implementación fácilmente.

Procesamiento Asíncrono con Kafka y Ollama

Evento 'image-process' publicado en Kafka, consumido por workers Node.js que invocan Ollama (YOLO, Stable Diffusion). Resultados en 'image-processed' o 'image-processed-error'. Arquitectura desacoplada y escalable.

Notificaciones en Tiempo Real (WebSockets + Redis Pub/Sub)

Frontend conectado vía Socket.io a gateway que escucha topics de Kafka. Eventos enviados al cliente por salas (userId). Redis adaptador para escalar múltiples instancias del gateway.

Organización por Proyectos y Biblioteca Personal

Usuarios crean proyectos y asignan imágenes procesadas. Metadatos (título, categoría, parámetros). Backend usa CQRS con paginación, filtros y caché Redis.

Panel de Administración y Métricas de Rendimiento

Dashboard para administradores con KPIs: imágenes procesadas, tiempos, estado de colas, uso de caché. Datos agregados desde MongoDB y servidos vía REST protegida por roles.

Integración Continua y Despliegue (CI/CD) con Rolling Updates

Pipeline GitLab CI/CD con linting, tests, build Docker y despliegue automático. Rolling deployment (sin downtime) frente a Blue-Green por restricciones de recursos. Health checks garantizan estabilidad.

Tecnologías Implementadas

frontend

React 18
TypeScript
PrimeReact
PrimeFlex
PrimeIcons
Zustand
TanStack Query
Socket.io-client
Axios

backend

Node.js 20
Express 4
TypeScript
KafkaJS
Socket.io
Redis (ioredis)
MinIO SDK
Mongoose
Keycloak-connect

ai And Storage

Ollama (YOLO, Stable Diffusion)
MinIO
Kafka
Redis

tools

Docker & Docker Compose
GitLab CI/CD
Jest
Swagger
Postman
Biome (linter)