Sobre o projeto

## Visão Geral Lytics é uma suíte de web analytics auto-hospedada focada na privacidade do usuário. Ela oferece métricas de tráfego padrão, consultas personalizadas baseadas em SQL e heatmaps visuais que mostram a interação do usuário nas páginas. O projeto é dividido em vários módulos: - **lytics-ping** – endpoint HTTP leve que recebe dados de rastreamento da tag JavaScript. - **lytics-app** – o serviço principal Quarkus que armazena dados, gera relatórios e serve a UI. - **lytics-query** – valida e transpila consultas SQL usadas por relatórios e heatmaps. - **tag** – um pequeno snippet JavaScript que os proprietários de sites incorporam para enviar eventos para o serviço de ping. - **offsite** – JavaScript e lógica de renderização para heatmaps que são carregados de um domínio separado. - **schemas** – definições de esquema de banco de dados para MariaDB/MySQL e ClickHouse. ## Arquitetura A plataforma armazena eventos brutos no ClickHouse para analytics de alta performance, enquanto os metadados relacionais residem no MariaDB/MySQL. Os serviços baseados em Quarkus comunicam-se via HTTP e compartilham a configuração através do `application.properties`. A renderização do heatmap é realizada no lado do cliente usando o script off-site, que é construído com npm e servido como um ativo estático pelo servidor Quarkus. ## Primeiros Passos 1. **Configuração do banco de dados** – provisione uma instância MariaDB/MySQL e um cluster ClickHouse. Aplique os esquemas do diretório `schemas`. 2. **Configuração** – edite `lytics-app/src/main/resources/application.properties` com as strings de conexão e quaisquer opções desejadas. 3. **Build** – execute `mvn package` para compilar todos os módulos. 4. **Executar serviços**: ```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. **Desenvolvimento** – use o plugin Quarkus no IntelliJ ou `quarkus dev` via linha de comando. Para alterações no script de heatmap, execute `npm run watch` dentro do diretório `offsite`; a saída é colocada em `lytics-app/src/main/resources/web/static/offsite/offsite.min.js`. ## Solução de Problemas Se você encontrar problemas de resolução de dependências ou problemas na IDE, uma reinstalação limpa pode ajudar: ```bash mvn clean install -U ``` ## Casos de Uso - Rastreamento de visitantes em conformidade com a privacidade para sites que não podem usar analytics de terceiros. - Heatmaps visuais para entender o comportamento de clique e rolagem sem comprometer os dados do usuário. - Consultas SQL personalizáveis para relatórios avançados e exportação de dados. Lytics fornece um stack completo para organizações que precisam de analytics on-premise com controle granular sobre o armazenamento e processamento de dados.