My DrupalCamp Ottawa 2014 talk.
Case Study:
Relaunching Grapevine.ca on Drupal
View the accompanying talk here: https://www.youtube.com/watch?v=nsPTp9USbt0
2. Grape Vine Case Study: DrupalCamp 2014
CASE STUDY
Relaunching Grapevine.ca on Drupal
3. Grape Vine Case Study: DrupalCamp 2014
THE OBLIGATORY âABOUT MEâ SLIDE
â Iâm James King (Hi!)
â CTO Fenix Solutions Inc
â Since 2001
â Drupal since 2009
â Since 1990!
â One of Ottawaâs original Internet businesses
Dude, get on with it...
Fenix
Grape Vine
4. Grape Vine Case Study: DrupalCamp 2014
â Perl codebase. Over 10 years old
â Extremely limited administrative functions
â No CMS functions at all
â Extremely expensive media hosting
â Users could not self-manage their own listings
â Over 10,000 unique visitors a month in the busy
season
THE âBEFOREâ
...back when the Spice Girls roamed the earth
5. Grape Vine Case Study: DrupalCamp 2014
â Time
â Budget
â Needed CMS
â Users/Permissions/Access to Content
â Versioning and Workflow
â Media Handling
WHY DRUPAL?
Or âwhy not [Insert Framework Here]?â
The Big Ones
The Other Big Ones
6. Grape Vine Case Study: DrupalCamp 2014
â How generic is your requirement?
â Does a contrib module do what you need it to
do⊠I mean, REALLY.
â Does the module have an module.api.inc file?
Was it meant to be extended?
â Is the module being maintained? If not, do you
have the time/inclination to step in?
â What about the UX?
CUSTOM vs CONTRIB
Cue the nerdy slap fights
7. Grape Vine Case Study: DrupalCamp 2014
â How business-specific are your requirements?
â Are you SURE there isnât a contrib module that
does what you need?
â Have you figured out a caching strategy?
â Are you going to have to build an admin UI? Are
you going to have to integrate with Views?
â Are you prepared for the extra QA/QC?
CUSTOM vs CONTRIB
Not the face!
8. Grape Vine Case Study: DrupalCamp 2014
â Originally tried the print module
â 10 years of kruft and bizarre display logic to deal
with
â Complex multi-page layout with highly variable
content
â Converting HTML to PDF was far too limited
â Not a feature we had planned to spend so much
time on
PDF FEATURE SHEETS
Finally, some real-world examples!
9. Grape Vine Case Study: DrupalCamp 2014
â Workbench Moderation worked out really wellâŠ
until we implemented a multi-step sign-up
process (CTools Multistep Wizard)
â By design, WBM wants to create a new revision
on every node_save.
â Luckily WBM is implemented well. We were able
to set properties on node object before save so it
would save to current version.
MODERATED CONTENT
I should write a blog post about this one
10. Grape Vine Case Study: DrupalCamp 2014
â OpenLayers worked great⊠until we imported all
4000 listings
â Views caching made it worse. Too many unique
result sets, too many points.
â Reasonable performance limited map view to 30
points at a time
â Removed OpenLayers/Views entirely. Talked
directly to Google Maps API.
MAPPING
Yay OpenLayers! Booooo OpenLayers...
11. Grape Vine Case Study: DrupalCamp 2014
â Originally used the Statistics module
â Switched to GA API, pulls stats per listing
Sample Code: https://gist.github.com/jmk1ng/9442895
GOOGLE ANALYTICS
Something, something, NSA
12. Grape Vine Case Study: DrupalCamp 2014
â RealtorsÂź
are very keen to mass-solicit Grape
Vine clients
â No generic solution to this very specific problem
â Canât blindly block messages from agents as
many are legit and welcome
SPAM!
If only it were just penis pills...
13. Grape Vine Case Study: DrupalCamp 2014
â Couldnât use Feeds or Migrate - data needed
massive cleansing
â Needed to limit downtime as much as possible
â 10 years of ad-hoc formatting to support/cleanse
Sample Code: https://gist.github.com/jmk1ng/9536525
CONTENT MIGRATION
Like a matted rescue puppy
14. Grape Vine Case Study: DrupalCamp 2014
â Single Linux VPS
â Dual core CPU
â 8GB of RAM
â APC, Memcache (97% hit rate)
â 50GB Disk
â Amazon S3 for Media, New Relic for Monitoring
HOSTING + PERFORMANCE
If at first you donât succeed, add more RAM
15. Grape Vine Case Study: DrupalCamp 2014
â Workbench Moderation
â Geofield
â Geocoder
â Storage API
â Memcache
â Views
SUMMING IT UP
Less is often more
47 Contrib Modules
7 Custom Modules
â Grape Vine Forms
â Grape Vine Listings
â Grape Vine Alerts
â Grape Vine PDF
â Grape Vine Invoice
â Grape Vine Dashboard
â Grape Vine Data Export
Ă Panels
Ă Display Suite
Ă Context
Ă WYSIWYG
Ă Solr (yet)
16. Grape Vine Case Study: DrupalCamp 2014
â Multilingual listings!
â Mobile-first, responsive search experience
THE FUTURE
Faster, Better, Stronger
17. Grape Vine Case Study: DrupalCamp 2014
james@fenix-solutions.com
613-564-3344
@jmk1ng
QUESTIONS?
Before you ask: boxer-briefs