Sector(s)

Visit the site

Visit the site

Organizations Involved

Regina Public Schools is one of the largest school divisions in the province of Saskatchewan, Canada, with no less than 44 elementary schools, 8 high schools and 3 faith-based associate schools.

But these are just... numbers, right? Like “23,000”, which stands for the total number of students whose educational needs the Regina Public Schools serves.

And still, beyond numbers, what truly sets it apart from other education institutions — besides its commitment to early French immersion education beginning in kindergarten — is its set of priorities and shared values:


  • setting high expectations for all students
  • creating a climate of belonging
  • celebrating progress and recognizing improvement and contributions
  • recognizing and encouraging each student's/staff member's unique characteristics
  • embracing multiculturalism
  • instilling a feeling of responsibility in its students, both for themselves and for other members of their community

About the project

Since it's a whole “ecosystem” of school websites — each one with its own content “needs” — that we're talking about:


  • centralizing content
  • providing editors with a rich and highly flexible authoring experience
  • streamlining the content creating/editing/publishing processes throughout the entire “infrastructure” of sites


... have been the 3 objectives that put together our “mission”.

Basically, the main goal of this project has been that of implementing a functionality aimed at making it possible for:

  1. content to be deployed on a central website of the school division
  2. … and then easily distributed to and published across the network of websites

In other words, it was crucial for content editors to:


  • have all the needed content adding/editing/managing tools at hand
  • be empowered to manage content via an intuitive and configurable admin UI
  • be enabled to select specifically which school website/group of sites their content should get published on
  • be enabled to schedule, upon submission, when exactly their content should go live

Challenges That We Faced & Solutions That We Came Up With

The Predictable Challenge

… so to say, that we anticipated was that of porting all the pieces of content from the “central” site of the school division to the selected groups of school websites.

And all this with:


  1. zero risks to lose some of the content elements
  2. no downtime while moving content


2 goals that we planned to attain by capitalizing on Drupal 8's ideally integrated REST API.

The solution found? A custom module!

That's right, we “got our hands dirty” writing code and we managed to build/implemented a custom module which:


  1. extends the default handlers for node entity
  2. implements precisely the needed functionality: distributing and publishing the created content from the central website specifically to those selected division websites

But Then The Unpredictable Challenge “Hit” Us!

Porting content over via REST API went smoothly until we faced the impossibility to transfer “images” files. It looks like porting over images via REST is not yet doable in Drupal 8.

The Solution That We Came Up With

Using base 64 encoding, queueworker api, we managed to:


  • port nodes over from Regina Public Schools' main website to all the other selected mini-sites, image files here included
  • take up the transferred content on those specific websites via our custom REST resource


… content due to be saved and then attached to the newly created nodes later on

Why Drupal was chosen

Or better said:“Why Drupal 8?”

4 strong reasons weighted heavily in our client's decision making:

  1. it's scalable
  2. it's fast
  3. it's flexible
  4. it ships with powerful enterprise content management tools empowering editorial teams


Or... “5 reasons” we could say, since Drupal 8 also “spoils” its users with out-of-the-box REST support.

And it's precisely the REST API's power (conveniently extensible and easily configurable) that we harnessed for reaching the goals set for this Drupal project.

In short: we knew that Drupal 8 was properly equipped and robust enough to power and (moreover) to inject high performance into a heavy infrastructure of mini-sites.


Technical Specifications

Drupal version:

Key modules/theme/distribution used:

Why these modules/theme/distribution were chosen

Rest UI: it helped us provide an UI interface for handling/enabling/configuring Rest resources

File Entity: it helped us set up a user interface where files' statuses and locations could be easily detected and monitored

Scheduler: it helped us provide scheduling options for both site instances, a particularly valuable functionality requested by our client)