Questo MVP (Minimum Viable Product) implementa una piattaforma per l'invio di notifiche pubblicitarie personalizzate basate sulla posizione dell'utente, sui suoi interessi e sui punti di interesse nelle vicinanze. Il sistema utilizza basato su tecnologie moderne come Apache Flink, Grafana, e ClickHouse e un Large Language Model (LLM) per creare un'esperienza personalizzata in tempo reale.
Il sistema è composto da diversi moduli containerizzati che collaborano per fornire un'infrastruttura completa:
- Simulatore di dati: Genera dati simulati da sensori o altre fonti.
- Processore Flink: Elabora i dati in tempo reale, li arricchisce con informazioni contestuali tramite LLM e poi li valida.
- Database ClickHouse: Memorizza dati storici in tempo relae e dati statici per le informazioni generali.
- Dashboard Grafana: Visualizza i dati elaborati in tempo reale tramite dashboard personalizzate.
Contiene l'applicazione Apache Flink per l'elaborazione dei dati in tempo reale. Include il codice per validare, arricchire (tramite LLM) e processare i dati provenienti dai sensori.
Serve a simulare l'invio di dati da sensori GPS.
Contiene schemi e script SQL per il database ClickHouse. Questi file definiscono la struttura del database e le viste necessarie per l'analisi dei dati.
Configurazione per la visualizzazione dei dati. Include dashboard preconfigurate e impostazioni per il provisioning delle fonti di dati.
Il progetto utilizza Docker Compose per orchestrare tutti i servizi. Per avviare l'intero sistema, seleziona il profilo appropriato in base all'ambiente desiderato:
Questo ambiente è progettato per essere stabile e rappresentare una versione funzionante del sistema. È ideale per dimostrazioni e per mostrare il prodotto in azione, evidenziandone le funzionalità principali.
-
Clona il repository:
git clone https://github.com/SevenBitsSwe/MVP.git cd MVP -
Configura il file
.env: Crea un file.envnella directory principale e aggiungi la seguente variabile:PYTHON_PROGRAM_KEY=CHIAVE_GROQSostituisci
CHIAVE_GROQcon la chiave effettiva fornita. -
Avvia i servizi con il profilo
prod:docker-compose up --profile prod --build
-
Accedi a Grafana all'indirizzo http://localhost:3000 con le credenziali predefinite:
- Username:
admin - Password:
admin
- Username:
Questo ambiente è pensato per eseguire test approfonditi sul sistema consentendo di generare report sullo stato di salute del progetto.
-
Clona il repository (se non già fatto):
git clone https://github.com/SevenBitsSwe/MVP.git cd MVP -
Configura il file
.envcome descritto sopra. -
Avvia i servizi con il profilo
test:docker-compose up --profile test --build
Questo ambiente è dedicato agli sviluppatori per sperimentare e implementare nuove funzionalità. È ideale per attività di debugging e sviluppo iterativo.
-
Clona il repository (se non già fatto):
git clone https://github.com/SevenBitsSwe/MVP.git cd MVP -
Configura il file
.envcome descritto sopra. -
Avvia i servizi con il profilo
develop:docker-compose up --profile develop --build
- Docker e Docker Compose
- Chiave API per il servizio Groq (da configurare in un file
.env)