NaturalAloe — Gestión documental y KPIs
API centrada en consistencia y trazabilidad para documentos normativos (POEs, Políticas, Registros Maestros), con KPIs calculados en MySQL 8, versionado/obsolescencia y carga de PDFs.
- Rol
- Backend / API Engineer (KPIs & Documentos)
- Empresa
- Natura Aloe
- Estado
- En producción
- Stack
- Node.jsExpressMySQL 8SwaggerJWTMulter
Descripción
Diseñé e implementé el backend para gestionar documentos normativos con ciclo de vida completo (creación, versionado, obsolescencia) y KPIs operativos. Los KPIs de POEs, Políticas y Registros Maestros se calculan mediante procedimientos almacenados y se exponen a dashboards por medio de tablas materializadas y vistas dedicadas. La documentación con Swagger/OpenAPI agiliza QA y las pruebas automatizadas.
Impacto
- • Flujo de versionado/obsolescencia que mantiene la vigencia documental bajo control.
- • KPIs consistentes con refresco programado y consultas rápidas para dashboards.
- • Contratos claros entre frontend/QA gracias a Swagger con ejemplos realistas.
Módulos
- • POEs, Políticas, Registros Maestros: CRUD + versionado + obsolescencia.
- • KPIs: métricas para seguimiento de cumplimiento y estado documental.
- • Gestión de archivos: carga de PDFs con Multer y metadatos asociados.
- • Catálogos base: áreas, departamentos, puestos (CRUDs completos).
Optimización
- • Índices compuestos orientados a KPIs y trazabilidad temporal.
- • Reducción de N+1 con agregaciones y vistas dedicadas.
- • Tablas materializadas + SP de refresco para acelerar dashboards.
- • Migraciones idempotentes y seeds controlados.
KPIs principales
- % POEs vigentes: POEs activos ÷ POEs totales × 100
- % Políticas vigentes: Políticas activas ÷ Políticas totales × 100
- % Registros Maestros vigentes: RM activos ÷ RM totales × 100
- Documentos obsoletos: obsoletos ÷ totales × 100
Arquitectura & Decisiones
- • Modelo relacional normalizado (FK, índices, auditoría
created_by/updated_by). - • SPs con validaciones y mensajes de negocio descriptivos.
- • Vistas/Tablas materializadas para lectura de dashboards.
- • Swagger/OpenAPI 3: esquemas, responses y ejemplos.
Optimización de KPIs
Inicialmente implementé una vista que calculaba KPIs en tiempo real, pero esto generaba carga computacional excesiva con cada consulta del frontend.
Solución: Creé una tabla que materializa los datos de la vista, con un SP que vacía y rellena la tabla con data fresca. El SP se ejecuta automáticamente cuando ocurren cambios que afectan los KPIs, más un evento programado como respaldo para casos no contemplados. Resultado: consultas instantáneas desde la tabla en lugar de cálculos costosos en cada request.
Seguridad
- • Autenticación con JWT
- • Validación de roles/permisos por módulo.
- • Validación y sanitización de payloads; manejo uniforme de errores.
Mi rol
- • Definí la estructura de base de datos y convenciones SQL.
- • Implementé SPs de KPIs y el mecanismo de tablas materializadas.
- • Desarrollé CRUDs de áreas, departamentos y puestos.
- • Implementé autenticación JWT, validación de roles y carga de PDFs con Multer.
- • Documenté la API con Swagger y coordiné handoff con QA.
- • Participé en reuniones con la empresa para alinear requisitos y priorizar entregas.
Implementado en producción sin incidentes de despliegue. Próximos pasos: ampliar KPIs y extender funcionalidades.