SlideShare a Scribd company logo
Case Study: In-Fisherman.com – Building an Enterprise Level Drupal SiteAn overview of the development process, lessons learned and successful techniques for team-based development projectsPresented by Paul Chason & Josh Estep
Presenter Bio: Paul Chason, Managing PartnerMediacurrent Founder – established March 2004Master’s Degree Medical IllustrationStints at WebMD, Home DepotBring left and right brain expertise to MediacurrentSelf-taught web developerASP.NET / SQL Server, PHP / MySQL, Flash Actionscript, Javascript, CSS, XHTMLAdobe CS Expert
Presenter Bio: Josh Estep, Drupal DeveloperBS Computer ScienceDrupal “Swiss Army Knife” – themer, module developer, MySQL guru4 years Drupal development experience at large media companyXHTML, CSS, Photoshop, Javascript, Perl, PHP, Linux, C++, Java
Client ProfileInterMedia Outdoors, Inc. (IMO), is the leading multimedia company serving the needs of outdoors enthusiastsBoasts the largest network of websites (16 total) dedicated to hunting, shooting and fishingWebsites serve to complement print magazines
ChallengeEnsure site could be easily managed by in-house development teamBuild 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 monthLeverage Drupal’s social-networking features such as tagging, commenting and user generated content to entice new users
Why Drupal?Scalability - Drupal was perceived as the most scalable and extensible open source optionCost - No licensing feesMulti-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. Hosting - The expected traffic for the site demanded a low-cost enterprise level hosting environmen; Drupaland the LAMP stack were a natural fit
Why Drupal?Flexibility - IMO'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 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 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
In-Fisherman.com GoalsBetter User Experience - Create an engaging web experience for users by leveraging IMO’s vast repository of sportsman-related content and videoBranding - Provide a more modern, contemporary look and feel that reinforced the magazine brandIntriguing 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 preferencesScalability - Careful consideration needed to be given to scaling, isolating points of failure and configuring the site to fail “gracefully”
Hosting Architecture“Shuttle” servers store cached contentPage requests routed through Cisco Load Balancer, balancer identifies open shuttleMySQL DB master / slave
Development ProcessUI design completed without Drupal in mindLoose set of requirementsAgile approachActive Collab for project management Weekly stand up calls with clientUse Skype for up to the minute communication among development teamOh Noooo!
Design & ThemingWorked with NYC-based Brooklyn Design Foundry to implement custom themeAdapted UI design to Zen themeBuilt “Custom Content” module in place of PanelsDeveloped custom modules for generating Flash widgets and associated XML dataFlexibility of Zen allowed for numerous design tweaks during final theming phase
Obstacles & SolutionsTimeline - Developing 3-4 enterprise class sites in a compressed timeframe (5 or 6 months)Limited information architecture specifications - Project stakeholders met often to discuss items such as data query logic for blocks and layout format of node edit pagesMultiple themers - With several developers involved in theming, the team needed to coordinate everyone’s effortsSearch - For a general site searching, the Google Search Appliance (GSA) was used
Obstacles & SolutionsSharing Data across multiple domains - The In-Fisherman.com site uses several databases to support high-volume trafficBlock Flattener moduleMultidomain moduleOptimization of multipage nodes - The article content type needed to present up to 6 pages of contentCombination of theme overrides in template.php and customization in the node.tpl fileCustom module to intercept the clean URL and detect a page number at the end
Obstacles & SolutionsData Import - IMO had lots of content (1200+ fishing articles) to be imported from Filemaker Pro databaseEnterprise level hosting and establishing fault-tolerance – In-Fisherman.com traffic demanded a hosting infrastucture capable of high loadMultiple Drupal databases with master/slave database serversIf one section of site fails, the other section doesn’t fail with itPartition user data, editorial content  and user-generated content
In-Fisherman.com Contributed ModulesNice Menus: This easy-to-configure module gave the site’s primary navigation a set JavaScript drop down menus.Fivestar: Allows site users to rate content.Workflow: Gives content contributors the ability to promote content and have it approved by an editor before it’s published.Transliteration: This module “sanitizes” file names for user uploaded content, helping oddly named files become readable by the file server.String Overrides: Gives site administrators a simple way to replace text that’s passed through the Drupal API t() function.TinyMCE: A WYSIWYG editor that gives content contributors the ability to style web site copy.
In-Fisherman.com Custom ModulesAlternating 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.Block Flattener and Block Flattener Reader: These modules allow block data to be shared between subdomains without directly accessing a database for block content.Gear Related Articles: This module outputs block content to a flat file for sharing across subdomains, similar to the Block Flattener module.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.Fish Profile: Adds radio button-based fields to the profile form and reorganizes the fields.Gear Related Articles Export: Saves block data to a flat file for use by blocks in other subdomains thereby reducing cross domain database calls.
In-Fisherman.com Custom ModulesIMO import Fix: A helper module that assists in correcting file paths, taxonomy assignments and string replacements during the article import process.In-Fisherman Form Alters: Handles all form alter logic for In-Fisherman.com.Multidomain: Manages the subdomain links for a multi-site Drupalinstall.Node Process: Processes node page calls, allowing nodes to have multiple pages.Profanity Input Filter: Provides an input that can filter profane words or phrases based on a set of rules.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.WWW Advanced Search: Generates an advanced search form page, containing category-based filters.
Training & DocumentationNever overlook the level of effort neededUsed Drupal for documentation repository, leveraging the book moduleTargeted toward developers and content managersGive simple directions and use examples
Lessons LearnedBreak the project down into chunksUse a proven recipe of modulesAcquire 3rd party code as soon as possibleOrient designers on the “Drupal way”
For more information on MediacurrentVisit www.mediacurrent.comwww.twitter.com/mediacurrentpaul.chason@mediacurrent.comjosh.estep@mediacurrent.com

