À propos du projet

## Aperçu Lytics est une suite d'analyse web auto-hébergée axée sur la confidentialité des utilisateurs. Elle propose des mesures de trafic standard, des requêtes personnalisées basées sur SQL et des cartes thermiques visuelles montrant l'interaction des utilisateurs sur les pages. Le projet se compose de plusieurs modules : - **lytics-ping** – point de terminaison HTTP léger qui reçoit les données de suivi du tag JavaScript. - **lytics-app** – le service principal basé sur Quarkus qui stocke les données, génère des rapports et sert l'interface utilisateur. - **lytics-query** – valide et transpile les requêtes SQL utilisées par les rapports et les cartes thermiques. - **tag** – un petit extrait de code JavaScript que les propriétaires de sites web intègrent pour envoyer des événements au service ping. - **offsite** – logique JavaScript et de rendu pour les cartes thermiques chargées depuis un domaine distinct. - **schemas** – définitions des schémas de base de données pour MariaDB/MySQL et ClickHouse. ## Architecture La plateforme stocke les événements bruts dans ClickHouse pour une analyse à haute performance tandis que les métadonnées relationnelles résident dans MariaDB/MySQL. Les services basés sur Quarkus communiquent via HTTP et partagent leur configuration via `application.properties`. Le rendu des cartes thermiques se fait côté client grâce au script hors site, construit avec npm et servi comme actif statique par le serveur Quarkus. ## Démarrage 1. **Configuration de la base de données** – provisionner une instance MariaDB/MySQL et un cluster ClickHouse. Appliquer les schémas du répertoire `schemas`. 2. **Configuration** – modifier `lytics-app/src/main/resources/application.properties` avec les chaînes de connexion et les options souhaitées. 3. **Compilation** – exécuter `mvn package` pour compiler tous les modules. 4. **Exécution des services** : ```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. **Développement** – utiliser le plugin Quarkus dans IntelliJ ou `quarkus dev` depuis la ligne de commande. Pour les modifications du script de carte thermique, exécuter `npm run watch` dans le répertoire `offsite` ; la sortie est placée dans `lytics-app/src/main/resources/web/static/offsite/offsite.min.js`. ## Dépannage En cas de problèmes de résolution des dépendances ou d'IDE, une réinstallation complète peut aider : ```bash mvn clean install -U ``` ## Cas d'utilisation - Suivi des visiteurs conforme à la vie privée pour les sites web qui ne peuvent pas utiliser d'analyses tierces. - Cartes thermiques visuelles pour comprendre le comportement de clics et de défilement sans compromettre les données des utilisateurs. - Requêtes SQL personnalisables pour des rapports avancés et l'exportation de données. Lytics fournit une pile complète pour les organisations nécessitant des analyses locales avec un contrôle fin sur le stockage et le traitement des données.