The Physics and Astronomy Department at the University of British Columbia is one of the largest and most diverse physics and astronomy departments in Canada. As one of the founding departments of the university, UBC PHAS has developed a great breadth of research activities: from major international collaborations to unique local facilities.
The Challenge
UBC PHAS requested a website to showcase its faculty and highlight department research.
The department had spent many years on the Drupal 6 content management system and had reached the limit of the system. Hammerhead was contracted to migrate the following from Drupal 6 into Drupal 9:
- Image, page, news, blog content.
- Users (600+), user groups (60+), complex multi-level permissions.
- User profiles, with user-specific bibliographic (research) content.
- Custom events view with the ability to query, sort, display by, and export for various calendars.
With the following requirements:
- Implement CLF Drupal 9 theme, follow CLF specifications (https://clf.ubc.ca).
- Update navigation, and optimize user flow through the system
- Recreate critical existing functionality through custom programming, modules, or solutions.
- Implement an automated system for user creation with LDAP integration.
- Create a staff directory based on the user system.
Our Approach
Our approach to this project differed from our usual process. Typically we move through discovery & definition, to design & development, to delivery. as the client wanted us to migrate the existing content in totality, and implement the CLF parent theme, which largely directed our design.
Discovery & Definition
Review of Drupal 6 data, review of UBC CLF Drupal theme, map and plan migration of Drupal 6 content, taxonomy & users into Drupal 9, create content types, plan for sub-theme implementation.
Data Migration
Data migration started in the discovery phase reviewing existing content, taxonomy & users, understanding their interaction & connection, and mapping their migration into the Drupal 9 eco-system. The fun part of this migration quickly became creating a system and executing migrations before something major would change in the Drupal 9 core, and we would have to re-plan the migration. During development, the Drupal 9 core was maturing so quickly that it was difficult for contributed modules to keep up. Luckily we were able to migrate most of the content through an automated process, with the exception of some of the images, and Research Articles. These items had to be migrated and attributed to users by hand.
Design & Development
Due to the fixed nature of the theme, the process for design & development was an adventure in agile. Multi-functional teams designed and developed in tandem ensuring designs could work within the functional constraints of the theme and developing Drupal 9 core. In many circumstances, we created custom modules to work around these limitations.
Unique Features & Functionality
Drupal 9 is an awesome tool to use because of its incredibly modular nature. Drupal’s modularity allows us to easily create content types, assign fields and create unique connections to users, and display content items in various ways with blocks, views and twig.
Users, Permissions, and Content Moderation
Migrating 600+ Users into 60+ User Groups with complex multi-level permissions is bound to boggle the brain. We approached this problem by running batch migrations, auditing, deleting, and re-running. This was one of those tasks that you develop a love-hate relationship with. By the end of it, you are so immersed in the process that you keep a notepad by your bed because you’re resolving complex issues in your sleep.
Users (Researchers), Profiles & Publications
Researchers are a very important part of the department and a significant part of this build. The Researcher Directory is automatically populated when a user is given the Researcher role and assigned to a Research Group taxonomy. Researchers are also listed in directories on Research Group directories automatically. All tables, including directories, are mobile responsive.
Users with the Researcher role are also provided access to an interactive form that they can use to build their researcher profile. These users are also able to create and submit citations and attach them as publications.
Events, Categorization & Exports
The Events page features several customizations that are outside of the Drupal 9 view, block and twig display capabilities. This includes a custom javascript category toggle that allows the user to All, None or select from the Research Group categories (taxonomy). We forked an open-source project in order to create the export functionality on the Events Page and individual Event Page.
High-Performance Requirement
Out-of-the-box Drupal can become very bulky and bloated. With this in mind, we experimented with modules and programming methods to decrease page load times. Our results even impressed us!
Summary
This project allowed our team to solve problems, and create the web presence of one of the most respected organizations in British Columbia. It also provided our team with the opportunity to become incredibly familiar with Drupal 9 and provide a better user experience for the students of UBC.
Looking to migrate your website? Check out our Web Development services or Contact Us today!