Skip to content

zGolden31/EcoVision

Repository files navigation

♻️ EcoVision: Smart Waste Sorting Assistant

EcoVision è un'applicazione web intelligente progettata per ottimizzare la raccolta differenziata domestica. Utilizzando un approccio ibrido che combina LLM Multimodali e Geolocalizzazione, il sistema identifica i rifiuti e fornisce istruzioni di smaltimento basate sulle normative del comune specifico dell'utente.

🌟 Funzionalità Principali

  • Riconoscimento Multimodale: Analisi visiva avanzata tramite Google Gemini 2.5 Flash per identificare materiali e stato del rifiuto.
  • Scomposizione Oggetti Complesso: Capacità di distinguere e separare componenti di rifiuti multi-materiale (es. bottiglia e tappo) fornendo destinazioni diverse.
  • Geolocalizzazione Dinamica: Adattamento delle regole di smaltimento in tempo reale basato sulla posizione GPS dell'utente (Reverse Geocoding).
  • Chatbot Integrato: Assistente conversazionale con memoria di contesto per risolvere dubbi specifici post-analisi.
  • Mappe Isole Ecologiche: Integrazione con Google Maps per localizzare i centri di raccolta per rifiuti speciali.

🐳 Guida all'installazione con Docker

Questa sezione spiega come configurare l'ambiente e avviare l'applicazione utilizzando i container Docker, garantendo la massima coerenza tra i vari ambienti di sviluppo.

🛠 Prerequisiti Hardware e Software Prima di iniziare, assicuratevi di aver configurato correttamente la vostra macchina:

  • Virtualizzazione: deve essere abilitata nel BIOS del PC (Intel VT-x o AMD-V). Senza questa, Docker Desktop non si avvierà.
  • Docker Desktop: scaricato, installato e con l'icona della "balena" in stato verde (running).
  • Database Comuni: verificate che il file comuniitaliani.json sia presente nella cartella principale del progetto.

🔑 Gestione API Key (Sicurezza)

Per motivi di sicurezza, non carichiamo le chiavi API su Git. Ogni sviluppatore utilizzerà la propria chiave Gemini al momento dell'avvio del container. Il codice è già predisposto per leggere la chiave dalle variabili d'ambiente.

🚀 Comandi per l'avvio

1. Build dell'Immagine

Aprite il terminale nella root del progetto e create l'immagine Docker. Questo passaggio installa tutte le dipendenze (come google-genai, geopy, pandas) all'interno di un ambiente Linux isolato:

docker build -t ecovision-app .

2. Esecuzione del Container

Avviate l'applicazione passando la vostra chiave personale tramite la variabile d'ambiente -e:

docker run -p 8501:8501 -e GOOGLE_API_KEY="INSERISCI_QUI_LA_TUA_CHIAVE" ecovision-app

-p 8501:8501: Collega la porta del container alla porta del tuo PC;

-e GOOGLE_API_KEY: Inietta la chiave nel sistema in modo sicuro.


🌐 Accesso all'App

Una volta avviato il container, l'app sarà raggiungibile dal browser all'indirizzo: 👉 http://localhost:8501

(Nota: Ignorate l'indirizzo 0.0.0.0 stampato nel terminale, è un riferimento interno al container)

--------------------------------------------------------------------------------------------------📂 Struttura del Progetto e Diagrammi

Abbiamo aggiornato la documentazione tecnica che trovate nelle cartelle del repository:

  • Diagramma dei Casi d'Uso: Include ora il Chatbot "Chiedi all'esperto" e la gestione API Key.
  • Diagramma delle Classi: Riflette la struttura multi-componente dell'analisi AI (JSON parsing).
  • Diagramma di Sequenza: Mostra il flusso asincrono verso l'SDK google-genai.

👥 Autori Alessio Cappiello Andrea Falcicchio Giuseppe Fuzio

Progetto sviluppato per il corso di Ingegneria del Software - Politecnico di Bari (A.A. 2025/26)

About

Web app basata su intelligenza artificiale per identificare, catalogare e classificare correttamente i rifiuti.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors