Cherry Core ERP v3
Sistema ERP empresarial completo con arquitectura Clean Architecture + DDD, 15 módulos y 1200+ tests.
Descripción del Proyecto
Cherry Core ERP v3 es mi “joya de la corona”: un sistema de planificación de recursos empresariales (ERP) completo, modular y escalable, diseñado desde cero siguiendo los principios más estrictos de Clean Architecture y Domain Driven Design (DDD).
Este proyecto no es solo una aplicación web, es una demostración de ingeniería de software avanzada capaz de soportar operaciones empresariales complejas.
Características Principales
- 15 Módulos de Negocio: Incluye RRHH (ATS), CRM, Calidad, Inventario, Ventas, Facturación y más.
- Arquitectura Hexagonal: Separación estricta entre Dominio, Aplicación e Infraestructura.
- Testing Exhaustivo: 1,200+ tests automatizados (Unitarios, Integración y E2E) con una cobertura del 91% en código crítico y 96% tasa de éxito.
- IA Local Integrada: Módulo de IA utilizando Ollama y Qdrant para búsqueda semántica y análisis de datos sin depender de APIs externas costosas.
- Alto Rendimiento: Optimizado para manejar grandes volúmenes de datos con colas asíncronas (BullMQ) y caché (Redis).
Tecnologías Utilizadas
Core:
- Next.js 16 (App Router) & React 19
- TypeScript (Tipado estricto)
- PostgreSQL 15 & Prisma 6 (ORM)
Arquitectura & Calidad:
- Clean Architecture + DDD
- Jest & React Testing Library (Unit/Integration)
- Playwright (E2E)
- Husky (Git Hooks) & CI/CD pipelines
IA & Data:
- Ollama (LLM Local)
- Qdrant (Vector Database)
- BGE-M3 (Embeddings)
Retos Técnicos Superados
1. Implementación de Clean Architecture y DDD
Reto: Mantener una separación estricta de responsabilidades en un proyecto monolítico modular sin caer en la complejidad accidental. Solución: Definí límites claros de contexto (Bounded Contexts) para cada módulo. La capa de dominio es pura (sin dependencias de frameworks), la capa de aplicación orquesta los casos de uso, y la infraestructura implementa las interfaces definidas por el dominio. Esto permite cambiar la base de datos o el framework web sin tocar la lógica de negocio.
2. Estrategia de Testing a Gran Escala
Reto: Asegurar la estabilidad de un sistema con 15 módulos interconectados y evitar regresiones. Solución: Adopté TDD (Test Driven Development) desde el inicio. Implementé una pirámide de testing sólida:
- 800+ Tests Unitarios para reglas de negocio y utilidades.
- 300+ Tests de Integración para repositorios y casos de uso.
- 100+ Tests E2E para flujos críticos de usuario (Login, Checkout, Creación de Empleado). Logrando una cobertura del 91% en el Core.
3. Integración de IA Local Privada
Reto: Proporcionar capacidades de inteligencia artificial (resumen de CVs, búsqueda semántica de productos) sin exponer datos sensibles a APIs de terceros y sin costes recurrentes. Solución: Integré Ollama ejecutando modelos cuantizados (Llama 3, Mistral) localmente en el servidor. Utilicé Qdrant para indexar vectores de documentos y permitir búsquedas semánticas (“Buscar candidatos con experiencia en React” en lugar de keyword match).
4. Gestión de Estado y Rendimiento
Reto: Manejar formularios complejos y tablas de datos masivas sin afectar la experiencia de usuario. Solución: Utilicé TanStack Query para gestión de estado asíncrono y caché en el cliente, reduciendo llamadas innecesarias al servidor. Implementé virtualización de listas para tablas con miles de registros y optimicé las consultas SQL con índices compuestos en PostgreSQL.
Impacto y Aprendizajes
Este proyecto representa un salto de calidad en mi carrera. Me enseñó que la arquitectura no es sobre archivos y carpetas, sino sobre control y mantenibilidad. Escribir más de 1200 tests me dio la confianza para refactorizar y mejorar el código continuamente sin miedo a romper funcionalidades existentes.
Cherry Core ERP demuestra que soy capaz de construir software de nivel empresarial, mantenible y escalable, listo para producción.