En la era digital, el seguimiento y registro de la actividad de los usuarios se ha convertido en una necesidad fundamental para las organizaciones. Ya sea para cumplir con los requisitos de seguridad, analizar el comportamiento del usuario o mejorar la eficiencia operativa, contar con un sistema de registro de actividad robusto y eficiente es esencial. En este artículo, exploraremos el desarrollo que hemos llevado a cabo para implementar esta funcionalidad en alguno de nuestros proyectos utilizando dos tecnologías poderosas:

  • Laravel junto a Vuejs
  • Laravel junto a Livewire.

Kit Digital

El kit digital es una iniciativa del gobierno de España, cuyo objetivo es ayudar mediante subvenciones a empresas, pymes y autónomos con la implantación de soluciones digitales que ayuden a estas a dar un paso hacia delante en el mundo digital e internet. En Bloonde, como agente digitalizador del Kit Digital hemos desarrollado soluciones que ayudarán a nuestros clientes, beneficiarios de esta ayuda, a mejorar sus procesos.

La categoría de "gestión de procesos" del Kit Digital ha sido clave en la definición de este requisito. El seguimiento de la actividad de los usuarios nos permite comprender y optimizar los diferentes procesos dentro de nuestra aplicación, identificar posibles cuellos de botella y ofrecer una experiencia de usuario mejorada. Con la ayuda de Laravel, y las potentes capacidades de Vue.js y Livewire, hemos logrado crear un sistema de registro de actividad que cumple con los requisitos del Kit Digital y con las expectativas de nuestros clientes.

Desarrollo

Backend

El desarrollo de este módulo comienza por el back-end donde necesitábamos poder registrar la actividad de los usuarios en los distintos proyectos beneficiarios del Kit Digital.

Como hemos comentado en artículos anteriores de nuestro blog, nuestro framework de cabecera para back-end es Laravel, y para este framework contamos con una potentísima librería potentísima de código abierto llamada Laravel-Activitylog, creada por la prestigiosa empresa desarrolladora de paquetes Spatie.

Esta librería nos permite registrar cualquier actividad del usuario que queramos y nos provee de las siguientes herramientas para ello:

Función de registro de actividad:

Esta función nos permite crear un registro de actividad personalizado en cualquier punto de nuestro código con esta simple sintaxis.

activity($name)
   ->performedOn($anEloquentModel)
   ->causedBy($user)
   ->withProperties(['customProperty' => 'customValue'])
   ->log('Look mum, I logged something');

Pudiendo registrar nuestra actividad, relacionándolo con un modelo, con un usuario, propiedades, etc.

TRAIT:

Si deseas registrar toda la actividad relacionada con un modelo concreto, es tan sencillo como hacer uso del trait LogsActivity y definir la siguiente función en tu modelo:

public function getActivitylogOptions(): LogOptions
   {
       return LogOptions::defaults()->logFillable();
   }

Frontend

Llega la hora de mostrar esta actividad a los usuarios autorizados, y para ello, tanto en Vuejs como en livewire tenemos multitud de componentes para poder crear una interfaz sencilla e intuitiva para el usuario. A continuación podemos ver cómo quedaría una tabla creada con livewire donde mostramos los accesos de un usuario, donde el usuario puede filtrar por tipo de actividad, por fecha, o simplemente realizar una búsqueda:

logs de acceso

Conclusiones

El desarrollo del sistema de registro de actividad de los usuarios ha sido una tarea clave para mejorar nuestra gestión de procesos y cumplir con los requisitos del Kit Digital. Gracias a la combinación de Laravel, Vue.js y Livewire, hemos logrado implementar una solución eficiente y flexible que nos permite tener un seguimiento detallado de la actividad de los usuarios. Tanto Laravel + Vue.js como Laravel + Livewire ofrecen ventajas significativas en términos de desarrollo ágil, rendimiento y facilidad de mantenimiento. La elección entre estas tecnologías dependerá de las necesidades y preferencias específicas de cada proyecto.

Para pedir un presupuesto a medida que se ajuste a tus necesidades, no dudes en escribirnos.