More Related Content

PPT
web development
PPTX
Best Practices for Migrating a Legacy-Based CMS to Drupal
 
PPTX
Facebook architecture presentation: scalability challenge
PPT
Drupal for Libraries 01/22/09
PPTX
Branding & Design Opportunities/Challenges with SharePoint 2013
PPT
Facebook plateform architecture presentation
PPT
HTML5 and CSS3 Unit A
PPTX
Architecture of Facebook
web development
Best Practices for Migrating a Legacy-Based CMS to Drupal
 
Facebook architecture presentation: scalability challenge
Drupal for Libraries 01/22/09
Branding & Design Opportunities/Challenges with SharePoint 2013
Facebook plateform architecture presentation
HTML5 and CSS3 Unit A
Architecture of Facebook

What's hot (17)

PPT
Hire Drupal Developers For Your Website
PPTX
Blooming SharePoint Design
DOCX
SharePoint 2013 for Administrators and IT Pro's
PDF
What's new in Portal and WCM 8.5
PPT
IBM WebSphere Portal
PDF
Websphere Portal
PDF
IBM WebSphere Portal References Education
PPTX
SharePoint Tools Concepts
PPTX
Modern SharePoint Content Management Training
PPT
Drupal Distributions
DOCX
E pi server
PPTX
Internet Sites with Microsoft Office SharePoint Server 2007
PPTX
SharePoint Site templates, site definitions, feature stapling
PPS
Rhumba with Joomla! Using a CMS to Build Community
PPT
Rhumba With Joomla
PDF
Managing Content In Portal Wcm
DOC
Content management system
Hire Drupal Developers For Your Website
Blooming SharePoint Design
SharePoint 2013 for Administrators and IT Pro's
What's new in Portal and WCM 8.5
IBM WebSphere Portal
Websphere Portal
IBM WebSphere Portal References Education
SharePoint Tools Concepts
Modern SharePoint Content Management Training
Drupal Distributions
E pi server
Internet Sites with Microsoft Office SharePoint Server 2007
SharePoint Site templates, site definitions, feature stapling
Rhumba with Joomla! Using a CMS to Build Community
Rhumba With Joomla
Managing Content In Portal Wcm
Content management system
Ad

Similar to In-Fisherman.com - Building an Enterprise Level Drupal Site (20)

PDF
Case study infisherman
 
