Implementación de Scrum y DevOps aplicada a un producto de software Open Source.
Sprint 0 — Planificación
¿Qué es Krayin CRM y cuál es su origen?
Es un sistema CRM de código abierto desarrollado por la empresa india Webkul. Construido sobre una arquitectura modular con Laravel (PHP) y Vue.js, nació con el objetivo de ofrecer una alternativa flexible, escalable y gratuita frente a plataformas propietarias costosas.
Perfil de Usuarios Objetivo
Está orientado principalmente a PYMES bajo modelos de negocio B2B y B2C (ej. comercio electrónico, agencias de servicios y empresas tecnológicas). El sistema permite gestionar prospectos, centralizar contactos, organizar pipelines de ventas y automatizar actividades comerciales.
Evolución Técnica
Desde sus primeras versiones, ha evolucionado para incorporar integración de correos, automatización de flujos (Workflows) y funciones basadas en inteligencia artificial, como "Magic AI", que extrae automáticamente datos desde documentos PDF e imágenes.
Núcleo del sistema. Gestiona el pipeline comercial desde la captura hasta el cierre. Incluye tablero Kanban personalizable y creación automática desde PDF/imagen mediante Magic AI.
Directorio maestro. Subdividido en Person (individuo) y Organization (empresa). Evita duplicar información y garantiza que cada prospecto se asocie a una entidad real.
Seguimiento comercial. Registra interacciones (Llamada, Reunión, Almuerzo) vinculadas a los leads. Ofrece vista de calendario, asignación de participantes y filtros.
Propuestas formales. Paquetes integrados en packages/Webkul/ que permiten gestionar el catálogo y crear cotizaciones formales para cerrar el proceso de ventas.
Ciclo de negocio:
1. Contact (se crea primero)
2. Lead (entra al pipeline)
3. Activity (seguimiento)
4. Quote (propuesta con productos)
Vue.js & Blade — Gestiona la interfaz de usuario mediante componentes reactivos. Se integra con el motor de plantillas Blade para crear una experiencia dinámica, comunicándose de forma asíncrona con el servidor vía peticiones HTTP (Axios/API REST) para actualizar la vista sin recargar la página.
PHP / Laravel (MVC) — Centraliza la lógica de negocio. Los Controladores interceptan las peticiones, aplican reglas comerciales y utilizan los Modelos (Eloquent ORM) para el manejo de datos. Retornan respuestas JSON para Vue.js o renderizan las Vistas iniciales.
MySQL — Actúa como la capa de persistencia estructurada. El sistema utiliza migraciones nativas de Laravel para definir y versionar el esquema relacional, garantizando la integridad referencial entre entidades como leads, contactos y actividades.
Arquitectura Basada en Paquetes y Flujo MVC:
Krayin opera bajo un patrón MVC estricto, pero potenciado por una arquitectura modular. En lugar de un sistema monolítico, la lógica se divide en paquetes independientes (Packages) dentro del directorio packages/Webkul/. Cada módulo funciona con su propio ServiceProvider.
El ciclo de comunicación: Cuando un usuario realiza una acción en la interfaz (Vista - Vue.js), se emite una petición al Router de Laravel. Este delega la tarea al Controlador específico del paquete correspondiente. El Controlador invoca al Modelo para consultar o escribir en MySQL. Una vez que la base de datos responde, el Controlador empaqueta los datos y los envía de vuelta al Frontend, donde Vue actualiza reactivamente la pantalla del usuario, completando así el ciclo MVC sin interrupciones.
Se propone mejorar el rendimiento y la organización visual de las vistas principales del CRM, especialmente en los módulos de clientes, leads y actividades. La mejora incluirá la reducción de tiempos de carga mediante optimización de consultas y componentes Blade/Vue, así como una reorganización visual de tablas y formularios para facilitar la navegación y el uso del sistema.
Se plantea completar la internacionalización del sistema traduciendo al español las secciones que aún permanecen en inglés, incluyendo mensajes de validación, módulos administrativos y notificaciones. Además, se buscará unificar términos técnicos y comerciales para ofrecer una experiencia más clara y amigable para usuarios hispanohablantes.
Se propone refactorizar controladores con alta carga lógica, separando responsabilidades mediante servicios o repositorios para mejorar la mantenibilidad del código. Como complemento funcional, se añadirá un módulo básico de reportes que permita visualizar estadísticas de leads, clientes y oportunidades de venta mediante filtros por fecha y estado.
Plan de proyecto, configuración de herramientas, análisis inicial del repositorio y definición del alcance de mejora. (15% de la nota final)
🏁 Hito 1Primera iteración de desarrollo: configuración del entorno Docker, primeras User Stories implementadas y pipeline CI/CD inicial en GitHub Actions.
Software funcional con integración CI/CD completa, flujo Scrum documentado (Daily Scrum, Sprint Review, Retrospectiva) y despliegue automático.
🏁 Hito 2 — Entrega: 10 jun 2026Implementación de las mejoras propuestas, refactorizaciones planificadas y automatización avanzada del despliegue.
Redacción del informe final en formato IEEE, retrospectiva general del proyecto, métricas de DevOps y presentación ejecutiva al equipo docente.
🏁 Hito 3 — Entrega: 13 jul 2026