SlideShare a Scribd company logo
Pimcore
Il coltellino svizzero, anzi austriaco per
CRUD, GraphQL, Face Detection, Real-time image processing
img
Menù del giorno
Cosa è PIM
Stack tecnologico
Data Object: modellazione
Real-time image processing
Data ingestion
API GraphQL
Demo time
il tutto con lo 0% di codice aggiunto
Cosa è PIM
Tracciamo il perimetro
Product Information Management
È l’insieme di processi (e tecnologie)
volti alla gestione delle informazioni
di prodotto che lo descrivono dal
punto di vista del cliente.
Processi
raccolta
consolidamento
distribuzione
Punto di vista del cliente
● promozione
● vendita
tradotto: è materia per il marketing
Dove ci aiuta un software PIM
● Creazione di strutture informative ad oggetti
● Creazione di strutture relazionali articolate
● Definizione di attributi di prodotto complessi
● Supporto alla traduzione/localizzazione dei contenuti
● Gestione dei flussi di lavoro e approvazione (workflow)
● Integrazione con sistemi informativi aziendali
● Pubblicazione multicanale
Vantaggi di un software PIM
● Unica fonte di verità
● Eliminazione dei silos aziendali
● Consolidamento dei dati
● Qualità del dato
● Gestione unica, distribuzione multipla
● Riduzione del time-to-market
fine
della teoria
Stack tecnologico
il nemico da battere
Data Object: modellazione
Consolidamento
i Data Object sono utilizzati in
Pimcore per gestire qualsiasi tipo
di dato strutturato
Esempio: un repository su GitHub
Developer Repository Language
Con quali tipi di dato (classi) potremmo simulare questo scenario?
● name
● photo
● bio
Developer
● name
● description
● logo
● website
Language
● name
● author 👾
● description
● image
● website
● stars
● forks
● watchers
● contributors 👾
● languages 💬
Repository
Lavoriamo in piattaforma
Attraverso una GUI
in Sencha Ext JS
1) Definiamo i campi
2) Progettiamo la GUI
Lavoriamo in piattaforma
Attraverso una GUI
in Sencha Ext JS
1) Definiamo i campi
2) Progettiamo la GUI
Pimcore si occupa di creare…
La GUI per il CRUD
in Sencha Ext JS
Pimcore si occupa di creare…
PHP API per interagire via codice
Pimcore si occupa di creare…
Tabelle e
viste nel DB
table: objects
Qui esiste un record
per ogni Data Object
presente nel sistema.
Contiene metadati
comuni e generici.
table: object_store_(classId)
Tabella principale di una classe di Data
Object. Contiene i dati piatti senza relazioni.
table: object_relations_(classId)
Contiene i riferimenti delle relazioni
(nome del campo, tipologia, id, ordine)
table: object_query_(classId)
Usata per elencare e filtrare i
dati, inclusi quelli ereditati.
Le relazioni sono serializzate.
view: object_(classId)
Come la precedente ma con in più
i metadati presenti in objects.
Real-time image
processing
Cosa possiamo fare con le immagini
Out-of-the-box
● Pipeline di elaborazione
● Face Detection
Con poche righe di codice
● Custom image processing (ImageMagick)
● Computer vision (integrazione con AWS, Google, Microsoft)
Esempio di pipeline di elaborazione
originale
Data ingestion
Raccolta
da dove partiamo
first reaction, shock
ma alla fine arriviamo qua
Estensioni che ci aiutano
Pimcore Data Importer (che vedremo nella demo)
https://github.com/pimcore/data-importer
Data Definitions
https://github.com/w-vision/DataDefinitions
Simili nel funzionamento
Si procede con le definizioni di:
○ sorgente*
○ destinazione
○ strategie* di resolving, location, creation, cleanup
○ mapping dei campi
○ pipeline* di trasformazione
○ scheduling
* possibilità di creare sorgenti, strategie e trasformazioni custom
API GraphQL
Distribuzione
omnichannel delivery
Estensioni che ci aiutano
Pimcore Data Hub (che vedremo nella demo)
https://github.com/pimcore/data-hub/
Espone i dati attraverso endpoint GraphQL, sia in lettura che scrittura
Data Definitions (sì, è quello di prima)
https://github.com/w-vision/DataDefinitions
Esporta i dati in file di diversi formati (csv, json, xml)
Demo time
Riferimenti
● Pimcore
○ sito - https://pimcore.com/
○ repository - https://github.com/pimcore/pimcore
○ docker image - https://github.com/pimcore/docker
○ documentazione - https://pimcore.com/docs/pimcore/current/index.html
● Data Importer
○ repository - https://github.com/pimcore/data-importer
○ documentazione - https://pimcore.com/docs/data-importer/current/index.html
● Data Hub
○ repository - https://github.com/pimcore/data-hub
○ documentazione - https://pimcore.com/docs/data-hub/current/index.html
● DataDefinitions (w-vision)
○ repository - https://github.com/w-vision/DataDefinitions
● graphql-php (webonyx)
○ repository - https://github.com/webonyx/graphql-php
○ documentazione - https://webonyx.github.io/graphql-php/
Domande?
valuta questo talk su https://joind.in/talk/ab9f2
Grazie!
lorenzo@extera.com
lnicoletti@gmail.com
https://github.com/lorextera
https://twitter.com/lorenzoPHP
https://www.linkedin.com/in/lnicoletti
Contatti
www.extera.com

