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


Top Related