PPT
Beginner's guide to drupal
PPT
Open Source CMS
PDF
Mlb drupal bizday_presentation
PPT
Site Manager rocks!
PPT
Open Source Content Management Systems
PPT
Drupal seminar at DDIT Nadiad
ODP
Building Dynamic Websites With Joomla CMS
PDF
Introduction To Drupal
PPTX
Drupal_cubet seminar
PPTX
WordPress 3.x for the sake of your sanity
PPT
JIIT PORTAL based on Drupal
PDF
Adobe Experience Manager Core Components
PPT
Drupal
PPTX
Php Web Frameworks
PPT
How To Implement a CMS
PDF
A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...
PDF
Develop Engaging and High Performance Portal Themes That Power Exceptional Di...
PPT
Drupal and Winona360
PPTX
Developing Branding Solutions for 2013
Case study infisherman
 
Beginner's guide to drupal
Open Source CMS
Mlb drupal bizday_presentation
Site Manager rocks!
Open Source Content Management Systems
Drupal seminar at DDIT Nadiad
Building Dynamic Websites With Joomla CMS
Introduction To Drupal
Drupal_cubet seminar
WordPress 3.x for the sake of your sanity
JIIT PORTAL based on Drupal
Adobe Experience Manager Core Components
Drupal
Php Web Frameworks
How To Implement a CMS
A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...
Develop Engaging and High Performance Portal Themes That Power Exceptional Di...
Drupal and Winona360
Developing Branding Solutions for 2013
Ad

More from Mediacurrent (20)

PDF
Penn State News: Pivoting to Decoupled Drupal with Gatsby
PDF
Evolving How We Measure Digital Success in Higher Ed
PDF
Penn State scales static Drupal to new heights
PDF
Delivering Meaningful Digital Experiences in Higher Ed
PDF
Content Strategy: Building Connections with Your Audience
PDF
Decoupled Drupal and Gatsby in the Real World
PDF
A Better Way to Build and Manage Sites with Rain for Drupal 9
PPTX
Drupal Security: What You Need to Know
PDF
Leveraging Design Systems to Streamline Web Projects
PPTX
Reimagining Your Higher Ed Web Strategy
PPTX
How to Digitally Transform Higher Ed with Drupal
PPTX
Is my website accessible? Common mistakes (and how to fix them)
PDF
Managing Images In Large Scale Drupal 8 & 9 Websites
PDF
Paragraphs v Layout Builder - The Final Showdown
PDF
MagMutual.com: On the JAMStack with Gatsby and Drupal 8
PDF
Creating an Organizational Culture of Giving Back to Drupal
PPTX
Level Up Your Team: Front-End Development Best Practices
PPTX
Best Practices for Moving to Drupal 9
PPTX
How to Prove Marketing ROI: Overcoming Digital Marketing Challenges
PDF
Prepare Your Drupal 9 Action Plan
Penn State News: Pivoting to Decoupled Drupal with Gatsby
Evolving How We Measure Digital Success in Higher Ed
Penn State scales static Drupal to new heights
Delivering Meaningful Digital Experiences in Higher Ed
Content Strategy: Building Connections with Your Audience
Decoupled Drupal and Gatsby in the Real World
A Better Way to Build and Manage Sites with Rain for Drupal 9
Drupal Security: What You Need to Know
Leveraging Design Systems to Streamline Web Projects
Reimagining Your Higher Ed Web Strategy
How to Digitally Transform Higher Ed with Drupal
Is my website accessible? Common mistakes (and how to fix them)
Managing Images In Large Scale Drupal 8 & 9 Websites
Paragraphs v Layout Builder - The Final Showdown
MagMutual.com: On the JAMStack with Gatsby and Drupal 8
Creating an Organizational Culture of Giving Back to Drupal
Level Up Your Team: Front-End Development Best Practices
Best Practices for Moving to Drupal 9
How to Prove Marketing ROI: Overcoming Digital Marketing Challenges
Prepare Your Drupal 9 Action Plan

Recently uploaded (20)

