Open Event is a distribution of Drupal that enables any one to automatically expose their site content in a reliable and structured way as a JSON API, enabling an extra degree of control over the output.
20. Open Event in one sentence
Open Event CMS is a foundation for any cultural
organisation wanting to manage and publish their
events online.
21. Open Event in one sentence
Open Event CMS is a Drupal distribution that directly
represents an Event Open Data Model and automatically
publishes data through a self-documented API.
22. Open Event in one sentence
Open Event CMS is a Drupal distribution that directly
represents an Event Open Data Model and automatically
publishes data through a self-documented API.
24. What is the ODM?
Our mandate is to make the arts available to everyone.
To fulfill this we should be actively opening up all our
information and data in a way that it can be accessed,
joined up, understood and re-used.
Rob Gethen Smith (Southbank Centre CIO)
26. ODM implementation
The Open Event Drupal distribution is a technical
implementation of the ODM: just add water™.
Other implementations are possible and desirable.
ODM website coming soon* to make the ODM visible.
(*) Possibly
28. Contribution
It is released as Open Source software with two levels
of contribution possible:
1) A Drupal distribution for final users (it works out of
the box).
2) A Github repository for developers, to contribute to
the way the distribution is built.
29. Concept
As Open Software it has been developed with minimal
assumptions about how it may be used or extended
and it doesn’t force any custom views of the world or the
data it manages.
It is built with flexibility and extensibility in mind.
30. Concept
⇒ Custom JSON output (Schema.org structure)
⇒ Each content type is automatically mapped as a
Schema.org type
⇒ Only fields with Schema.org mapping* are outputed
⇒ RestWS standard mapping still available (remove?)
⇒ Granular/simple events (one date per event)
⇒ Decent editorial experience out of the box
31. Concept
⇒ Minimize the requirement for entities to model
references (eg: images)
⇒ Complex mappings of Schema types modeled as a
single Drupal field are embedded in the main type
(not referenced)
32. What is in it? For end users
⇒ Download, install and use: distribution
⇒ Extensible and adaptable as any Drupal 7 site
⇒ Just add water™ read-only API approach
⇒ Create Once Publish Everywhere
Useful
38. Schema.org relations included
⇒ Event to Event
⇒ Event to Person
⇒ Event to Organization
⇒ Event to Place
⇒ Place to Place
⇒ Person to Organization
⇒ Organization to Place
41. Concept
⇒ Automatic read only API
⇒ Self documented API
⇒ Self explanatory API paths (content type)
⇒ Install and go
⇒ Rest-ish
⇒ More control over RestWS (expose bundles and
control over fields - choose, custom label and format)
42. Image in event
From schema.org/Thing
image: URL or ImageObject
An image of the item. This can be a URL or a fully described
ImageObject.
43. Image in event
If URL is used we lose a lot of information.
Where does the URL point to?
An image file or an ImageObject?
44. Image in event
Embed the ImageObject in the main type returned.
This embedded type mapping is coded in the module
oe_schemaorg_rest_image.
63. Motivation
We standardized and abstracted the core functionality
and released it as Open Source.
And then we built our CMS on top of it.
Developers motivation was much higher than in closed
source projects. Everyone learnt and enjoyed much
more.
64. What did we learn?
It is a challenge to think and develop openly.
It is easy to simply share.
It is difficult to share openly.
It is worth the extra effort.
65. What did we learn?
Open Source can be developed as part of a
private/closed project.
It is an excellent way to contribute back after using open
source code in closed projects.
67. Now what?
⇒ Use it
⇒ Improve it
⇒ Expand it
⇒ Create critical mass
⇒ Drupal 8! (see you in Barcelona!)
68. Implementations
Southbankcentre.org*
⇒ Data sharing via JSON API
⇒ Headless front end (Angular)
⇒ Modular CMS
⇒ Elastic search
⇒ Import and manage data from backend data
applications (Artifax, Tessitura)
(*) In development
69. Route Map (D7)
⇒ Move it to git.drupal.org (mirror to github)
⇒ Improve documentation
⇒ Refactor custom profile modules into contrib
modules
⇒ Refactor features in contrib modules
⇒ Add taxonomy classification*
(*) It depends on the ODM working group
73. Download and install
(2) Install the distribution:
$:> cd openevent
$:> drush si openevent --account-name=siteuser
--account-pass=sitepass --db-url=mysql://dbuser:
dbpass@localhost/dbname -y
74. Build and install
(1) Fetch the code from Github:
$:> git clone git@github.com:Southbank-
Centre/OpenEvent.git
www/drupal/profiles/openevent
75. Build and install
(2) Fetch the contrib code from Drupal.org and assemble
the distribution:
$:> cd www/drupal
$:> cp profiles/openevent/local-openevent.make .
$:> drush make local-openevent.make -y
76. Build and install
(3) Install the distribution:
$:> drush si openevent --account-name=siteuser
--account-pass=sitepass --db-url=mysql://dbuser:
dbpass@localhost/dbname -y
81. Credits
Jorge Lopez-Lago (Tech Lead at Onload)
Alex Bridge (Developer at Cogapp)
Dave Vernon (Developer at Southbank Centre)
Sam Murray (Developer at Southbank Centre)
Tassos Koutlas (Developer at Cogapp)
Southbank Centre
82. Sources
Some content and images shamelessly copied from Rob
Gethen Smith’s “Open Event CMS June 2015” presentation
(http://www.slideshare.net/RobGethenSmith/open-
event-cms-june-2015)
Avatar images by Freepik.com