More Related Content

Similar to Nudo e crud - a Pimcore aperto

Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRS
Manuel Scapolan
 
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
Codemotion
 
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
Codemotion
 
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Federico Feroldi
 
Digital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NETDigital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NET
Marco Zamana
 
Custom Vision e Win.ml per le nostre app intelligenti offline
Custom Vision e Win.ml per le nostre app intelligenti offlineCustom Vision e Win.ml per le nostre app intelligenti offline
Custom Vision e Win.ml per le nostre app intelligenti offline
Alessio Iafrate
 
How I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven DesignHow I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven DesignAndrea Saltarello
 
Sa framework
Sa frameworkSa framework
Sa framework
Arnaldo Colombo
 
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Massimo Cenci
 
Power B: Cleaning data
Power B: Cleaning dataPower B: Cleaning data
Power B: Cleaning data
Marco Pozzan
 
Power bi
Power biPower bi
Power bi
Marco Pozzan
 
SAL 2018 - RaD 2018
SAL 2018 - RaD 2018SAL 2018 - RaD 2018
SAL 2018 - RaD 2018
Mauro Sanfilippo
 
Power Platform: AI Builder la democratizzazione di AI
Power Platform: AI Builder la democratizzazione di AIPower Platform: AI Builder la democratizzazione di AI
Power Platform: AI Builder la democratizzazione di AI
Alessio Biasiutti
 
Introduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio bertiIntroduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio berti
Deep Learning Italia
 
Layered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRSLayered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRS
Andrea Saltarello
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big Data
Vincenzo Manzoni
 
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Donato Clun
 
BDD in DDD
BDD in DDDBDD in DDD
BDD in DDD
oehsani
 
Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)
DotNetMarche
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010
Gian Maria Ricci
 

Similar to Nudo e crud - a Pimcore aperto (20)

Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRS
 
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
 
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
 
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
 
Digital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NETDigital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NET
 
Custom Vision e Win.ml per le nostre app intelligenti offline
Custom Vision e Win.ml per le nostre app intelligenti offlineCustom Vision e Win.ml per le nostre app intelligenti offline
Custom Vision e Win.ml per le nostre app intelligenti offline
 
How I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven DesignHow I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven Design
 
Sa framework
Sa frameworkSa framework
Sa framework
 
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"Note di Data Warehouse e Business Intelligence - Pensare "Agile"
Note di Data Warehouse e Business Intelligence - Pensare "Agile"
 
Power B: Cleaning data
Power B: Cleaning dataPower B: Cleaning data
Power B: Cleaning data
 
Power bi
Power biPower bi
Power bi
 
SAL 2018 - RaD 2018
SAL 2018 - RaD 2018SAL 2018 - RaD 2018
SAL 2018 - RaD 2018
 
Power Platform: AI Builder la democratizzazione di AI
Power Platform: AI Builder la democratizzazione di AIPower Platform: AI Builder la democratizzazione di AI
Power Platform: AI Builder la democratizzazione di AI
 
Introduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio bertiIntroduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio berti
 
Layered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRSLayered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRS
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big Data
 
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
 
BDD in DDD
BDD in DDDBDD in DDD
BDD in DDD
 
Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010
 

Nudo e crud - a Pimcore aperto