PPTX
Business Ethics - An introduction and its overview.pptx
PPT
340036916-American-Literature-Literary-Period-Overview.ppt
PDF
How to Get Funding for Your Trucking Business
PDF
Dr. Enrique Segura Ense Group - A Self-Made Entrepreneur And Executive
DOCX
unit 1 COST ACCOUNTING AND COST SHEET
PPTX
Dragon_Fruit_Cultivation_in Nepal ppt.pptx
PDF
Types of control:Qualitative vs Quantitative
PDF
WRN_Investor_Presentation_August 2025.pdf
PDF
BsN 7th Sem Course GridNNNNNNNN CCN.pdf
PPTX
5 Stages of group development guide.pptx
PPTX
ICG2025_ICG 6th steering committee 30-8-24.pptx
PDF
20250805_A. Stotz All Weather Strategy - Performance review July 2025.pdf
PPTX
Amazon (Business Studies) management studies
PDF
IFRS Notes in your pocket for study all the time
PDF
Unit 1 Cost Accounting - Cost sheet
PDF
Training And Development of Employee .pdf
PPTX
The Marketing Journey - Tracey Phillips - Marketing Matters 7-2025.pptx
PDF
Roadmap Map-digital Banking feature MB,IB,AB
PDF
DOC-20250806-WA0002._20250806_112011_0000.pdf
PDF
Laughter Yoga Basic Learning Workshop Manual
Business Ethics - An introduction and its overview.pptx
340036916-American-Literature-Literary-Period-Overview.ppt
How to Get Funding for Your Trucking Business
Dr. Enrique Segura Ense Group - A Self-Made Entrepreneur And Executive
unit 1 COST ACCOUNTING AND COST SHEET
Dragon_Fruit_Cultivation_in Nepal ppt.pptx
Types of control:Qualitative vs Quantitative
WRN_Investor_Presentation_August 2025.pdf
BsN 7th Sem Course GridNNNNNNNN CCN.pdf
5 Stages of group development guide.pptx
ICG2025_ICG 6th steering committee 30-8-24.pptx
20250805_A. Stotz All Weather Strategy - Performance review July 2025.pdf
Amazon (Business Studies) management studies
IFRS Notes in your pocket for study all the time
Unit 1 Cost Accounting - Cost sheet
Training And Development of Employee .pdf
The Marketing Journey - Tracey Phillips - Marketing Matters 7-2025.pptx
Roadmap Map-digital Banking feature MB,IB,AB
DOC-20250806-WA0002._20250806_112011_0000.pdf
Laughter Yoga Basic Learning Workshop Manual

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

  • 1. Case Study: In-Fisherman.com – Building an Enterprise Level Drupal SiteAn overview of the development process, lessons learned and successful techniques for team-based development projectsPresented by Paul Chason & Josh Estep
  • 2. Presenter Bio: Paul Chason, Managing PartnerMediacurrent Founder – established March 2004Master’s Degree Medical IllustrationStints at WebMD, Home DepotBring left and right brain expertise to MediacurrentSelf-taught web developerASP.NET / SQL Server, PHP / MySQL, Flash Actionscript, Javascript, CSS, XHTMLAdobe CS Expert
  • 3. Presenter Bio: Josh Estep, Drupal DeveloperBS Computer ScienceDrupal “Swiss Army Knife” – themer, module developer, MySQL guru4 years Drupal development experience at large media companyXHTML, CSS, Photoshop, Javascript, Perl, PHP, Linux, C++, Java
  • 4. Client ProfileInterMedia Outdoors, Inc. (IMO), is the leading multimedia company serving the needs of outdoors enthusiastsBoasts the largest network of websites (16 total) dedicated to hunting, shooting and fishingWebsites serve to complement print magazines
  • 5. ChallengeEnsure site could be easily managed by in-house development teamBuild 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 monthLeverage Drupal’s social-networking features such as tagging, commenting and user generated content to entice new users
  • 6. Why Drupal?Scalability - Drupal was perceived as the most scalable and extensible open source optionCost - No licensing feesMulti-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. Hosting - The expected traffic for the site demanded a low-cost enterprise level hosting environmen; Drupaland the LAMP stack were a natural fit
  • 7. Why Drupal?Flexibility - IMO'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 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 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
  • 8. In-Fisherman.com GoalsBetter User Experience - Create an engaging web experience for users by leveraging IMO’s vast repository of sportsman-related content and videoBranding - Provide a more modern, contemporary look and feel that reinforced the magazine brandIntriguing 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 preferencesScalability - Careful consideration needed to be given to scaling, isolating points of failure and configuring the site to fail “gracefully”
  • 9. Hosting Architecture“Shuttle” servers store cached contentPage requests routed through Cisco Load Balancer, balancer identifies open shuttleMySQL DB master / slave
  • 10. Development ProcessUI design completed without Drupal in mindLoose set of requirementsAgile approachActive Collab for project management Weekly stand up calls with clientUse Skype for up to the minute communication among development teamOh Noooo!
  • 11. Design & ThemingWorked with NYC-based Brooklyn Design Foundry to implement custom themeAdapted UI design to Zen themeBuilt “Custom Content” module in place of PanelsDeveloped custom modules for generating Flash widgets and associated XML dataFlexibility of Zen allowed for numerous design tweaks during final theming phase
  • 12. Obstacles & SolutionsTimeline - Developing 3-4 enterprise class sites in a compressed timeframe (5 or 6 months)Limited information architecture specifications - Project stakeholders met often to discuss items such as data query logic for blocks and layout format of node edit pagesMultiple themers - With several developers involved in theming, the team needed to coordinate everyone’s effortsSearch - For a general site searching, the Google Search Appliance (GSA) was used
  • 13. Obstacles & SolutionsSharing Data across multiple domains - The In-Fisherman.com site uses several databases to support high-volume trafficBlock Flattener moduleMultidomain moduleOptimization of multipage nodes - The article content type needed to present up to 6 pages of contentCombination of theme overrides in template.php and customization in the node.tpl fileCustom module to intercept the clean URL and detect a page number at the end
  • 14. Obstacles & SolutionsData Import - IMO had lots of content (1200+ fishing articles) to be imported from Filemaker Pro databaseEnterprise level hosting and establishing fault-tolerance – In-Fisherman.com traffic demanded a hosting infrastucture capable of high loadMultiple Drupal databases with master/slave database serversIf one section of site fails, the other section doesn’t fail with itPartition user data, editorial content and user-generated content
  • 15. In-Fisherman.com Contributed ModulesNice Menus: This easy-to-configure module gave the site’s primary navigation a set JavaScript drop down menus.Fivestar: Allows site users to rate content.Workflow: Gives content contributors the ability to promote content and have it approved by an editor before it’s published.Transliteration: This module “sanitizes” file names for user uploaded content, helping oddly named files become readable by the file server.String Overrides: Gives site administrators a simple way to replace text that’s passed through the Drupal API t() function.TinyMCE: A WYSIWYG editor that gives content contributors the ability to style web site copy.
  • 16. In-Fisherman.com Custom ModulesAlternating 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.Block Flattener and Block Flattener Reader: These modules allow block data to be shared between subdomains without directly accessing a database for block content.Gear Related Articles: This module outputs block content to a flat file for sharing across subdomains, similar to the Block Flattener module.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.Fish Profile: Adds radio button-based fields to the profile form and reorganizes the fields.Gear Related Articles Export: Saves block data to a flat file for use by blocks in other subdomains thereby reducing cross domain database calls.
  • 17. In-Fisherman.com Custom ModulesIMO import Fix: A helper module that assists in correcting file paths, taxonomy assignments and string replacements during the article import process.In-Fisherman Form Alters: Handles all form alter logic for In-Fisherman.com.Multidomain: Manages the subdomain links for a multi-site Drupalinstall.Node Process: Processes node page calls, allowing nodes to have multiple pages.Profanity Input Filter: Provides an input that can filter profane words or phrases based on a set of rules.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.WWW Advanced Search: Generates an advanced search form page, containing category-based filters.
  • 18. Training & DocumentationNever overlook the level of effort neededUsed Drupal for documentation repository, leveraging the book moduleTargeted toward developers and content managersGive simple directions and use examples
  • 19. Lessons LearnedBreak the project down into chunksUse a proven recipe of modulesAcquire 3rd party code as soon as possibleOrient designers on the “Drupal way”
  • 20. For more information on MediacurrentVisit www.mediacurrent.comwww.twitter.com/mediacurrentpaul.chason@mediacurrent.comjosh.estep@mediacurrent.com