Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DrupalCamp Ottawa 2014 - Grape Vine Case Study

904 views

Published on

My DrupalCamp Ottawa 2014 talk.

Case Study:
Relaunching Grapevine.ca on Drupal

View the accompanying talk here: https://www.youtube.com/watch?v=nsPTp9USbt0

Published in: Technology
  • Be the first to comment

  • Be the first to like this

DrupalCamp Ottawa 2014 - Grape Vine Case Study

  1. 1. Grape Vine Case Study: DrupalCamp 2014
  2. 2. Grape Vine Case Study: DrupalCamp 2014 CASE STUDY Relaunching Grapevine.ca on Drupal
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 16. Grape Vine Case Study: DrupalCamp 2014 ● Multilingual listings! ● Mobile-first, responsive search experience THE FUTURE Faster, Better, Stronger
  17. 17. Grape Vine Case Study: DrupalCamp 2014 james@fenix-solutions.com 613-564-3344 @jmk1ng QUESTIONS? Before you ask: boxer-briefs
  18. 18. Grape Vine Case Study: DrupalCamp 2014

×