Enabling students to practice on Bitesize
By: Duncan Mcdonald
Tags: AWS, Bitesize, Learning, BBC, Education

Introduction

Bitesize recently celebrated a 20th year anniversary last September, complete with new branding and personalisation features allowing students to customise their Bitesize experience via the My Bitesize page.

Bitesize has great content that students enjoy, one of those bits of content that it provides is in the form of a test.

Consisting of 10 questions at the end of a revision guide, students use these to test their knowledge of the guide ahead of revising it.

We believe that by enabling the ability to practice content within the Bitesize site, students will be able to retain content in memory for longer.

We also want to drive students back to the Bitesize web and Bitesize app via e-mail and in-app notifications.

To implement these new features we have partnered with a third-party company who provide practice and notifications features as a platform.

How did we do it?

The BBC has its own sign in service, this service falls under the Audience Platform team within the BBC and they provide services to manage user accounts (login, password, e-mail addresses, under 13 account management, etc.) and to enable personalisation and participation on all BBC online products:

We wanted integration with the third-party to use the BBC’s account management system to have a joined up BBC user experience around accounts

We wanted to strictly limit the data we sent to the third-party (so no sharing of e-mail addresses, etc.).

Before we started this project there was no common way within the BBC of doing things like:

Providing third-parties with anonymised BBC iD tokens to create accounts in third-party systems

Providing one-to-one notifications (e-mail or app) for people with BBC iD accounts

Our third-party requires a unique iD to reference the student (and an e-mail address, but we don’t want to provide that to them).

Our requirements

“We want to be able to embed the third-party’s iframe within Bitesize and associate the student’s BBC account with the third-party (whilst not giving away any personably identifiable information!)”

“We need to handle Subject Access Requests for students that wish to see what data the BBC is holding about them”

“We want to be able to send one-to-one notifications to students; the third-party platform can trigger and send notifications, but the notification needs to be Bitesize branded, link to Bitesize content, and we want to be able to send either e-mail notifications or in-app notifications via the Bitesize app”

Integrating the third-party into our account system

To solve this we added a new endpoint to our Bitesize personalisation service ( Newton) to enable integration — this endpoint uses a plugin written by the Audience Platform team to verify the user’s identity cookie is valid and extracts the unique iD that references that user — Newton then takes that unique iD and encrypts it using Amazon KMS. It is that encrypted iD that is then sent to our third-party to launch the practice session within Bitesize.

The flow to launch a practice session within Bitesize

Handling Subject Access Requests

We also needed to be able to handle SAR (Subject Access Requests) for users if they wish to request the data that the BBC holds about them.

We integrated with the existing SAR architecture that Audience Platform had defined — this means that if a user requests their personal data from the BBC we get informed via a AWS SNS topic that a user has requested their data, this executes a Lambda on our side and we make a call to our third-party’s SAR API.

We take responsibility for handling errors that might occur whilst contacting the third-party to initiate a SAR request while our third-party is responsible for uploading the user’s data to the appropriate place.

Respecting user’s Subject Access Requests

Sending personalised notifications

We want to be able to send one-to-one notifications to Bitesize students to drive them back to the web-site.

We felt that the rest of the BBC would benefit from this functionality and so we worked with other teams across the BBC to deliver a single solution that is scalable and shareable.

Our third-party notifies us of a notification via a SNS topic, this invokes a Lambda that we’ve created to proxy the notifications, this Lambda decrypts the iD the third-party holds and forwards it onto the notifications API to initiate an e-mail send request.

Sequence of actions for us to send a notification to a BBC user

In future we’d like to use this system to expand notifications out to the Bitesize App.

Where are we now?

We have integrated our anonymised BBC iD user token service with our third-party provider in order to launch the practice iframe within Bitesize test chapter pages.

Students can practice content over a variety of guides in different subjects within GCSE ( Biology, Chemistry, Computer Science, Drama, German, and others).

We’ve released a dashboard on the My Bitesize page that enables students to which content they need to practice next.

And finally, we’ve also released personalised one-to-one email notifications to students.

What’s next?

Releasing more and more practice content into subjects and a fullscreen experience!

We’ll also be releasing a version of the Bitesize app that supports practice and which will enable us to provide personalised one-to-one in app notifications via the app.