Case Study: In-Fisherman.com – Building an Enterprise Level Drupal Site<br />An overview of the development process, lesso...
Presenter Bio: Paul Chason, Managing Partner<br />Mediacurrent Founder – established March 2004<br />Master’s Degree Medic...
Presenter Bio: Josh Estep, Drupal Developer<br />BS Computer Science<br />Drupal “Swiss Army Knife” – themer, module devel...
Client Profile<br />InterMedia Outdoors, Inc. (IMO), is the leading multimedia company serving the needs of outdoors enthu...
Challenge<br />Ensure site could be easily managed by in-house development team<br />Build a scalable site that can perfor...
Why Drupal?<br />Scalability - Drupal was perceived as the most scalable and extensible open source option<br />Cost - No ...
Why Drupal?<br />Flexibility - IMO&apos;s previous CMS was inflexible, making it difficult to implement new and innovative...
In-Fisherman.com Goals<br />Better User Experience - Create an engaging web experience for users by leveraging IMO’s vast ...
Hosting Architecture<br />“Shuttle” servers store cached content<br />Page requests routed through Cisco Load Balancer, ba...
Development Process<br />UI design completed without Drupal in mind<br />Loose set of requirements<br />Agile approach<br ...
Design & Theming<br />Worked with NYC-based Brooklyn Design Foundry to implement custom theme<br />Adapted UI design to Ze...
Obstacles & Solutions<br />Timeline - Developing 3-4 enterprise class sites in a compressed timeframe (5 or 6 months)<br /...
Obstacles & Solutions<br />Sharing Data across multiple domains - The In-Fisherman.com site uses several databases to supp...
Obstacles & Solutions<br />Data Import - IMO had lots of content (1200+ fishing articles) to be imported from Filemaker Pr...
In-Fisherman.com Contributed Modules<br />Nice Menus: This easy-to-configure module gave the site’s primary navigation a s...
In-Fisherman.com Custom Modules<br />Alternating Content Background Manager: This allows site administrators to update the...
In-Fisherman.com Custom Modules<br />IMO import Fix: A helper module that assists in correcting file paths, taxonomy assig...
Training & Documentation<br />Never overlook the level of effort needed<br />Used Drupal for documentation repository, lev...
Lessons Learned<br />Break the project down into chunks<br />Use a proven recipe of modules<br />Acquire 3rd party code as...
For more information on Mediacurrent<br />Visit www.mediacurrent.com<br />www.twitter.com/mediacurrent<br />paul.chason@me...
Upcoming SlideShare
Loading in...5
×

In-Fisherman.com - Building an Enterprise Level Drupal Site

2,822

Published on

This case study features the development process employed for building out the In-Fisherman.com Drupal website.

Published in: Business, Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,822
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
25
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

