Sobre el proyecto

## Descripción general Lytics es un conjunto de análisis web autohospedado enfocado en la privacidad del usuario. Ofrece métricas estándar de tráfico, consultas personalizadas basadas en SQL y mapas de calor visuales que muestran la interacción del usuario en las páginas. El proyecto se divide en varios módulos: - **lytics-ping** – punto final HTTP ligero que recibe datos de seguimiento desde la etiqueta de JavaScript. - **lytics-app** – el servicio principal basado en Quarkus que almacena datos, genera informes y sirve la interfaz de usuario. - **lytics-query** – valida y transpila consultas SQL utilizadas por los informes y mapas de calor. - **tag** – un pequeño fragmento de JavaScript que los propietarios de sitios web incrustan para enviar eventos al servicio ping. - **offsite** – lógica de JavaScript y renderizado para mapas de calor cargados desde un dominio separado. - **schemas** – definiciones de esquemas de base de datos para MariaDB/MySQL y ClickHouse. ## Arquitectura La plataforma almacena eventos sin procesar en ClickHouse para análisis de alto rendimiento, mientras que los metadatos relacionales residen en MariaDB/MySQL. Los servicios basados en Quarkus se comunican mediante HTTP y comparten configuración a través de `application.properties`. El renderizado de mapas de calor se realiza del lado del cliente usando el script off-site, construido con npm y servido como activo estático por el servidor Quarkus. ## Primeros pasos 1. **Configuración de base de datos** – provisiona una instancia de MariaDB/MySQL y un clúster de ClickHouse. Aplica los esquemas desde el directorio `schemas`. 2. **Configuración** – edita `lytics-app/src/main/resources/application.properties` con cadenas de conexión y cualquier opción deseada. 3. **Compilación** – ejecuta `mvn package` para compilar todos los módulos. 4. **Ejecutar servicios**: ```bash java -Dquarkus.config.locations=application.properties -jar lytics-ping/target/lytics-ping-1.0.0-SNAPSHOT-runner.jar java -Dquarkus.config.locations=application.properties -jar lytics-app/target/lytics-app-1.0.0-SNAPSHOT-runner.jar ``` 5. **Desarrollo** – usa el plugin de Quarkus en IntelliJ o `quarkus dev` desde la línea de comandos. Para cambios en el script de mapa de calor, ejecuta `npm run watch` dentro del directorio `offsite`; la salida se coloca en `lytics-app/src/main/resources/web/static/offsite/offsite.min.js`. ## Solución de problemas Si encuentras problemas de resolución de dependencias o errores en el entorno de desarrollo, una reinstalación limpia puede ayudar: ```bash mvn clean install -U ``` ## Casos de uso - Seguimiento de visitantes compatible con privacidad para sitios web que no pueden usar análisis de terceros. - Mapas de calor visuales para entender el comportamiento de clics y desplazamiento sin comprometer los datos del usuario. - Consultas SQL personalizables para informes avanzados y exportación de datos. Lytics proporciona una pila completa para organizaciones que necesitan análisis local con control fino sobre el almacenamiento y procesamiento de datos.