Inventario de tecnologías
Objetivo
Listar las tecnologías que efectivamente usa sy-energy y para qué sirve cada una, para dimensionar cambios, onboarding y actualizaciones.
Audiencia
Desarrollo interno y DevOps.
Estado documental
- Estado: Borrador
- Última actualización: 2026-08-02
- Owner: Pendiente
- SME requerido: líder técnico / DevOps
- Fuente resumida: archivos de dependencias, configuración de servicios y configuración de despliegue del repositorio.
Corrección respecto a la versión anterior
Una versión previa de este documento describía un stack de Vite, React, TypeScript y Supabase. Ese stack no corresponde a sy-energy. El sistema es una aplicación Laravel con MySQL y AWS. La contradicción quedó registrada en validaciones internas.
Plataforma
| Tecnología | Versión | Uso |
|---|---|---|
| PHP | 8.5 | Lenguaje del sistema. |
| Laravel | 13 | Framework de aplicación: rutas, ORM, colas, scheduler, consola. |
| MySQL | — | Base de datos principal del participante. |
| MongoDB | — | Almacenamiento de precios y nodos del MEM. |
| Redis | — | Caché, sesiones y una conexión de cola. |
| SQL Server | — | Conexión configurada para integración externa. |
Las versiones de motor de base de datos no se declaran en el repositorio; confirmarlas contra el servidor.
Dependencias de backend
| Paquete | Para qué |
|---|---|
aws/aws-sdk-php | SQS, S3 y demás servicios de AWS. |
guzzlehttp/guzzle | Llamadas HTTP a servicios externos, entre ellos Factura.com. |
barryvdh/laravel-dompdf | Generación de PDF de estados de cuenta y documentos. |
maatwebsite/excel | Importación y exportación de hojas de cálculo. |
doctrine/dbal | Cambios de esquema en migraciones. |
simplesoftwareio/simple-qrcode | Códigos QR en documentos fiscales. |
laravel/tinker | Consola interactiva. Útil para diagnóstico. |
deployer/deployer | Despliegue a servidores. |
Frontend
La interfaz es Blade renderizado en servidor, con JavaScript progresivo — no es una SPA.
| Tecnología | Para qué |
|---|---|
| Laravel Mix | Compilación de assets. |
| Blade | Plantillas del lado del servidor. |
| Vue 3 | Componentes interactivos puntuales. |
| Bootstrap 4 | Sistema de diseño principal. |
| Tailwind CSS | Estilos utilitarios en pantallas nuevas. |
| DataTables | Tablas con filtros, orden y exportación. |
| Chart.js / vue-chartjs | Gráficas. |
| Select2, datepickers, Dropzone | Controles de formulario y carga de archivos. |
| Moment / Day.js | Manejo de fechas. |
Deuda técnica visible
Conviven Bootstrap 4 y Tailwind, jQuery y Vue 3, Moment y Day.js. Es consecuencia de la evolución del sistema. Al tocar una pantalla, conviene seguir el estilo de esa pantalla en lugar de introducir un tercer enfoque.
Herramientas de calidad
| Herramienta | Para qué |
|---|---|
| Pest | Pruebas. |
| PHPStan | Análisis estático. |
| Rector | Refactorizaciones automatizadas. |
| Collision / Whoops | Presentación de errores en desarrollo. |
Servicios externos
| Servicio | Uso |
|---|---|
| AWS SQS | Comunicación con bots y procesamiento asíncrono. |
| AWS S3 | Facturas, documentos de CENACE y archivos generados. |
| AWS Systems Manager | Parámetros de configuración por ambiente. |
| Factura.com | Timbrado de CFDI. |
| API de CENACE | Descarga de Estados de Cuenta Diarios. |
| Portal SIM de CENACE | Operación vía bots. |
Infraestructura de ejecución
| Componente | Rol |
|---|---|
| Servidor Linux | Aloja las instancias de participante. |
| PHP-FPM 8.5 | Ejecución de la aplicación web. |
| Supervisor | Mantiene vivos los workers de cola. |
| Cron | Ejecuta el scheduler de Laravel cada minuto. |
| Docker | Solo para entorno de desarrollo local. |
Supervisor y cron se administran desde server-configs.
Riesgos y gaps
- No están confirmadas las versiones productivas de MySQL, MongoDB y Redis.
- El sistema depende de un proveedor único de timbrado; no está documentado el plan si Factura.com no está disponible durante un cierre mensual.
- La mezcla de librerías de frontend eleva el costo de cualquier cambio de interfaz.
- No está documentada la política de actualización de dependencias.
Próxima revisión
Al confirmar versiones productivas con DevOps.