Un sistema di Big Data Analytics in Real-Time che analizza la sicurezza dei PIN inviati via Telegram, geolocalizza le minacce e visualizza i risultati su una mappa interattiva.
Il progetto implementa una pipeline Lambda Architecture semplificata:
- Ingestion: Telegram Bot (Python) raccoglie PIN e Coordinate GPS.
- Streaming: Apache Kafka (KRaft mode) gestisce i messaggi in tempo reale.
- Processing: Apache Spark (Structured Streaming) elabora i dati, calcola un "Safety Score" e aggiunge timestamp.
- Storage & Viz: Elasticsearch indicizza i dati arricchiti; Kibana li visualizza su Mappe e Dashboard.
- Docker & Docker Compose installati.
- Un Token per Bot Telegram (da
@BotFather).
-
Clona la repository:
git clone [https://github.com/TUO_USERNAME/pin-security-project.git](https://github.com/TUO_USERNAME/pin-security-project.git) cd pin-security-project -
Crea un file
.envnella root e inserisci il tuo token (opzionale, o inseriscilo nel docker-compose):TELEGRAM_TOKEN=il_tuo_token_qui
-
Avvia i container:
docker compose up --build
-
Inizializza il Database (Passaggio Cruciale): Apri un terminale e lancia questo comando per configurare la mappa:
curl -X PUT "localhost:9200/pin-security-events" -H 'Content-Type: application/json' -d' { "mappings": { "properties": { "location": { "type": "geo_point" }, "timestamp": { "type": "date" }, "score": { "type": "integer" }, "status": { "type": "keyword" }, "pin": { "type": "keyword" } } } }'
- Apri il bot su Telegram.
- Invia la tua Posizione (π -> Location).
- Scrivi un PIN (es.
1234). - Apri Kibana a
http://localhost:5601per vedere l'analisi in tempo reale.
- Python 3.9
- Apache Kafka 3.7 (KRaft)
- Apache Spark 3.4.2
- Elastic Stack 8.11 (Elasticsearch + Kibana)
- Docker Compose# pin_security_project