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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.