Skip to content

HPCI-Lab/yprov-explorer

Repository files navigation

Versione in inglese qui


yProv Explorer

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.


πŸ“– Indice

  1. Introduzione
  2. Struttura del Progetto
  3. Screenshot
  4. FunzionalitΓ  Principali
  5. Live Demo
  6. Installazione
  7. Utilizzo
  8. Sviluppatori

Introduzione πŸš€

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.


Struttura del Progetto πŸ—οΈ

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

Screenshot πŸ“Έ

Ecco un'anteprima del grafo generato dall'applicazione:

Esempio di Grafico

  • 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! πŸš€


Funzionalità Principali 🌟

  • 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.

Live Demo πŸ”—

Visita l’applicazione distribuita su Netlify per un’anteprima:

πŸ‘‰ Demo Online


Installazione βš™οΈ

Vuoi eseguire il progetto in locale? Di seguito i passaggi:

Prerequisiti

  • Node.js (v16 o superiore consigliata)
  • npm

Steps

  1. Clona il repository e accedi alla directory:
    git clone https://github.com/Zefkilis2002/yProv-Explorer
    cd yProv-Explorer
  2. Installa le dipendenze:
    npm install
    npm start
  3. Apri il browser su http://localhost:3000 per visualizzare l’app.

Utilizzo πŸ–₯️

Caricamento Grafici

  • 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.

Esplorazione Interattiva

  • 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.

Condivisione dei Nodi

  • 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.

Sviluppatori πŸ‘¨β€πŸ’»

  • 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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors