Back to Portfolio
Case Study

Educational Resources: One Search
for 13 Curricula

Leading the technical development of Let's Talk Science's curriculum-aligned resource discovery tool, a cascading search system that maps every Canadian province and territory's curriculum to a unified, bilingual resource library.

Organization
Let's Talk Science
Platform Migration
DNN to Drupal
My Role
Web Projects Coordinator
Timeline
2015 - 2019

Canada's Largest STEM Outreach Charity

Let's Talk Science is a national charitable organization founded in 1993 with a mission to engage youth in science, technology, engineering, and mathematics. Through volunteer-led outreach, classroom programs, and digital resources, LTS has become one of Canada's most recognized names in STEM education.

The organization's reach is substantial. Through volunteer-led outreach at over 50 post-secondary institutions, national programs like Tomatosphere and Living Space, and a growing library of digital resources, LTS connects millions of Canadian youth to STEM learning every year. That scale of engagement depends on digital infrastructure that can surface the right resource to the right teacher at the right time, and by 2015, the existing platform was no longer up to the task.

13 Provinces, 13 Curricula, One Search Tool

Let's Talk Science maintains one of the largest free curriculum-aligned STEM resource libraries in Canada with hundreds of articles, videos, activities, and backgrounders designed for classroom use. But discovery was broken. There was no way for a teacher to filter by their province, grade level, course, or topic. Finding the right resource meant scrolling through pages of content and hoping for the best.

At the same time, the organization's website was running on DNN (DotNetNuke), a legacy CMS that was hitting its limits. The platform couldn't support the kind of structured, relational content model needed for curriculum-aligned search. A full CMS migration to Drupal was required, and the curriculum filter was the centerpiece of that migration, a piece of functionality that had never existed before.

The DNN experience made the problem tangible. Teachers landed on flat, paginated lists of resources sorted by broad subject area. There was no filtering by province, grade, or course. Resources were tagged only at the highest level ("Science," "Math"), with no connection to specific curriculum expectations. A Grade 7 teacher in Manitoba and a Grade 12 teacher in Nova Scotia saw the same undifferentiated list. The platform offered no way to narrow, no way to align, and no way to confirm that a resource actually matched what a teacher was covering that week.

The challenge was solving two problems at once: migrating an entire content platform to a new CMS while simultaneously building a novel search system that could map 13 different provincial and territorial curricula into a single, unified interface. Every province uses different course names, codes, and topic structures. Ontario's "SNC2D" is BC's "Science 10", and the tool had to make that complexity invisible to teachers.

A Curriculum-Aware Search That Thinks Like a Teacher

The solution was a cascading filter system that mirrors how educators actually think about their teaching: start with your province, narrow to your grade, find your course by its real name, and drill into the specific topic you're covering this week. Each selection dynamically narrows the options available at the next level, an AJAX-driven interface that queries valid combinations in real time, so teachers never hit a dead end.

Under the hood, every resource in the library is tagged to multiple provincial curricula simultaneously. A single article about photosynthesis might be relevant to Ontario Grade 9 Science, BC Science 10, and Alberta Biology 20, each with different course codes and topic names. The taxonomy maps all of these relationships, and the filter surfaces the right resources regardless of which province a teacher starts from.

The front-end result cards give teachers everything they need at a glance. Each card displays the resource type (Activity, Video, Backgrounder, or Career Profile), the applicable grade range, and curriculum alignment metadata showing which provinces and courses the resource maps to. Teachers can scan a page of results and immediately identify which resources fit their lesson plan without clicking into each one individually.

Keyword search works alongside the curriculum filters, so educators can combine free-text queries with structured curriculum navigation. The entire system runs in both English and French, with curriculum data localized for each language.

The Educational Resources search tool became the primary discovery mechanism for Canadian STEM educators, the single most-used feature on the Let's Talk Science website.

Source: letstalkscience.ca/educational-resources

From Province to Resource in Four Steps