In-Fisherman.com - Building an Enterprise Level Drupal Site

  1. 1. Case Study: In-Fisherman.com – Building an Enterprise Level Drupal Site<br />An overview of the development process, lessons learned and successful techniques for team-based development projects<br />Presented by Paul Chason & Josh Estep<br />
  2. 2. Presenter Bio: Paul Chason, Managing Partner<br />Mediacurrent Founder – established March 2004<br />Master’s Degree Medical Illustration<br />Stints at WebMD, Home Depot<br />Bring left and right brain expertise to Mediacurrent<br />Self-taught web developer<br />ASP.NET / SQL Server, PHP / MySQL, Flash Actionscript, Javascript, CSS, XHTML<br />Adobe CS Expert<br />
  3. 3. Presenter Bio: Josh Estep, Drupal Developer<br />BS Computer Science<br />Drupal “Swiss Army Knife” – themer, module developer, MySQL guru<br />4 years Drupal development experience at large media company<br />XHTML, CSS, Photoshop, Javascript, Perl, PHP, Linux, C++, Java<br />
  4. 4. Client Profile<br />InterMedia Outdoors, Inc. (IMO), is the leading multimedia company serving the needs of outdoors enthusiasts<br />Boasts the largest network of websites (16 total) dedicated to hunting, shooting and fishing<br />Websites serve to complement print magazines<br />
  5. 5. Challenge<br />Ensure site could be easily managed by in-house development team<br />Build a scalable site that can perform under averages of 67,789 user visits, 266,379 page visits, and an average of 4:1 page visits/user visits in a typical month<br />Leverage Drupal’s social-networking features such as tagging, commenting and user generated content to entice new users<br />
  6. 6. Why Drupal?<br />Scalability - Drupal was perceived as the most scalable and extensible open source option<br />Cost - No licensing fees<br />Multi-site / multi-database architecture - Drupal’s flexible multi-site configuration would allow IMO to store content and user data in multiple databases for a single site. <br />Hosting - The expected traffic for the site demanded a low-cost enterprise level hosting environmen; Drupaland the LAMP stack were a natural fit<br />
  7. 7. Why Drupal?<br />Flexibility - IMO&apos;s previous CMS was inflexible, making it difficult to implement new and innovative features. Drupal’s modular framework, API and theme override capabilities made it the top choice <br />Theme customization - Drupal’s separation of presentation and business logic through the theme layer allowed the In-Fisherman.com UI to undergo significant revisions during and after development <br />Active development community - A fragile economy encouraged open source software vs. a proprietary vendor solution and allowed IMO to not be “locked in” to one vendor<br />
  8. 8. In-Fisherman.com Goals<br />Better User Experience - Create an engaging web experience for users by leveraging IMO’s vast repository of sportsman-related content and video<br />Branding - Provide a more modern, contemporary look and feel that reinforced the magazine brand<br />Intriguing Content - Give anglers the ability to quickly find the information they’re seeking by using a well defined taxonomy structure and lists of articles tailored toward a user’s individual preferences<br />Scalability - Careful consideration needed to be given to scaling, isolating points of failure and configuring the site to fail “gracefully”<br />
  9. 9. Hosting Architecture<br />“Shuttle” servers store cached content<br />Page requests routed through Cisco Load Balancer, balancer identifies open shuttle<br />MySQL DB master / slave<br />
  10. 10. Development Process<br />UI design completed without Drupal in mind<br />Loose set of requirements<br />Agile approach<br />Active Collab for project management <br />Weekly stand up calls with client<br />Use Skype for up to the minute communication among development team<br />Oh Noooo!<br />
  11. 11. Design & Theming<br />Worked with NYC-based Brooklyn Design Foundry to implement custom theme<br />Adapted UI design to Zen theme<br />Built “Custom Content” module in place of Panels<br />Developed custom modules for generating Flash widgets and associated XML data<br />Flexibility of Zen allowed for numerous design tweaks during final theming phase<br />
  12. 12. Obstacles & Solutions<br />Timeline - Developing 3-4 enterprise class sites in a compressed timeframe (5 or 6 months)<br />Limited information architecture specifications - Project stakeholders met often to discuss items such as data query logic for blocks and layout format of node edit pages<br />Multiple themers - With several developers involved in theming, the team needed to coordinate everyone’s efforts<br />Search - For a general site searching, the Google Search Appliance (GSA) was used<br />
  13. 13. Obstacles & Solutions<br />Sharing Data across multiple domains - The In-Fisherman.com site uses several databases to support high-volume traffic<br />Block Flattener module<br />Multidomain module<br />Optimization of multipage nodes - The article content type needed to present up to 6 pages of content<br />Combination of theme overrides in template.php and customization in the node.tpl file<br />Custom module to intercept the clean URL and detect a page number at the end<br />
  14. 14. Obstacles & Solutions<br />Data Import - IMO had lots of content (1200+ fishing articles) to be imported from Filemaker Pro database<br />Enterprise level hosting and establishing fault-tolerance – In-Fisherman.com traffic demanded a hosting infrastucture capable of high load<br />Multiple Drupal databases with master/slave database servers<br />If one section of site fails, the other section doesn’t fail with it<br />Partition user data, editorial content and user-generated content<br />
  15. 15. In-Fisherman.com Contributed Modules<br />Nice Menus: This easy-to-configure module gave the site’s primary navigation a set JavaScript drop down menus.<br />Fivestar: Allows site users to rate content.<br />Workflow: Gives content contributors the ability to promote content and have it approved by an editor before it’s published.<br />Transliteration: This module “sanitizes” file names for user uploaded content, helping oddly named files become readable by the file server.<br />String Overrides: Gives site administrators a simple way to replace text that’s passed through the Drupal API t() function.<br />TinyMCE: A WYSIWYG editor that gives content contributors the ability to style web site copy.<br />
  16. 16. In-Fisherman.com Custom Modules<br />Alternating Content Background Manager: This allows site administrators to update the background images used by an accordion flash widget without having to update XML manually. New images are saved to specific filenames referenced in the XML.<br />Block Flattener and Block Flattener Reader: These modules allow block data to be shared between subdomains without directly accessing a database for block content.<br />Gear Related Articles: This module outputs block content to a flat file for sharing across subdomains, similar to the Block Flattener module.<br />Profanity Input Filter: This provides rudimentary, context-based input filtering via a modifiable set of rules. Site administrators can insert custom string rules of prohibited content. The module then replaces the prohibited strings with asterisks.<br />Fish Profile: Adds radio button-based fields to the profile form and reorganizes the fields.<br />Gear Related Articles Export: Saves block data to a flat file for use by blocks in other subdomains thereby reducing cross domain database calls.<br />
  17. 17. In-Fisherman.com Custom Modules<br />IMO import Fix: A helper module that assists in correcting file paths, taxonomy assignments and string replacements during the article import process.<br />In-Fisherman Form Alters: Handles all form alter logic for In-Fisherman.com.<br />Multidomain: Manages the subdomain links for a multi-site Drupalinstall.<br />Node Process: Processes node page calls, allowing nodes to have multiple pages.<br />Profanity Input Filter: Provides an input that can filter profane words or phrases based on a set of rules.<br />SolunarMonth: The In-Fisherman site provides solunar calendars, which provide the best lunar fishing phase in any given month. This module supplies the solunar_month content type for the calendar. CCK couldn’t be utilized because the number of fields required by this content type consistently maxed out PHP’s memory allocation when loading the node edit form. The module also supplies a dynamic XML menu item for a given month and year together.<br />WWW Advanced Search: Generates an advanced search form page, containing category-based filters.<br />
  18. 18. Training & Documentation<br />Never overlook the level of effort needed<br />Used Drupal for documentation repository, leveraging the book module<br />Targeted toward developers and content managers<br />Give simple directions and use examples<br />
  19. 19. Lessons Learned<br />Break the project down into chunks<br />Use a proven recipe of modules<br />Acquire 3rd party code as soon as possible<br />Orient designers on the “Drupal way”<br />
  20. 20. For more information on Mediacurrent<br />Visit www.mediacurrent.com<br />www.twitter.com/mediacurrent<br />paul.chason@mediacurrent.com<br />josh.estep@mediacurrent.com<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×