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.

The Dawson Way of Doing Things: A Study of Our Path Using WordPress

677 views

Published on

Dawson College, in Montreal, Quebec, Canada with 10,000+ students and 1,000+ faculty and staff has adopted WordPress as our primary web publishing platform. We’ve mostly had success, but we’ve also had our share of failures and growing pains. In this case study, I’m going to talk about how we started out with WordPress in 2010, migrated our main website a few years later to a multi-site install and how it all evolved to what we have today. Since then, we’ve adopted the “lean and mean” mantra to building sites, while making them easy to update. This case study will showcase the front and back-ends of our higher profile sites to show how we achieved our goals. We’ll also explain how we manage expectations, do our development, choose plugins and tools, and which themes we’ve come to rely on.

Published in: Education
  • Be the first to comment

  • Be the first to like this

The Dawson Way of Doing Things: A Study of Our Path Using WordPress

  1. 1. The Way of Doing Things A STUDY OF OUR PATH USING WORDPRESS DAWSON COLLEGE @MYDAWSONCOLLEGE WWW.DAWSONCOLLEGE.QC.CA JONATHAN PERLMAN @JPURPLEMAN WWW.JPURPLEMAN.CA
  2. 2. Jonathan Perlman • Canadian, eh! Montreal, Quebec • Senior web developer at Dawson College • Teacher at Dawson College’s CTD ( non-credit ) • WordCamp speaker • Member of WPCampus @jpurpleman | jpurpleman.ca
  3. 3. Dawson College at a glance • 20,000 applications a year • 10,000 students a semester • 1000+ faculty & staff • 26 programs of 2 or 3 years • 4 sectors • Social Science & Business Technologies • Creative and Applied Arts • Science, Medical Studies and Engineering • Continuing Education @jpurpleman | jpurpleman.ca
  4. 4. Through the years DAWSON COLLEGE WEBSITE @jpurpleman | jpurpleman.ca
  5. 5. Version 2 - The “running girl site” @jpurpleman | jpurpleman.ca
  6. 6. Version 2.5 – The “Frankensite” @jpurpleman | jpurpleman.ca
  7. 7. Department Websites @jpurpleman | jpurpleman.ca
  8. 8. CMS based sites @jpurpleman | jpurpleman.ca
  9. 9. @jpurpleman | jpurpleman.ca
  10. 10. Version 4 – Unified Branding @jpurpleman | jpurpleman.ca
  11. 11. 7 Month Migration @jpurpleman | jpurpleman.ca
  12. 12. Overall process Import & Audit Identify & Import Selection Build a theme Release Same Design Reformat In WP Redesign @jpurpleman | jpurpleman.ca
  13. 13. Migrating… • PHP + Curl + Simple Dom • http://simplehtmldom. sourceforge.net • Created posts with wp_insert_post() • Set meta value with ID of old page • Categories • Keep • Revise • Trash • Wtf?!? @jpurpleman | jpurpleman.ca
  14. 14. Looking back • Content Audit Plugin by Stephanie Leary • https://wordpress.org/plugins/content-audit • Community didn't realize we were on a brand new platform • Redirect, redirect, redirect – 1900+ • Edit two sites in parallel @jpurpleman | jpurpleman.ca
  15. 15. Version 5 – Mobile & Responsive @jpurpleman | jpurpleman.ca
  16. 16. Current Status @jpurpleman | jpurpleman.ca
  17. 17. Web staff IT 3 Communications 1 Staff & Faculty 200+ @jpurpleman | jpurpleman.ca
  18. 18. Web sites • www.dawsoncollege.qc.ca • Computer Science • Nursing • Human Resources • Registrar's Office • Student Fees • athletics.dawsoncollege.qc.ca • library.dawsoncollege.qc.ca • maps.dawsoncollege.qc.ca @jpurpleman | jpurpleman.ca 150 25+
  19. 19. Page views as per Google Analytics 300,000 400,000 500,000 600,000 700,000 800,000 Jun-15 Jul-15 Aug-15 Sep-15 Oct-15 Nov-15 Dec-15 Jan-16 Feb-16 Mar-16 Apr-16 May-16 Jun-16 @jpurpleman | jpurpleman.ca
  20. 20. WordPress infrastructure @jpurpleman | jpurpleman.ca Main website visitors
  21. 21. Web server environment • Virtualized web servers • 16G of ram • 4 cores • Nginx & PHP-FPM • Security rules block common attacks • Direct access to files within WordPress core • xmlrpc.php • Login page restricted to Dawson College network • SQL Injection • Unwanted user-agents @jpurpleman | jpurpleman.ca
  22. 22. Database server environment • Virtualized database servers • 16G of ram • 4 cores • MariaDB • Every WordPress install has a unique username and password in wp-config.php @jpurpleman | jpurpleman.ca
  23. 23. Backups • Virtual machine backups via Veem • MySQL Auto Backup • https://sourceforge.net/projects/automysqlbackup/ • Daily • Weekly • Monthly • Send data off-site @jpurpleman | jpurpleman.ca
  24. 24. WordPress updates • Auto-update disabled • Everything is version controlled • We never push out X.X • We always wait for X.X.1 • Reasons for waiting • Stability • Bug fixes for the major release @jpurpleman | jpurpleman.ca
  25. 25. Site Build @jpurpleman | jpurpleman.ca
  26. 26. Site environments • Every website has minimum two copies • Every developer has their own install • Example: www.dawsoncollege.qc.ca • Chris, Elisabeth, Jonathan • Staging • Production • Push and pull database content via command line @jpurpleman | jpurpleman.ca
  27. 27. Tools • WP-CLI • WP Awesome Config • Git • WP Migrate DB Pro • Custom bash scripts • https://github.com/jpurpleman/WordPress-Stuff @jpurpleman | jpurpleman.ca
  28. 28. WP Awesome Config • https://gist.github.com/ashfame/1923821 @jpurpleman | jpurpleman.ca
  29. 29. Git • We track • Core • Must-use Plugins • Plugins • Themes • We don't track • local-config.php • dev-config.php • staging-config.php • production-config.php • .DS_STORE • *.log • .htaccess • sitemap.xml • sitemap.xml.gz • wc-logs/* • wp-content/blogs.dir/ • wp-content/cache/ • wp-content/upgrade/ • wp-content/uploads/ @jpurpleman | jpurpleman.ca
  30. 30. Committing plugins 123438b Adding plugin: WordPress Importer at version 0.6.2 449e092 Updating plugin: Print Friendly and PDF to version 3.4.6 8d2d7e3 Updating plugin: WP Migrate DB Pro Media Files to version 1.4.4 ce0181e Updating plugin: WP Migrate DB Pro to version 1.6 3a37bd6 Updating plugin: Gravity Forms + Custom Post Types to version 3.1.3 91e2560 Updating plugin: jQuery Responsive Select Menu to version 1.5.0 83af679 Updating plugin: Gravity Forms to version 1.9.19 @jpurpleman | jpurpleman.ca git-wp-commit-object() https://github.com/jpurpleman/WordPress-Stuff/blob/master/.bashrc
  31. 31. Themes and Plugins @jpurpleman | jpurpleman.ca
  32. 32. Themes • Underscores • Canvas by WooCommerce • Twenty Seventeen • Twenty Sixteen • Twenty Fifteen • https://www.wordpress.org/themes @jpurpleman | jpurpleman.ca
  33. 33. Plugins • Admin Columns • Advanced Custom Fields • CMB2 • Disable Emoji's • Gravity Forms • Mapplic • Next Active Directory Integration • Responsive Menu • SportsPress Pro • The Events Calendar • TinyMCE Advanced • WP Migrate DB Pro • User Switching @jpurpleman | jpurpleman.ca
  34. 34. We use WordPress for… @jpurpleman | jpurpleman.ca
  35. 35. Primary website @jpurpleman | jpurpleman.ca
  36. 36. Conference sites @jpurpleman | jpurpleman.ca
  37. 37. Specialty sites @jpurpleman | jpurpleman.ca
  38. 38. Specialty sites @jpurpleman | jpurpleman.ca
  39. 39. Research grant projects @jpurpleman | jpurpleman.ca
  40. 40. Research grant projects @jpurpleman | jpurpleman.ca
  41. 41. Research grant projects @jpurpleman | jpurpleman.ca
  42. 42. Web-based applications @jpurpleman | jpurpleman.ca
  43. 43. Web-based applications @jpurpleman | jpurpleman.ca
  44. 44. Blogs @jpurpleman | jpurpleman.ca
  45. 45. Show and tell! @jpurpleman | jpurpleman.ca
  46. 46. Custom Backend Login @jpurpleman | jpurpleman.ca
  47. 47. Custom dashboard widgets @jpurpleman | jpurpleman.ca Custom dashboard widgets
  48. 48. Admin Additions • Editor level roles for most users • Custom post types for content • Ability to create forms • Allowed the use of Customizer @jpurpleman | jpurpleman.ca
  49. 49. Admin Additions • Added User Guides to the pull down help @jpurpleman | jpurpleman.ca
  50. 50. Contact blocks with Shortcode UI @jpurpleman | jpurpleman.ca
  51. 51. Contact blocks with Shortcode UI @jpurpleman | jpurpleman.ca
  52. 52. Contact blocks with Shortcode UI @jpurpleman | jpurpleman.ca
  53. 53. Contact blocks with Shortcode UI @jpurpleman | jpurpleman.ca
  54. 54. SharePoint Management @jpurpleman | jpurpleman.ca
  55. 55. SharePoint Management @jpurpleman | jpurpleman.ca
  56. 56. Looking Forward @jpurpleman | jpurpleman.ca
  57. 57. Looking forward • Iterative improvements pushed more frequently • More web application development on WordPress • Connecting sites and sharing data with REST API • More data gathering for site analytics and usage @jpurpleman | jpurpleman.ca
  58. 58. Thank you! Questions? DAWSON COLLEGE @MYDAWSONCOLLEGE WWW.DAWSONCOLLEGE.QC.CA JONATHAN PERLMAN @JPURPLEMAN WWW.JPURPLEMAN.CA

×