01
Select Province or Territory
Teachers begin by choosing their province or territory, the required starting point that determines which curriculum framework applies. All 13 jurisdictions are supported.
02
Select Grade
The grade selector narrows to only the grades with available resources in that province's curriculum, preventing dead ends and keeping the experience focused.
03
Select Course & Topic
Courses appear by their real provincial names and codes like "SNC2D" in Ontario and "Science 10" in BC. Topics cascade from the selected course, mapping directly to curriculum expectations.
04
Browse Results
Matching resources are displayed with clear type indicators across six content types: Activities, Videos, Backgrounders, Career Profiles, Documents, and Hands-on Activities. Each result card shows grade range and curriculum alignment, and every resource links back to multiple curricula across provinces.

From Flat CMS to Structured Taxonomy

DNN stored educational content as monolithic WYSIWYG blobs with minimal metadata. Drupal needed the opposite: a structured entity-reference taxonomy where every resource is decomposed into discrete fields for resource type, grade range, province tags, curriculum references, and paired EN/FR content. The migration was not a copy, it was a complete content decomposition.

URL mapping and redirect strategy were critical. Hundreds of indexed pages needed to land on their Drupal equivalents without breaking inbound links or losing the SEO equity the organization had built over years. We mapped every legacy URL to its new path and implemented server-side redirects to preserve search rankings through the transition.

The build had a dependency problem: the front-end search interface could not be developed until the taxonomy was stable enough to query against, but the taxonomy could not be finalized until content migration revealed edge cases in how resources were categorized. We ran the taxonomy design and content migration in parallel, stabilizing the province-grade-course hierarchy first so front-end development could proceed while deeper curriculum mappings were still being refined.

What I Built

The Educational Resources project required building a novel search system on top of a full CMS migration, moving years of content, URLs, and metadata from DNN to Drupal while simultaneously introducing functionality that had never existed on the platform.

  • Led the full DNN to Drupal migration: content modeling, URL mapping, and redirect strategy to preserve SEO equity and prevent broken links across hundreds of pages
  • Designed and built the multi-level curriculum taxonomy mapping 13 provincial and territorial curricula (provinces × grades × courses × topics) into a unified, queryable structure
  • Developed the AJAX-driven cascading filter interface where each selection queries the server for valid options at the next level, ensuring teachers never encounter empty results
  • Architected the resource content model supporting multiple resource types (articles, videos, activities, backgrounders) with multi-province curriculum tagging
  • Implemented full bilingual EN/FR support across the search interface, curriculum data, and all resource content
  • Built the content migration pipeline preserving metadata, cross-references, and curriculum relationships from the legacy DNN platform
  • Optimized search performance and implemented caching strategies for high-traffic periods, particularly back-to-school and professional development seasons

The Primary Discovery Tool for Canadian STEM Educators

The curriculum-aligned search tool transformed how Canadian educators discover and use STEM resources. Before the migration, teachers had to browse an unstructured library and hope they found something relevant. After launch, they could go from selecting their province to viewing curriculum-matched resources in seconds.

The impact of this project went beyond building a search tool. The DNN to Drupal migration was a structural shift that gave Let's Talk Science a content platform capable of supporting the complex, relational data model that curriculum alignment demands. The taxonomy system we built became the foundation for how the organization thinks about and organizes all of its educational content.

Impact at Scale

13
Provincial & Territorial Curricula
500+
Resources at Launch
2
Languages (EN/FR)
4
Cascading Filter Levels

This wasn't a cosmetic redesign or a simple CMS swap. It was a structural migration that introduced entirely new functionality: a curriculum-aware search system that didn't exist before, built on a taxonomy architecture that could scale across 13 jurisdictions and two languages. The result is a tool that Canadian educators rely on to find the right STEM resource for their classroom.

For me, the Educational Resources project proved that the hardest technical problems are often the ones users never see. A teacher in Nunavut selects her territory, picks Grade 8 Science, and finds a hands-on activity aligned to her curriculum in under ten seconds. She doesn't see the taxonomy mapping, the migration pipeline, or the AJAX queries running underneath. She just finds what she needs. That's the point.

More Case Studies

Need Someone Who Can Make Complex Systems Simple?

Get In Touch