CINXE.COM
PwC CareerAdvisor Launches on Drupal 8 | Drupal.org
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" version="XHTML+RDFa 1.0" dir="ltr" xmlns:fb="http://ogp.me/ns/fb#" xmlns:og="http://ogp.me/ns#"> <head profile="http://www.w3.org/1999/xhtml/vocab"> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width" /> <meta name="MobileOptimized" content="width" /> <!--[if IE]><![endif]--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="description" content="In January 2015, PwC US announced the launch of its new CareerAdvisor tool. Aimed to help students discover their professional goals and set themselves up for career success, the CareerAdvisor site provides links to reference articles and videos and other resources with career advice. After visitors create an account, they can track their progress with an interactive checklist" /> <meta name="generator" content="Drupal 7 (https://www.drupal.org)" /> <link rel="image_src" href="https://www.drupal.org/sites/all/themes/bluecheese/images/og.jpg" /> <link rel="canonical" href="https://www.drupal.org/case-study/pwc-careeradvisor-launches-on-drupal-8" /> <link rel="shortlink" href="https://www.drupal.org/node/2904252" /> <meta property="og:site_name" content="Drupal.org" /> <meta property="og:type" content="article" /> <meta property="og:url" content="https://www.drupal.org/case-study/pwc-careeradvisor-launches-on-drupal-8" /> <meta property="og:title" content="PwC CareerAdvisor Launches on Drupal 8" /> <meta property="og:description" content="In January 2015, PwC US announced the launch of its new CareerAdvisor tool. Aimed to help students discover their professional goals and set themselves up for career success, the CareerAdvisor site provides links to reference articles and videos and other resources with career advice. After visitors create an account, they can track their progress with an interactive checklist of action items for career success and add a list of personal ToDos. The CareerAdvisor site is critical to connecting with the millennial demographic and building a recruitment talent pool at PwC’s target universities." /> <meta property="og:updated_time" content="2021-02-05T18:21:21+00:00" /> <meta property="article:published_time" content="2017-08-23T20:57:04+00:00" /> <meta property="article:modified_time" content="2021-02-05T18:21:21+00:00" /> <title>PwC CareerAdvisor Launches on Drupal 8 | Drupal.org</title> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__vwdslBVX8xVWQ4hx4mWxIC59-lKGPldWkMIm435ispk__msT4O19F5udTbXsVQpyNk2EFYlbaoLwufqq_ZcdDcB0__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__Xi-PZpvKTY78w7l1WNsqwUA52MIupHJebCMiX34Ugt0__D_EUHDAfEQdxcLiSDY7hREUWkG1Ge56_h2z3Er8V188__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__WF0PRotZAhCcl0aJjY5W2LYj8UwiYuB2dZEFluOh3Tc__FviX13FUB-Ppa2XB29BUIJQZ1Wg-F5XiDE7XD5y7mjQ__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__pWCOPcaPe71p3QyGrAeqEd6dwL_n27prYOjnWQj4jVI__fR6RV6fh70jWL18FMzdVQpGUyYT8iL9Vw8wnms1DdQA__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__mlCLWKqAJJ-E-mMVCEmFp-7SE_XsgAxpf7HS-FcVqB0__7Tgy6u_PBeTp3b4s5UumhQPx9mJ_jhs1Z-WvSrqxAHk__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__QPp1snPjYt_xYr0c_V0IORcEElkIUBBBrvOB4ZE0Gnw__8jkPtXCYcQv4spuNwtiMBMbZXgCS-2GouDqwnCBDPRE__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> </head> <body class="html not-front not-logged-in no-sidebars page-node page-node- page-node-2904252 node-type-casestudy drupalorg-site-main" > <div id="skip-link" tabindex="-1"> <a class="element-invisible element-focusable" href="#content">Skip to main content</a> <a class="element-invisible element-focusable skip-link-search" href="#search-block-form">Skip to search</a> </div> <div class="region region-page-top"> <noscript aria-hidden="true"><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W36H8DW" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div id="drupalorg-crosssite-gdpr">Can we use first and third party cookies and web beacons to <a href="https://www.drupal.org/terms">understand our audience, and to tailor promotions you see</a>?<br><button class="yes">Yes, please</button><button class="no">No, do not track me</button></div> </div> <div id="nav-header"> <div class="menu-nav"> <a class="nav-btn" id="nav-open-btn" href="#block-system-main-menu"><img src="/sites/all/themes/bluecheese/images/icon-w-menu.svg" alt="Main menu"></a> </div> <nav id="navigation-inner" class="container-12" role="navigation"> <div class="region region-navigation"> <div id="block-system-main-menu" class="block block-system block-menu"> <div class="block-inner"> <div class="content"> <div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/home" title="Drupal.org home page">Drupal.org home</a></li> <li class="expanded"><a href="/about" title="">Why Drupal?</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/about" title="Learn about Drupal">About Drupal</a></li> <li class="leaf"><a href="/docs/getting-started/understanding-drupal/overview-of-drupal" title="">Platform overview</a></li> <li class="leaf"><a href="/about/11" title="">Drupal 11</a></li> <li class="leaf"><a href="/features/content-authoring" title="">Content Authoring</a></li> <li class="leaf"><a href="/features/content-as-a-service" title="">Content as a Service</a></li> <li class="leaf"><a href="/features/decoupled" title="">Decoupled</a></li> <li class="leaf"><a href="/features/accessibility" title="">Accessibility</a></li> <li class="leaf"><a href="/features/marketing-automation" title="">Marketing Automation</a></li> <li class="leaf"><a href="/features/multilingual" title="">Multilingual</a></li> <li class="leaf"><a href="/features/security" title="">Security</a></li> <li class="leaf"><a href="/features/personalization" title="">Personalization</a></li> <li class="leaf"><a href="/case-studies" title="View case studies to see how your peers have built success on Drupal">Case studies</a></li> <li class="leaf"><a href="https://www.drupal.org/association/beyond-the-build" title="">Video series</a></li> <li class="last leaf"><a href="/about/in-the-news" title="">News</a></li> </ul></div></li> <li class="expanded"><a href="/industries" title="Examples of solutions built on Drupal">Use cases</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/developers" title="">For Developers</a></li> <li class="leaf"><a href="/marketers" title="Why marketers should choose Drupal for their ambitious digital experiences">For Marketers</a></li> <li class="leaf"><a href="/industries/ecommerce" title="">E-commerce</a></li> <li class="leaf"><a href="/industries/education" title="">Education</a></li> <li class="leaf"><a href="/industries/fintech" title="">FinTech</a></li> <li class="leaf"><a href="/industries/government" title="">Government</a></li> <li class="leaf"><a href="/industries/healthcare" title="">Healthcare</a></li> <li class="leaf"><a href="/industries/hightech" title="">High Tech</a></li> <li class="leaf"><a href="/industries/nonprofit" title="">Nonprofit</a></li> <li class="leaf"><a href="/industries/retail" title="">Retail</a></li> <li class="last leaf"><a href="/industries/travel" title="">Travel</a></li> </ul></div></li> <li class="expanded"><a href="/documentation" title="Resources to help you on your Drupal journey">Resources</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/docs/getting-started/installing-drupal" title="">Installing Drupal</a></li> <li class="leaf"><a href="/documentation" title="Drupal Documentation">Documentation</a></li> <li class="leaf"><a href="/docs/user_guide/en/index.html" title="The Drupal 8 user guide will get you up to speed in no time">User guide</a></li> <li class="leaf"><a href="/docs/official_docs/local-development-guide" title="">Local Development Guide</a></li> <li class="leaf"><a href="/security" title="Find information about security releases for Drupal">Security</a></li> <li class="leaf"><a href="/news" title="News about the Drupal ecosystem">News</a></li> <li class="leaf"><a href="/planet" title="">Blog</a></li> <li class="last leaf"><a href="/about/drupal-7/d7eol/partners" title="Find help for your Drupal 7 migration">Migrate from D7</a></li> </ul></div></li> <li class="expanded"><a href="/drupal-services" title="Buy Drupal Products and Services">Services</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/drupal-services" title="View the Drupal service provider marketplace">Find an Agency Partner</a></li> <li class="leaf"><a href="/hosting" title="Find trusted Drupal hosting providers">Find Integrations & Hosting</a></li> <li class="leaf"><a href="/training" title="Find expert Drupal training">Find Drupal Training</a></li> <li class="leaf"><a href="/association/become-a-drupal-certified-partner" title="">Become a Certified Partner</a></li> <li class="last leaf"><a href="/about/drupal-7/d7eol/migration-resource-center/enterprise" title="">Find a D7 migration partner</a></li> </ul></div></li> <li class="expanded"><a href="/community" title="Drupal Community">Community</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/community/contributor-guide" title="">How to Contribute</a></li> <li class="leaf"><a href="/community" title="View the community portal and find all the ways you can contribute to Drupal">About the Community</a></li> <li class="leaf"><a href="/support" title="">Support</a></li> <li class="leaf"><a href="/project/governance" title="">Community Governance</a></li> <li class="last leaf"><a href="https://jobs.drupal.org" title="">Jobs/Careers</a></li> </ul></div></li> <li class="expanded"><a href="/community/events" title="Find Drupal Events around the world, from the official DrupalCons, to community Camps and Meet-Ups">Events</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="https://events.drupal.org/barcelona2024" title="">DrupalCon Barcelona 2024</a></li> <li class="leaf"><a href="https://events.drupal.org/singapore2024" title="">DrupalCon Singapore 2024</a></li> <li class="leaf"><a href="https://events.drupal.org/atlanta2025" title="">DrupalCon Atlanta 2025</a></li> <li class="last leaf"><a href="/community/events" title="">Community Events</a></li> </ul></div></li> <li class="expanded"><a href="/download" title="Download and Extend Drupal">Download</a><div class="menu-block"><ul class="menu button"><li class="first collapsed"><a href="/download" title="Build your solution on Drupal">Download</a></li> <li class="leaf"><a href="/project/modules" title="Find modules to extend Drupal to meet any need">Modules</a></li> <li class="leaf"><a href="/project/themes" title="Browse themes as a starting point for making your Drupal site your own">Themes</a></li> <li class="leaf"><a href="/project/distributions" title="Use a distribution to start with a version of Drupal customized to purpose">Distributions</a></li> <li class="leaf"><a href="/project/issues" title="Dive into the issues queues and contribute back to Drupal">Issue queues</a></li> <li class="last leaf"><a href="https://git.drupalcode.org/project/drupal" title="">Browse Repository</a></li> </ul></div></li> <li class="expanded"><a href="/association" title="About the Drupal Association - the non-profit that supports the Drupal project">Give</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/association" title="Learn about the Drupal Association - the nonprofit that supports the Drupal project">Drupal Association</a></li> <li class="leaf"><a href="/association/organization-membership" title="Learn more about the organizations that support the Drupal Association and our mission">Become an Organization Member</a></li> <li class="leaf"><a href="/association/become-a-drupal-certified-partner" title="">Become a Certified Partner</a></li> <li class="leaf"><a href="/association/RippleMakers" title="">Become a Ripple Maker</a></li> <li class="leaf"><a href="/association/donate" title="">Make a Donation</a></li> <li class="leaf"><a href="/association/discover-drupal" title="">Discover Drupal</a></li> <li class="last leaf"><a href="https://www.drupal.org/swag?utm_source=drupalorg&utm_medium=banner&utm_campaign=drupal_swag_shop_2020_09_17" title="Purchase Drupal merchandise and be the coolest kid on the block">Drupal Swag Shop</a></li> </ul></div></li> <li class="last expanded"><a href="/try-drupal" title="Try Drupal">Demo</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/try-drupal" title="Demo Drupal online with a Drupal platform partner">Demo online</a></li> <li class="last leaf"><a href="/download" title="">Download</a></li> </ul></div></li> </ul></div><a class="close-btn" href="#top">Return to content</a> </div> </div> </div> <div id="block-search-form" class="block block-search"> <div class="block-inner"> <div class="content"> <form action="/case-study/pwc-careeradvisor-launches-on-drupal-8" method="post" id="search-block-form" accept-charset="UTF-8"><div><div class="container-inline"> <h2 class="element-invisible">Search form</h2> <div class="form-item form-type-textfield form-item-search-block-form"> <label class="element-invisible" for="edit-search-block-form--2">Search </label> <input placeholder="Search…" type="text" id="edit-search-block-form--2" name="search_block_form" value="" size="15" maxlength="128" class="form-text" /> </div> <div class="form-actions form-wrapper" id="edit-actions"><input alt="Search" type="image" id="edit-submit" name="submit" value="Search" src="/sites/all/themes/bluecheese/images/icon-w-search.svg" class="form-submit" /></div><input type="hidden" name="form_build_id" value="form-BNT3jWHJ0nOyb9SMOJLwH1c3yxIks2WztXIJX4GnlNY" /> <input type="hidden" name="form_id" value="search_block_form" /> </div> </div></form> </div> </div> </div> <div id="block-system-user-menu" class="block block-system block-menu"> <div class="block-inner"> <div class="content"> <div class="menu-block"><ul class="menu"><li class="button default"><a href="#block-system-user-menu"><img src="https://www.drupal.org/sites/all/themes/bluecheese/images/icon-w-user.svg" alt="Log in, view profile, and more"></a><ul><li class="first leaf"><a href="/user/login?destination=node/2904252" title="">Log in</a></li> <li class="last leaf"><a href="/user/register?destination=node/2904252" title="">Create account</a></li> </ul></li></ul></div> </div> </div> </div> </div> </nav> </div> <div id="header" class="clearfix"> <div id="header-inner" class="container-12 clearfix"> <div id="header-left"> <div id="site-name"><a href="/" title="Drupal.org"><img src="https://www.drupal.org/files/drupal-wordmark.svg" alt="Drupal.org" /></a></div> </div> <div id="header-right"> </div> </div> </div> <div id="banner" data-nosnippet> <div class="region region-banner"> <div id="block-drupalorg-announcements" class="block block-drupalorg"> <div class="block-inner"> <div class="content"> <div class="announcement"><img class="photo" src="https://www.drupal.org/files/styles/grid-2-2x-square/public/announcements/drupalcon-hexagon-icon-280X280px_2_0.png?itok=uzoGg7T8" width="280" height="280" alt="Announcement icon" title="Announcement icon" />Join us at DrupalCon Singapore from 9-11 December 2024, for three exciting days of Drupal content, training, contributions, networking, and the inaugural DrupalCon Splash Awards! Be part of this landmark event as we celebrate and expand Drupal's impact across Asia.</div> <div class="cta"><a href="https://events.humanitix.com/drupalcon-singapore-2024" class="global-announce-banner dc-singapore-registration">Get your tickets now</a></div> </div> </div> </div> </div> </div> <div id="page" class="clearfix"> <div id="page-heading"> <div class="breadbox"><nav class="breadcrumb container-12"><span><a href="/case-studies">Case studies</a></span></nav></div> <h1 id="page-title" class="container-12">PwC CareerAdvisor Launches on Drupal 8 </h1> </div> <!-- /#page-heading --> <div class="container-12 page-inner"> <div id="main" role="main"> <div id="content" class="clearfix"> <div id="content-inner" class="clearfix"> <div class="region region-content"> <div id="block-system-main" class="block block-system"> <div class="block-inner"> <div class="content"> <div id="node-2904252" class="node node-casestudy node-content-2904252 clearfix"> <div class="submitted"> By <a href="/mediacurrent">Mediacurrent</a> on <time pubdate datetime="1503521824">23 August 2017</time> </div> <div class="content"> <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>In January 2015, PwC US announced the launch of its new CareerAdvisor tool. Aimed to help students discover their professional goals and set themselves up for career success, the CareerAdvisor site provides links to reference articles and videos and other resources with career advice. After visitors create an account, they can track their progress with an interactive checklist of action items for career success and add a list of personal ToDos.</p> <p>The CareerAdvisor site is critical to connecting with the millennial demographic and building a recruitment talent pool at PwC’s target universities. However, the current site was on a custom platform that could not be extended or supported. Updates and upgrades were needed but could not be deployed to the site in its existing state. PwC also realized that they had too many different technologies supporting their website. Their solution was to consolidate into one central CMS platform: Drupal.</p></div></div></div><div class="field field-name-field-link field-type-link-field field-label-hidden"><div class="field-items"><div class="field-item even"><a href="http://www.mediacurrent.com/work/case-study/pwc">Visit mediacurrent.com/work/case-study/pwc →</a></div></div></div><div class="field field-name-field-mainimage field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><img src="https://www.drupal.org/files/styles/grid-10/public/Screen%20Shot%202017-08-23%20at%204.27.39%20PM.png?itok=EDb3_tpC" width="474" height="440" alt="" /></div></div></div><div class="field field-name-field-overview field-type-text-long field-label-above"><div class="field-label">Why Drupal was chosen: </div><div class="field-items"><div class="field-item even"><p>PwC partnered with Mediacurrent to ensure existing front end user functionality was ported to Drupal successfully while using best-of-breed Drupal implementation practices. The move to Drupal would allow for rapid feature velocity moving forward while ensuring an intuitive and performant experience for both site administrators and end users.</p></div></div></div><div class="field field-name-field-goals field-type-text-long field-label-above"><div class="field-label">Describe the project (goals, requirements and outcome): </div><div class="field-items"><div class="field-item even"><h2>Goals</h2> <p>Project goals and objectives for the CareerAdvisor website were to:</p> <ul> <li>Launch on Drupal 8</li> <li>Preserve all existing content and functionality for both end users and site administrators.</li> <li>Deliver a great user experience with a site that is accessible globally and loads optimally across modern mobile, tablet and desktop devices.</li> <li>Ensure that the new site is easy for content managers to understand and manage.</li> </ul> <h2>Deciding on Drupal 8</h2> <p>The project was originally scoped out in Drupal 7. Mediacurrent helped to weigh the pros and cons associated with adopting Drupal 8, reviewing the financial and technical considerations that must be evaluated to inform the best decision. As momentum behind Drupal 8 adoption in the enterprise grew, it became clear that Drupal’s latest version was the best choice. To shift the focus to Drupal 8, Mediacurrent scoped out a new list of modules that would be compatible and be better suited to the development process in Drupal 8. In some cases we did not need to use contrib modules as the functionality we were tasked to recreate was built into Drupal core.</p> <p>“Since Drupal 8 is arguably more fleshed out than Drupal 7, the transition was fairly simple with a little bit of research, and we were still able to meet the client’s needs and deadlines,” said Mediacurrent's Senior Developer Chris Runo.</p> <p>Since the development of Drupal 8 began in 2011, Mediacurrent has been learning, contributing and developing to prepare for its release. Our experience has shown that first-hand experience is the best teacher. “Mediacurrent gave me Drupal 8 training when I started and put me on projects involving Drupal 8 right away,” said Chris. “This kind of full immersion is the best way to learn (in this developer’s opinion) and mitigates many potential project pain points in architecting and developing.”</p> <h2>Challenges and Solutions</h2> <p><strong>Keeping all Functionality: </strong>Some of the functionality of the CareerAdvisor site was tricky to preserve. Specifically the ability for users to perform actions on the site and see updates happen live, without a page refresh. Luckily Drupal 8 core now has the Rest module built in, so we were able to leverage that along with Drupal javascript behaviors to keep this functionality intact.</p> <p><strong>Quality Assurance:</strong> Mediacurrent’s goal was to ensure that all bugs were found, reported and fixed before deployment. We also tested the site post-launch to make sure all priority flows were operational. To accomplish this, our QA team:</p> <ul> <li>Created a test plan</li> <li>Worked alongside the developer to test tasks as they were completed</li> <li>Engaged in exploratory and regression testing</li> <li>Executed smoke test post-launch to ensure all modules were operational</li> <li></li> </ul> <p><strong>Refining UX: </strong>Since the site design did not change from their legacy system to Drupal there wasn’t much wiggle room in the ways of improving user experience. Two small but notable touches were making the site logo clickable to lead to the main dashboard and adding tooltip highlighting to user action buttons.</p> <p><strong>Better Maintainability through Drupal:</strong> The site was previously on a completely custom system utilizing an outdated version of AngularJS, Orchard, MSSQL, and C#. By migrating it to Drupal 8 the site became much easier to maintain for developers and site managers.<br /> Improved Authoring Experience: Early-stage feedback from the PwC team on the admin side of the CMS has been very positive. Specifically, site admins have noted that the new site is significantly easier to use than their old system.</p></div></div></div><div class="accordion"><h3 id="technical-specifications"><span>Technical specifications</span></h3 id="technical-specifications"><div class="accordion-content"><div class="field field-name-taxonomy-vocabulary-5 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Drupal version: </div><div class="field-items"><div class="field-item even">Drupal 8.x</div></div></div><div class="field field-name-field-projects field-type-entityreference field-label-above"><div class="field-label">Key modules/theme/distribution used: </div><div class="field-items"><div class="field-item even"><a href="/project/flag">Flag</a></div><div class="field-item odd"><a href="/project/migrate_tools">Migrate Tools</a></div><div class="field-item even"><a href="/project/migrate_plus">Migrate Plus</a></div><div class="field-item odd"><a href="/project/config_pages">Config Pages</a></div><div class="field-item even"><a href="/project/video_embed_field">Video Embed Field</a></div></div></div><div class="field field-name-field-module-selection field-type-text-long field-label-above"><div class="field-label">Why these modules/theme/distribution were chosen: </div><div class="field-items"><div class="field-item even"><p>Flag, Migrate Tools, Migrate Plus, and Config Pages were critical modules used to build PwC’s CareerAdvisor site in Drupal 8. Config Pages serves as the most straightforward, user-friendly way to set up one-off pages. Migrate Plus and Migrate Tools were necessary to get the full use out of the migrate module in core. Finally, Flag provided the functionality needed to for users to set their own status of globally available nodes.</p> <p><strong>Flag</strong> provides complete/remaining and deleted/not deleted states for ToDos. It served us in two ways. First, we were able to use it to mimic the functionality we were looking for. In this case that each node can have a certain status set for each user (completed/deleted). Secondly, since we were using the migrate module for getting the bulk of the original site data into Drupal, and since flagging is entity based, we were able to easily write a standard migration class to bring over the status of all nodes for the users.<br /> The Video Embed Field module provides YouTube integration as a field. This Drupal 8 module gave us a quick solution to adding a video field to nodes that take in a YouTube link as input. It’s a great example of a simple module, with little to no configuration required, and adds great value to PwC for its simplicity.</p> <p><strong>Config Pages</strong> provides the ability to add one-off pages with configurable fields.The Config Pages module allowed us to take what usually seems like an easy task, but can actually be tricky to add into the site architecture gracefully, and effectively implement a way for the site to have one-off pages like ‘Home’ and ‘Help’.</p> <p>Rather than create custom forms, we were able to utilize the config pages module to use the UI to create the form using existing field types, saving time on development. We were then able to use Drupal 8 routes and controllers to build the pages.</p> <p>The fully extendable migration modules <strong>Migrate Plus</strong> and <strong>Migrate Tools</strong> allowed us to better utilize the core migrate module to import content and users out of data exports from the legacy MSSQL database. Migrate Plus adds some functionality to the core migrate module that we were used to seeing in Drupal 7. These include groups, which is great for migrations that need to use different sources or source types, prepareRow events, which is key for doing data manipulation where a process plugin would be overkill, and examples, which is good for any developer to look at for reference.<br /> Migrate Tools adds in some drush commands that are very useful to use when testing, troubleshooting, and running migrations</p> <ul> <li>migrate-status - Lists migrations and their status.</li> <li>migrate-import - Performs import operations.</li> <li>migrate-rollback - Performs rollback operations.</li> <li>migrate-stop - Cleanly stops a running operation.</li> <li>migrate-reset-status - Sets a migration status to Idle if it's gotten stuck.</li> <li>migrate-messages - Lists any messages associated with a migration import.</li> </ul> <p>These two modules are key to any site doing migrations.</p></div></div></div></div></div><div class="field field-name-field-community field-type-text-long field-label-above"><div class="field-label">Community contributions: </div><div class="field-items"><div class="field-item even"><p>Contributing code and sharing knowledge to strengthen the Drupal community are at the heart of Mediacurrent’s core values. We view every project as an opportunity to give back. As a result of this project, several contributions were made back to the Drupal community:</p> <ul> <li>A patch was made to the Migrate Plus module which fixes a bug in the migrate example modules. It also added some drush commands that help speed up development when using Migrate Plus.</li> <li>A bug was discovered with the core Rest module that has been added as a support task for the project to help fix and contribute back.</li> <li>A patch was made to the Mass Password Reset module which fixes a bug where user role-specific mass password resets threw an error. This occurs when there is one or more role selected. The issue can be found at <a href="https://www.drupal.org/node/2855808" rel="nofollow">https://www.drupal.org/node/2855808</a>.</li> </ul></div></div></div><div class="field field-name-field-case-organizations field-type-entityreference field-label-above"><div class="field-label">Organizations involved: </div><div class="field-items"><div class="field-item even"><a href="/mediacurrent">Mediacurrent</a></div></div></div><div class="field field-name-field-team-members field-type-entityreference field-label-above"><div class="field-label">Team members: </div><div class="field-items"><div class="field-item even"><a href="/u/cruno">cruno</a></div><div class="field-item odd"><a href="/u/ianj">ianj</a></div><div class="field-item even"><a href="/u/clair0917">clair0917</a></div><div class="field-item odd"><a href="/u/amessenger">amessenger</a></div></div></div><div class="field field-name-taxonomy-vocabulary-50 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Sectors: </div><div class="field-items"><div class="field-item even">Banking and Financial</div></div></div> </div> </div> </div> </div> </div> </div> </div> </div> <!-- /#content --> </div> <!-- /#column-left --> </div> </div> <!-- /#page --> <div id="footer" role="contentinfo"> <div class="region region-footer"> <div id="block-drupalorg-crosssite-drupalorg-footer" class="block block-drupalorg-crosssite"> <div class="block-inner"> <div class="content"> <h4 class="element-invisible">News items</h4><ul class="drupal-news"><li class="0 first"><a href="https://www.drupal.org/news">News</a></li> <li class="1"><a href="https://www.drupal.org/planet" title="News from Drupal community members">Planet Drupal</a></li> <li class="2"><a href="https://www.drupal.org/about/media-kit/social-media" title="Drupal on social media">Social media</a></li> <li class="3"><a href="https://www.drupal.org/subscribe">Sign up for Drupal news</a></li> <li class="4"><a href="https://www.drupal.org/security" title="Announcements from the Drupal Security Team">Security advisories</a></li> <li class="5 last"><a href="https://jobs.drupal.org/" title="Drupal Jobs">Jobs</a></li> </ul><h4 class="element-invisible">Our community</h4><ul class="community"><li class="0 first"><a href="https://www.drupal.org/community">Community</a></li> <li class="1"><span><a href="https://www.drupal.org/drupal-services" title="People and organizations offering Drupal services">Services</a>, <a href="https://www.drupal.org/training" title="People and organizations offering Drupal training">Training</a> & <a href="https://www.drupal.org/hosting" title="Organizations offering Drupal hosting">Hosting</a></span></li> <li class="2"><a href="https://www.drupal.org/community/contributor-guide">Contributor guide</a></li> <li class="3"><a href="https://groups.drupal.org/groups" title="groups.drupal.org">Groups & meetups</a></li> <li class="4"><a href="https://events.drupal.org" title="Upcoming and past DrupalCons">DrupalCon</a></li> <li class="5 last"><a href="https://www.drupal.org/dcoc" title="Drupal code of conduct">Code of conduct</a></li> </ul><h4 class="element-invisible">Documentation</h4><ul class="get-started"><li class="0 first"><a href="https://www.drupal.org/documentation" title="Documentation for working with Drupal">Documentation</a></li> <li class="1"><a href="https://www.drupal.org/docs">Drupal Guide</a></li> <li class="2"><a href="https://www.drupal.org/docs/user_guide/en/index.html">Drupal User Guide</a></li> <li class="3"><a href="https://www.drupal.org/documentation/develop">Developer docs</a></li> <li class="4 last"><a href="https://api.drupal.org/" title="Drupal API reference">API.Drupal.org</a></li> </ul><h4 class="element-invisible">Drupal code base</h4><ul class="download-extend"><li class="0 first"><a href="https://www.drupal.org/download">Download & Extend</a></li> <li class="1"><a href="https://www.drupal.org/project/drupal" title="Download the latest version of the Drupal software">Drupal core</a></li> <li class="2"><a href="https://www.drupal.org/project/project_module" title="Download add-on features and functionality">Modules</a></li> <li class="3"><a href="https://www.drupal.org/project/project_theme" title="Download pre-designed styles for Drupal">Themes</a></li> <li class="4 last"><a href="https://www.drupal.org/project/project_distribution" title="Download a pre-packaged Drupal site">Distributions</a></li> </ul><h4 class="element-invisible">Governance of community</h4><ul class="about"><li class="0 first"><a href="https://www.drupal.org/about">About</a></li> <li class="1"><a href="https://www.drupal.org/about/features/accessibility" title="Our committment to accessibility">Web accessibility</a></li> <li class="2"><a href="https://www.drupal.org/association" title="About the Drupal Association">Drupal Association</a></li> <li class="3"><a href="https://www.drupal.org/drupalorg" title="About Drupal.org">About Drupal.org</a></li> <li class="4"><a href="https://www.drupal.org/terms" title="Drupal.org terms of service">Terms of service</a></li> <li class="5 last"><a href="https://www.drupal.org/privacy" title="Drupal.org privacy policy">Privacy policy</a></li> </ul> </div> </div> </div> <div id="block-block-77" class="block block-block"> <div class="block-inner"> <div class="content"> <p>Drupal is a <a href="/about/trademark">registered trademark</a> of <a href="https://dri.es">Dries Buytaert</a>.</p> </div> </div> </div> </div> </div> <div class="region region-page-bottom"> <script type="text/javascript"> (function(){ window._pxAppId = 'PXVnPBBfwe'; window._pxParam2 = ''; window._pxParam3 = '0'; var p = document.getElementsByTagName('script')[0], s = document.createElement('script'); s.async = 1; s.src = '/VnPBBfwe/init.js'; p.parentNode.insertBefore(s,p); }()); </script> <noscript> <div style="position:fixed; top:0; left:0; display:none" width="1" height="1"> <img src="/VnPBBfwe/xhr/api/v1/collector/noScript.gif?appId=PXVnPBBfwe"> </div> </noscript> </div> <script type="text/javascript" src="/files/advagg_js/js__B0FBwiP97ZnD38IFraZus4upS4KVkMXI3ou0fJ2ZXGA__pPDESRJz9GHsxqQIwQ_V8xnFYEH5jipG2eicsfrdWCs__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <!--[if lte IE 9]> <script type="text/javascript" src="/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js#ie9-" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <![endif]--> <!--[if gt IE 9]> <script type="text/javascript" src="/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js#ie10+" defer="defer" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <![endif]--> <!--[if !IE]><!--> <script type="text/javascript" src="/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <!--<![endif]--> <script type="text/javascript" src="/files/advagg_js/js__pqoYaVR8NVhof-vNXe50j2TKhFv__IihVag_h4G6kus__B4mbn4wICLQjWm1m3-z1kw8F1FtP0cDAHKp00Xy_-88__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__H5AFmq1RrXKsrazzPq_xPQPy4K0wUKqecPjczzRiTgQ__wor4r9P8YTtQ7p6fbywTetZ47Z_orumIfrrhgxrpLus__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer" onload=" function advagg_mod_1() { // Count how many times this function is called. advagg_mod_1.count = ++advagg_mod_1.count || 1; try { if (advagg_mod_1.count <= 40) { init_drupal_core_settings(); // Set this to 100 so that this function only runs once. advagg_mod_1.count = 100; } } catch(e) { if (advagg_mod_1.count >= 40) { // Throw the exception if this still fails after running 40 times. throw e; } else { // Try again in 1 ms. window.setTimeout(advagg_mod_1, 1); } } } function advagg_mod_1_check() { if (window.init_drupal_core_settings && window.jQuery && window.Drupal) { advagg_mod_1(); } else { window.setTimeout(advagg_mod_1_check, 1); } } advagg_mod_1_check();"></script> <script type="text/javascript" src="/files/advagg_js/js__Oc0wwB7MVRfxtYw6EQM7d9sXj9PAQePoWSzQJ0uTk6c__iXqOGoaPhZHCPEspUr5BC8BwOx5P8B11xv7VOhoUii8__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__FabcJ6qluktliDejymsuV-FqaN_HyMKGe93c2rO9Ky0__el1ZLGkKneOoCS6OWa01WHuIEsTsXZ46MRLCF390Fbw__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__YT6D1B_BKxvm6JCH_t9sZNI5L6yITa_DlU5QcSlOkAU__OXobH7d1IP1o3WABlniIrU_-pcJacVSIPUv9bpD-6pQ__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__xNXZEl6CREO_N4cX50nXAG3o3PPW1f2SzBBHY8rEKV8__vTuPvw9kFyhvW1mq6Cl_PG3exxZo1gi4hMxmKe9QZUI__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__mj2TlWhks9oJxPMS-NZeTpU46WwFVlMGEIo6S9H_Qx8__C389Vc_zjTfBmrTqoRNGUK0zY_nSOyzn-bjDheR_WiY__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__pLKQd4r7OrHglE7Qkqw53K2UXCqQdhqQ9v0cz7hMCQY__OErfYuQdGbFHcCoLoUW_ESSvaumApNojzjJit8-2xcw__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__hHUWFbMAa11eJtx5V0ym9o0YBsB1udk34qUT5wr1ihI__ntICfIdx3SsBpfvYB8AF0VuFk7gZjQgBaS1C9CyMj6o__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript"> <!--//--><![CDATA[//><!-- function init_drupal_core_settings() {jQuery.extend(Drupal.settings,{"basePath":"\/","pathPrefix":"","setHasJsCookie":0,"ajaxPageState":{"theme":"bluecheese","theme_token":"jqX3XSTn0lxyUlz9tlF8XPGmd-GRmNtalKbopoQwIvI"},"drupalorgGitlab":{"gitlab_base_url":"https:\/\/git.drupalcode.org","base_url":"https:\/\/www.drupal.org"},"urlIsAjaxTrusted":{"\/case-study\/pwc-careeradvisor-launches-on-drupal-8":true},"field_group":{"div":"full"},"drupalorgCrosssiteConsentNeeded":true}); if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(false);}} if(window.jQuery && window.Drupal){init_drupal_core_settings();} //--><!]]> </script> <script type="text/javascript" src="/files/advagg_js/js__2k0CJ3KAQNFTFab3y6ZvNtxs3HLons0Brq7VwvPSkKo__RYlZCliQTuN7U7I5I1Xhn1dAop17g2hAft1wVGgKHGA__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__vj0LjvNwl-3K1P9LGT4BGuXCZcAovYsVlVmoJN3TMRg__KW8SiGceRY3sjIKVrffDjf2MK4A5Vp3EDDxVO-4pegI__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> </body> </html>