Versione in inglese qui
Un potente strumento web basato su React e D3.js per visualizzare e interagire con grafici di Provenance. Permette di caricare dati da file JSON o URL, e offre funzioni interattive per lβesplorazione di grafici di grandi dimensioni, con diverse opzioni di personalizzazione e condivisione.
- Introduzione
- Struttura del Progetto
- Screenshot
- FunzionalitΓ Principali
- Live Demo
- Installazione
- Utilizzo
- Sviluppatori
yProv Explorer Γ¨ unβapplicazione pensata per fornire una visione immediata e intuitiva della Provenance. Grazie a React e D3.js, Γ¨ possibile navigare in modo dinamico e interattivo tra entitΓ , agenti e attivitΓ , evidenziando relazioni e collegamenti.
Ecco una panoramica semplificata:
yProv-Explorer/
βββ captures/
β βββ example1.jpeg
β βββ example2.png
β βββ example3.jpeg
βββ netlify/
β βββ functions/
β βββ proxy.js
βββ public/
βββ src/
β βββ assets/
β βββ components/
β β βββ DownloadsButton/
β β βββ FileUploadButton/
β β βββ FullscreenButton/
β β βββ Graph/
β β βββ GraphContainer/
β β βββ GraphInfo/
β β βββ GraphSettings/
β β βββ JsonLabel/
β β βββ NavigationButton/
β β βββ NodeInfo/
β β βββ SearchBar/
β β βββ SearchNode/
β βββ main/
β β βββ main.css
β β βββ Main.js
β βββ App.js
β βββ index.css
β βββ index.js
β βββ proxy-server.mjs
β βββ reportWebVitals.js
β βββ setupTests.js
β βββ unified-loader.js
βββ utilities/
β βββ provenance_creator.py
βββ .gitignore
βββ LICENSE
βββ netlify.toml
βββ package-lock.json
βββ package.json
βββ README_ENG.md
βββ README.md
Ecco un'anteprima del grafo generato dall'applicazione:
- I nodi arancioni (rettangoli con angoli smussati) rappresentano le entitΓ .
- I rettangoli verdi rappresentano le attivitΓ .
- Il nodo a forma di casa viola rappresenta un agente.
- I collegamenti rossi rappresentano βwasGeneratedByβ.
- I collegamenti verdi rappresentano βwasDerivedFromβ.
- Il collegamento arancione rappresenta βwasAttributedToβ.
Ora la sezione Screenshot Γ¨ ben organizzata e chiara. Se vuoi aggiungere altre immagini o ulteriori dettagli, fammelo sapere! π
- Esplorazione interattiva del grafico: Pan, zoom e trascinamento dei nodi.
- Visualizzazione personalizzabile: Alterna le etichette dei nodi, le etichette dei collegamenti e controlla la distanza tra i nodi.
- Caricamento file e supporto URL: Carica grafici tramite upload di file o incollando lβURL.
- Evidenziazione e condivisione dei nodi: Clicca sui nodi per evidenziarli, aggiornare lβURL con il nodo selezionato e condividere il link diretto.
- Controllo della visibilitΓ dei link: Mostra o nasconde tipi specifici di link (ad esempio, βusedβ, βwasDerivedFromβ, βwasGeneratedByβ).
- Visualizzazione a schermo intero: Massimizza il grafico per unβanalisi piΓΉ accurata.
- Navigazione tramite cronologia: Utilizza la barra del browser per spostarti fra i nodi precedentemente cliccati.
- Statistiche del grafico: Visualizza il totale dei nodi e la ripartizione per tipo (entitΓ , attivitΓ , agente).
- Navigazione dei collegamenti dei nodi: Segui i collegamenti di un nodo nel pannello dei dettagli.
- Esporta schermata del grafico: Salva la vista del grafico corrente in formato PNG.
Visita lβapplicazione distribuita su Netlify per unβanteprima:
π Demo Online
Vuoi eseguire il progetto in locale? Di seguito i passaggi:
- Node.js (v16 o superiore consigliata)
- npm
- Clona il repository e accedi alla directory:
git clone https://github.com/Zefkilis2002/yProv-Explorer cd yProv-Explorer - Installa le dipendenze:
npm install npm start
- Apri il browser su http://localhost:3000 per visualizzare lβapp.
- Caricamento da File: Fai clic sul pulsante di caricamento, seleziona un file JSON contenente la Provenance.
- Caricamento da URL: Incolla lβURL di un file JSON o di un endpoint REST.
- Pan e Zoom: Usa il mouse o i controlli dedicati per navigare.
- Selezione dei Nodi: Clicca su un nodo per visualizzare informazioni aggiuntive.
- Distanza Nodi: Personalizza la forza di repulsione/attrazione per ottimizzare la visualizzazione.
- URL Dinamico: Una volta cliccato il nodo, lβURL viene aggiornato con un parametro che identifica il nodo selezionato.
- Link Diretto: Condividi questo URL in modo che chiunque possa accedere direttamente allo stesso nodo.
- Konstantinos Zefkilis;
- Sandro Luigi Fiore;
- Marco Robol.
yprov-explorer
ββ .dockerignore
ββ captures
β ββ example1.jpeg
β ββ example2.png
β ββ example3.jpeg
ββ docker
β ββ Dockerfile.backend
β ββ Dockerfile.frontend
ββ docker-compose.yml
ββ gnu-gpl-v3.0.md
ββ LICENSE
ββ package-lock.json
ββ package.json
ββ public
β ββ favicon.ico
β ββ index.html
β ββ logo192.png
β ββ logo512.png
β ββ manifest.json
β ββ robots.txt
ββ README.md
ββ README_ENG.md
ββ src
β ββ App.js
β ββ assets
β β ββ images
β β ββ fullscreen-max.png
β β ββ fullscreen-min.png
β β ββ leftArrow.png
β ββ components
β β ββ DownloadsButton
β β β ββ download.png
β β β ββ downloadsButton.css
β β β ββ DownloadsButton.js
β β ββ FileUploadButton
β β β ββ Attach.png
β β β ββ fileUploadButton.css
β β β ββ FileUploadButton.js
β β ββ FullscreenButton
β β β ββ fullscreenButton.css
β β β ββ FullscreenButton.js
β β ββ Graph
β β β ββ graph.css
β β β ββ Graph.js
β β ββ GraphContainer
β β β ββ graphContainer.css
β β β ββ GraphContainer.js
β β ββ GraphInfo
β β β ββ graphInfo.css
β β β ββ GraphInfo.js
β β β ββ info.png
β β ββ GraphSettings
β β β ββ graphSettings.css
β β β ββ GraphSettings.js
β β β ββ Settings.png
β β ββ JsonLabel
β β β ββ jsonLabel.css
β β β ββ JsonLabel.js
β β ββ NavigationButton
β β β ββ Back Arrow.png
β β β ββ Forward Arrow.png
β β β ββ navigationButton.css
β β β ββ NavigationButton.js
β β ββ NodeInfo
β β β ββ nodeInfo.css
β β β ββ NodeInfo.js
β β ββ SearchBar
β β β ββ search.png
β β β ββ searchBar.css
β β β ββ SearchBar.js
β β ββ SearchNode
β β ββ search.png
β β ββ searchNode.css
β β ββ SearchNode.js
β ββ index.css
β ββ index.js
β ββ main
β β ββ main.css
β β ββ Main.js
β ββ reportWebVitals.js
β ββ server
β β ββ proxy-server.mjs
β β ββ unified-loader.js
β ββ setupTests.js
ββ utilities
ββ provenance_creator.py
