# Arquitectura PWA para la Gestión de Proyectos de Renovación: Del Chat a Herramientas de IA
En la industria de la construcción, la gestión de proyectos de renovación de apartamentos requiere herramientas especializadas que tengan en cuenta el proceso prolongado y los numerosos participantes. Desarrollamos una solución PWA que combina chat, seguimiento de tareas, videovigilancia y un diseñador de interiores con IA. Este artículo desglosa las decisiones arquitectónicas y los desafíos técnicos que enfrentamos al construir un sistema para gestionar proyectos que duran de 6 a 18 meses.
Por qué los CRM estándar no funcionan para renovaciones
Un proyecto de renovación y construcción no es una venta ni un ticket. Es un proceso que abarca de seis meses a un año y medio, con múltiples roles que tienen necesidades distintas:
- Cliente — quiere seguir el progreso sin entrar en detalles.
- Presupuestador — formaliza solicitudes y calcula volúmenes de trabajo y materiales.
- Gerente — coordina todos los aspectos del proyecto.
- Director — necesita una visión general de todos los sitios sin profundizar en cada uno.
- Control de Calidad — acepta el trabajo de los oficiales.
- Oficiales (albañiles, electricistas, fontaneros) — trabajan de forma secuencial.
- Departamento de Compras — adquiere y entrega materiales.
Las soluciones listas para usar como Bitrix24 o amoCRM se centran en embudos de ventas, no en la gestión de proyectos de construcción. Trello y Asana manejan bien las tareas, pero carecen de presupuestos, listas de verificación con fotos y controles financieros. No existían soluciones especializadas para renovaciones de apartamentos —que combinen todas las herramientas necesarias— en el mercado ruso.
Elección de la pila tecnológica: PWA y Laravel
El requisito clave: una sola app para todos, desde el director hasta el albañil. Los oficiales usan smartphones Android de distintas generaciones, los clientes suelen tener iPhone y los gerentes usan ordenadores de escritorio. Desarrollar tres apps nativas (iOS, Android, web) sería poco práctico para nuestro equipo. PWA lo resolvió: un solo código base, instalación en escritorio, notificaciones push y actualizaciones automáticas.
Backend construido sobre PHP Laravel, frontend con una plantilla AdminLTE personalizada a nuestras necesidades. La arquitectura es un monolito con autenticación unificada y paneles separados para empleados, oficiales y clientes. Elegimos Laravel por su popularidad y la abundancia de paquetes listos para la mayoría de las tareas. Por ejemplo, las notificaciones a MAX se manejan mediante un paquete dedicado, similar a laravel notification channels.
Infraestructura: servidor virtual reg.ru en Moscú, almacenamiento de datos en servidores FirstVDS. Las copias de seguridad van a tres servidores distintos en varios hosts. El despliegue se ejecuta mediante un script CI/CD en segundos —sin necesidad de compilación del frontend— lo que permite actualizaciones rápidas.
Arquitectura de Roles y Derechos de Acceso
El sistema cuenta con cuatro tipos de paneles con interfaces adaptadas:
Panel del Cliente
Interfaz minimalista con streaming de vídeo, chat en ventana única, informes fotográficos, presupuestos y planes de trabajo. Acceso a herramientas de IA: experto en reparaciones y diseñador de interiores (subida de fotos previas a la renovación para renders). Los clientes no ven la correspondencia interna ni desgloses de costos.
Panel del Empleado
Acceso al sistema interno según permisos asignados: correspondencia con clientes, resúmenes de sitios, gestión de gastos, coordinación de oficiales, listas de verificación, presupuestos y analíticas.
Panel del Oficial
Solo sitios donde el oficial está asignado. Plan de trabajo personalizado con temporizador regresivo, chat de la empresa, listas de verificación con instrucciones en vídeo, presupuestos (precios al cliente ocultos) y solicitudes de materiales/pagos.
Panel del Director
Panel general de la empresa. Incluye todas las funciones de empleado más:
- Monitoreo en tiempo real de las comunicaciones con clientes.
- Visión financiera: ingresos, gastos, desfases de flujo de caja.
- Gestión de turnos de equipos para minimizar tiempos muertos.
- Controles de calidad selectivos mediante listas de verificación.
- Implementación instantánea de mejoras (añadir elementos a listas).
- Pronóstico de demanda a partir de estadísticas de cálculos de costos.
Técnicamente, tres interfaces: cliente, oficial y empleado. El panel del director es la versión de empleado con permisos completos. Los permisos son personalizables, con "roles" predefinidos (conjuntos de permisos).
Chat como Ventana Única: Enrutamiento de Mensajes
Funcionalidad principal: un chat donde el cliente se comunica con la "empresa", no con una persona específica. Internamente, el mensaje es visible para todos los participantes del proyecto.
Cómo funciona:
- El cliente envía un mensaje —aparece para todos los empleados asignados al sitio.
- Cualquier empleado responde —el cliente lo ve de la "empresa" con el nombre del autor.
- Para el cliente, es un chat personal; para los empleados, un chat grupal del proyecto.
- El chat de oficiales funciona de forma similar.
- Los mensajes se pueden reenviar entre cliente y oficial.
- Los chats con clientes solo permiten texto (para documentación); los chats con oficiales admiten mensajes de voz (para transmitir el tono).
Chat impulsado por websockets. Las notificaciones de nuevos mensajes tienen un retraso de 5 segundos para omitirlas si ya se han leído. Las notificaciones push incluyen botones "Leer" y "Responder". En algunos dispositivos Android, pulsar un botón cierra la barra de notificaciones, interrumpiendo el flujo de trabajo.
Desafíos y Soluciones
Una sorpresa: manejar múltiples sitios por cliente requirió vinculación de cuentas. Las versiones futuras separarán cuentas, perfiles y sitios desde cero.
El problema de notificaciones push en Android (cierre de la barra al pulsar) sigue sin resolverse. También pasamos por alto inicialmente la necesidad de actualizaciones instantáneas de listas de verificación, ahora esenciales para el control de calidad.
Lecciones Clave
- Especificidad del Dominio — los proyectos de renovación exigen soporte para múltiples roles y plazos largos, más allá de los CRM estándar.
- PWA como Solución Óptima — un solo código base en todas las plataformas cumple, a pesar de peculiaridades como las notificaciones push en Android.
- Sistema de Roles Flexible — interfaces y permisos distintos son cruciales para la adopción por los usuarios.
- Chat como Centro de Comunicación — el enrutamiento en ventana única agiliza las interacciones y registra la correspondencia.
- Copia de Seguridad y Fiabilidad — triple copia en servidores distintos salvó datos durante fallos de almacenamiento.
— Editorial Team
Aún no hay comentarios.