building a full-flavored event site in 5 minutes

52
BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES Drupalcamp Leuven - 15/9/2013 1 vrijdag 20 september 13

Upload: sven-houtmeyers

Post on 13-Jun-2015

258 views

Category:

Technology


0 download

DESCRIPTION

Or a few minutes more. We are pleased to announce the new CultureFeed 3.x, a module suite to build an event site based on events gathered in an external backoffice "outdatabase" (UiTdatabank). Use our framework to build a very simple event site or a very complex site, like UiTinVlaanderen.be. CultureFeed 3.x contains: - a connector to our event API (with the new SOLR API) - a connector to our social API (like, reviews, attend, ...) - integration with oAuth service provider UiTiD "outid" - different UI options - SEO optimalisations - views integration - a devel module - option to create, update and delete events - option to integrate an RFID loyalty program (in development) En plus, to make life easy on you we developed a Drupal profile, CultureFeed kickstart, which sets up a site with basic functions in 5 minutes, check out http://github.com/cultuurnet. In this session Sven Houtmeyers (CultuurNet) focusses on all the features, while Kristof Coomans (kañooh) will dive into the technical aspects, why we use Symphony, Guzzle and Composer, why we build PHP libraries, and how we interface with the SOLR API. The session will be ended with a demo of the CultureFeed Kickstart Drupal profile.

TRANSCRIPT

Page 1: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Drupalcamp Leuven - 15/9/2013

1

vrijdag 20 september 13

Page 2: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

CultuurNet Vlaanderen is looking for a...

DRUPAL FRONT END DEVELOPER- 1 jaar+ experience in Drupal Front End webdevelopment

- 2 jaar+ experience in algemeen Front End webdevelopment

More info http://www.cultuurnet.be/zoekt-fe-developer - [email protected] after this session

2

vrijdag 20 september 13

Page 3: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Sven HoutmeyersTeam Leader developers at CultuurNetTechnical lead for all our Drupal Project@[email protected]

Contents

1. Introduction2. Technical dive into the setup by Kristof3. More features & demo of our Drupal install profile

Whoami?

3

vrijdag 20 september 13

Page 4: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

CultuurNet (CultureNet):“relationship agency” that mediates between events and participants

Mission: “(more) people (more) enthusiasm (more) culture”

Who are we?

4

vrijdag 20 september 13

Page 5: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

through broad cultural communication and marketing

How we do this?

5

vrijdag 20 september 13

Page 6: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

First of all we aggregate all cultural and other events

How we do this?

6

vrijdag 20 september 13

Page 7: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

First of all we aggregate all cultural and other events

How we do this?

6

vrijdag 20 september 13

Page 8: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

First of all we aggregate all cultural and other events

How we do this?

6

vrijdag 20 september 13

Page 9: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Products?

7

vrijdag 20 september 13

Page 10: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Products?

7

vrijdag 20 september 13

Page 11: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Products?

7

vrijdag 20 september 13

Page 12: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Products?

7

vrijdag 20 september 13

Page 13: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Products?

7

vrijdag 20 september 13

Page 14: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Products?

7

vrijdag 20 september 13

Page 15: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Products?

7

vrijdag 20 september 13

Page 16: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Previous situation

So how we do this?

8

API API

The events The participants

CnAPI (CultuurNet API)Module Suite

CultureFeedModule Suite

Drupal

vrijdag 20 september 13

Page 17: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Previous situation

So how we do this?

8

API API

The events The participants

CnAPI (CultuurNet API)Module Suite

CultureFeedModule Suite

Drupal

vrijdag 20 september 13

Page 18: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

New situation

So how we do this?

9

APIEvents + participants

CultureFeedModule Suite

Drupal

vrijdag 20 september 13

Page 19: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

New situation

So how we do this?

9

APIEvents + participants

CultureFeedModule Suite

Drupal

vrijdag 20 september 13

Page 20: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

And who is doing this?

10

?8 developers, pm, solution architects, etc

vrijdag 20 september 13

Page 21: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

And who is doing this?

10

?8 developers, pm, solution architects, etc

@stalski @zuuperman

vrijdag 20 september 13

Page 22: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

And who is doing this?

10

?8 developers, pm, solution architects, etc

@stalski @zuuperman @kristofcoomans (cyberwolf)

vrijdag 20 september 13

Page 23: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

freelancer since beginning of the year (2DotsTwice)

Whoami?

vrijdag 20 september 13

Page 24: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

custom search solution, exposed over HTTP

did not allow for more complex, composite queries

example: give me all eventswith minimum age 3 in a range of 30 kilometers from Herent- OR -with the theme ‘music’ in a range of 60 kilometers from Herent

limited faceting support, needs a second HTTP request

back in time: search API v1

12

vrijdag 20 september 13

