building a full-flavored event site in 5 minutes

Post on 13-Jun-2015

258 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES

Drupalcamp Leuven - 15/9/2013

1

vrijdag 20 september 13

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 - sven@cultuurnet.beOr after this session

2

vrijdag 20 september 13

Sven HoutmeyersTeam Leader developers at CultuurNetTechnical lead for all our Drupal Project@svenhoutmeyerssven@cultuurnet.be

Contents

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

Whoami?

3

vrijdag 20 september 13

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

through broad cultural communication and marketing

How we do this?

5

vrijdag 20 september 13

First of all we aggregate all cultural and other events

How we do this?

6

vrijdag 20 september 13

First of all we aggregate all cultural and other events

How we do this?

6

vrijdag 20 september 13

First of all we aggregate all cultural and other events

How we do this?

6

vrijdag 20 september 13

Products?

7

vrijdag 20 september 13

Products?

7

vrijdag 20 september 13

Products?

7

vrijdag 20 september 13

Products?

7

vrijdag 20 september 13

Products?

7

vrijdag 20 september 13

Products?

7

vrijdag 20 september 13

Products?

7

vrijdag 20 september 13

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

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

New situation

So how we do this?

9

APIEvents + participants

CultureFeedModule Suite

Drupal

vrijdag 20 september 13

New situation

So how we do this?

9

APIEvents + participants

CultureFeedModule Suite

Drupal

vrijdag 20 september 13

And who is doing this?

10

?8 developers, pm, solution architects, etc

vrijdag 20 september 13

And who is doing this?

10

?8 developers, pm, solution architects, etc

@stalski @zuuperman

vrijdag 20 september 13

And who is doing this?

10

?8 developers, pm, solution architects, etc

@stalski @zuuperman @kristofcoomans (cyberwolf)

vrijdag 20 september 13

freelancer since beginning of the year (2DotsTwice)

Whoami?

vrijdag 20 september 13

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

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

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

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

composer.json in project root

basic usage

16

vrijdag 20 september 13

run ‘composer install’

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

basic usage

17

vrijdag 20 september 13

basic usage

18

vrijdag 20 september 13

basic usage

19

vrijdag 20 september 13

basic usage

20

vrijdag 20 september 13

basic usage: filter query

21

vrijdag 20 september 13

basic usage: filter query

22

vrijdag 20 september 13

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

Guzzle: logging

24

vrijdag 20 september 13

Guzzle: logging

25

vrijdag 20 september 13

faceted search

26

vrijdag 20 september 13

faceted search

27

vrijdag 20 september 13

culturefeed_agendaculturefeed_develculturefeed_mailingculturefeed_messagesculturefeed_pagesculturefeed_searchculturefeed_search_uiculturefeed_search_viewsculturefeed_socialculturefeed_uiculturefeed_userpoints_uientry_api_ui

The modules...

28

vrijdag 20 september 13

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

Functionality for profiles (UiTiD - "outid" API)

30

culturefeed_ui all user / profile blocks and pages

vrijdag 20 september 13

Integration with social features

31

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

vrijdag 20 september 13

Views integration

32

culturefeed_search_views

select some fields and add filters and sorts

vrijdag 20 september 13

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

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

Devel module

35

Performance site = performance API (+/-)

Logs:- requests to SOLR- requests to UiTiD

Threshold > watchdog

vrijdag 20 september 13

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

Next steps: integration of RFID loyalty program

37

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

vrijdag 20 september 13

Other todo’s

38

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

- Documentation...

vrijdag 20 september 13

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 - sven@cultuurnet.be

39

vrijdag 20 september 13

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