Sobre o projeto
# Painel de Análise de Clickstream em Tempo Real
Um painel de análise de tráfego web em tempo real construído com Apache Kafka, Python, Pandas e Matplotlib. O sistema simula dados de tráfego de clickstream, envia-os via Kafka e renderiza visualizações analíticas ao vivo.
## Principais Recursos
- Pipeline de streaming de dados de clickstream em tempo real
- Arquitetura com Produtor e Consumidor Kafka
- Dashboard ao vivo baseado em Matplotlib com gráficos animados
- Rastreamento de distribuição de tráfego por país
- Crescimento de visitantes únicos ao longo do tempo
- Configuração Docker Compose para a infraestrutura Kafka
## Tecnologias
Python, Apache Kafka, Docker, Pandas, Matplotlib, NumPy
## Estrutura do Projeto
```
kafka-project/
├── consumer.py # Consumidor Kafka + dashboard Matplotlib
├── producer.py # Produtor Kafka enviando eventos de clickstream
├── generate_data.py # Gerador de dados sintéticos de clickstream
├── docker-compose.yml # Configuração da stack Kafka
└── README.md
```
## Como Funciona
1. `generate_data.py` produz registros sintéticos de clickstream (sessões de usuário, visualizações de página, códigos de país, timestamps).
2. `producer.py` lê esses registros e publica em um tópico Kafka (`clickstream-topic`).
3. `consumer.py` consome mensagens do Kafka e atualiza uma figura Matplotlib ao vivo a cada 100 mensagens, exibindo a distribuição por país como gráfico de barras e o crescimento de usuários únicos como gráfico de linhas.
4. O Kafka é executado dentro de contêineres Docker via Docker Compose.
## Executando o Projeto
1. Inicie os serviços Kafka:
```bash
docker compose up -d
```
2. Crie o tópico:
```bash
docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --create --topic clickstream-topic --bootstrap-server localhost:9092
```
3. Gere o dataset:
```bash
python generate_data.py
```
4. Execute o produtor:
```bash
python producer.py
```
5. Abra um segundo terminal e execute o consumidor:
```bash
python consumer.py
```
A janela do Matplotlib será atualizada em tempo real conforme as mensagens do consumidor forem chegando.
## Melhorias Planejadas
- Dashboard baseado na web (por exemplo, Streamlit ou Dash)
- Integração com Apache Spark Streaming
- Armazenamento persistente em banco de dados para análise histórica
- Análises em nível de sessão
- Modelos de previsão de comportamento do usuário
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.