À propos du projet
# Tableau de bord analytique de clickstream en temps réel
Un tableau de bord analytique de trafic web en temps réel construit avec Apache Kafka, Python, Pandas et Matplotlib. Le système simule des données de trafic clickstream, les diffuse via Kafka et génère des visualisations analytiques en direct.
## Fonctionnalités clés
- Pipeline de diffusion de données clickstream en temps réel
- Architecture producteur et consommateur Kafka
- Tableau de bord Matplotlib animé en direct
- Suivi de la répartition du trafic par pays
- Croissance des visiteurs uniques dans le temps
- Configuration Docker Compose pour l'infrastructure Kafka
## Technologies
Python, Apache Kafka, Docker, Pandas, Matplotlib, NumPy
## Structure du projet
```
kafka-project/
├── consumer.py # Consommateur Kafka + tableau de bord Matplotlib
├── producer.py # Producteur Kafka envoyant des événements clickstream
├── generate_data.py # Générateur de données clickstream synthétiques
├── docker-compose.yml # Configuration de la pile Kafka
└── README.md
```
## Comment ça marche
1. `generate_data.py` produit des enregistrements clickstream synthétiques (sessions utilisateur, pages vues, codes pays, horodatages).
2. `producer.py` lit ces enregistrements et les publie sur un sujet Kafka (`clickstream-topic`).
3. `consumer.py` consomme les messages de Kafka et met à jour une figure Matplotlib en direct tous les 100 messages, affichant la répartition par pays sous forme de graphique en barres et la croissance des utilisateurs uniques sous forme de graphique linéaire.
4. Kafka est exécuté dans des conteneurs Docker via Docker Compose.
## Exécution du projet
1. Démarrer les services Kafka :
```bash
docker compose up -d
```
2. Créer le sujet :
```bash
docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --create --topic clickstream-topic --bootstrap-server localhost:9092
```
3. Générer l'ensemble de données :
```bash
python generate_data.py
```
4. Exécuter le producteur :
```bash
python producer.py
```
5. Ouvrir un deuxième terminal et exécuter le consommateur :
```bash
python consumer.py
```
La fenêtre Matplotlib se mettra à jour en temps réel au fur et à mesure de l'arrivée des messages consommés.
## Améliorations prévues
- Tableau de bord web (par exemple, Streamlit ou Dash)
- Intégration Apache Spark Streaming
- Stockage persistant en base de données pour l'analyse historique
- Analytique au niveau des sessions
- Modèles de prédiction du comportement utilisateur
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.