Page 25: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

PHP client library: non-existing

logic stuck in a Drupal module (cnapi), hardly reusable outside of Drupal

back in time: search API v1

13

vrijdag 20 september 13

Page 26: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

based on Apache Solr

•REST-like HTTP API•based on Apache Lucene•faceting•spellcheck

on top of that

•OAuth•custom business logic

search API v2

14

vrijdag 20 september 13

Page 27: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

PHP client library: modern architecture and approach

use existing tools and libraries

•Composer•Guzzle•Symfony Event Dispatcher

search API v2

15

vrijdag 20 september 13

Page 28: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

composer.json in project root

basic usage

16

vrijdag 20 september 13

Page 29: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

run ‘composer install’

require composer autoloader in your project, for example in sites/.../settings.php

basic usage

17

vrijdag 20 september 13

Page 30: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

basic usage

18

vrijdag 20 september 13

Page 31: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

basic usage

19

vrijdag 20 september 13

Page 32: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

basic usage

20

vrijdag 20 september 13

Page 33: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

basic usage: filter query

21

vrijdag 20 september 13

Page 34: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

basic usage: filter query

22

vrijdag 20 september 13

Page 35: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

modular HTTP client library for PHP

used by Drupal 8, Amazon SDK, ...

many plugins: OAuth, logging

supports JAVA-style multivalued query string parameters:

PHP: http://example.com/index.php?param1[]=foo&param1[]=bar

JAVA: http://example.com/index.php?param1=foo&param1=bar

Guzzle

23

vrijdag 20 september 13

Page 36: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Guzzle: logging

24

vrijdag 20 september 13

Page 37: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Guzzle: logging

25

vrijdag 20 september 13

Page 38: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

faceted search

26

vrijdag 20 september 13

Page 39: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

faceted search

27

vrijdag 20 september 13

Page 40: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

culturefeed_agendaculturefeed_develculturefeed_mailingculturefeed_messagesculturefeed_pagesculturefeed_searchculturefeed_search_uiculturefeed_search_viewsculturefeed_socialculturefeed_uiculturefeed_userpoints_uientry_api_ui

The modules...

28

vrijdag 20 september 13

Page 41: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

culturefeed_search

culturefeed_search_ui

culturefeed_agenda

Functionality for events (new SOLR search API)

29

implements search library imports taxonomy (drush)autosuggests

search blocks, facets & results

detail pages of events and locations

vrijdag 20 september 13

Page 42: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Functionality for profiles (UiTiD - "outid" API)

30

culturefeed_ui all user / profile blocks and pages

vrijdag 20 september 13

Page 43: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Integration with social features

31

culturefeed_social all ‘social’ features: likes, comments, attends, notifications, etc

vrijdag 20 september 13

Page 44: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Views integration

32

culturefeed_search_views

select some fields and add filters and sorts

vrijdag 20 september 13

Page 45: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Other new modules

33

culturefeed_pages

culturefeed_messages

culturefeed_userpoints_ui

user can create a page (locations, performers, families, schools, ...)

send / receive messages

collect userpoints and claim promotions

vrijdag 20 september 13

Page 46: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

SEO optimalisations

34

- NOINDEX-strategy

- URL-rewriting (slugs)- XML Sitemap- Breadcrumbs- Page title- Document outline- In progress

More info @lukdens

“Googlebot found an extremely high number of URLs on ...”

vrijdag 20 september 13

Page 47: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Devel module

35

Performance site = performance API (+/-)

Logs:- requests to SOLR- requests to UiTiD

Threshold > watchdog

vrijdag 20 september 13

Page 48: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Next steps: CRUD on events

36

Functions to do a CRUD on events are already in library, but we build a form to create, update and delete events in our UiTdatabank as well.

entry_api_ui (still some issues)

vrijdag 20 september 13

Page 49: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Next steps: integration of RFID loyalty program

37

UiTPAS, in development, release end of this year (for muntpunt.be - Brussels).

vrijdag 20 september 13

Page 50: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Other todo’s

38

- Remove all non-generic theming and create a subtheme for bootstrap

- Documentation...

vrijdag 20 september 13

Page 51: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

CultuurNet Vlaanderen is looking for a...

DRUPAL FRONT END DEVELOPER- 1 jaar+ experience in Drupal Front End webdevelopment

- 2 jaar+ experience in algemeen Front End webdevelopment

More info http://www.cultuurnet.be/zoekt-fe-developer - [email protected]

39

vrijdag 20 september 13

Page 52: BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

DEMO

40

- shell script: - downloads dependencies (symfony, guzzle, libraries) - install core and some contrib modules - install culturefeed module suite - download taxonomy terms (drush) - create an install profile

https://github.com/cultuurnet/culturefeed-kickstart

vrijdag 20 september 13