"What happens to assessment if everyone has a different desired outcome or a different role to play? Here we need to explore the option of engaging learners themselves, supported by personalized learning analytics -- as aspiring research scientists in the important subject of self-regulation and self-determination." J.Treviranus

What Is This Page?

This is a high-level application design document for the My Lifelong Learning Lab application, intended most specifically to provide guidance for developers working to implement it, but also of use to others working on the project and of interest to the general inclusive design community.

Since it exists on the wiki, this can be considered a living document on the state of thinking about the application design.

What Is My Lifelong Learning Lab?

My Lifelong Learning Lab (henceforth MyL3) is a web-based end-user computing application focused on supporting non-programmers in building, sharing and evolving inclusive applications based on the quantified self, open data and the general self-tracking ecosystem.

MyL3 could be used for general self-tracking purposes, but is specifically being built for applications in learning, to try and address learning differences, and to support self-reflection in learning. The term learner will frequently be used as a targeted synonym for a user of MyL3; learner is used expansively and does not refer only to students in traditional educational systems.

What Will Using MyL3 Be Like?

Four central activities inform the expected MyL3 experience, and, therefore, the required software components: Record, Reflect, Build, and Share.


Learners are given tools to record what is significant to them through a wide variety of means, including but not limited to:


Learners are given tools to reflect (at the time or later) on what they have recorded. This includes but is not limited to:


Learners are given tools to build their own tools for recording and reflection. This may include (but is not limited to):


Learners are given tools to share with other learners, both in terms of personal data and in terms of custom components they have built. This may include (but is not limited to):


For Learners

For Developers

Who Is Building It?

MyL3 is being developed by the IDRC and the Fluid community, and its underlying toolkit will be used to develop applications for the FLOE and APCP projects.

How Will It Be Built?

General Considerations for Building

User Testing and Feedback Loops

We are testing with a diverse set of learners, and incorporating their feedback into the design. Building towards a minimum viable product that will be sufficiently compelling for end user testing should be a first priority.

Power and Usability for Diverse Learners

MyL3 should strive to be friendly and welcoming to new learners (including those who do not think of themselves as learners, or as people capable of building software applications) while also having powerful capabilities for advanced use.

The focus on inclusion and diversity will require exploration of multimodal interface design and interface customization to user preference such as via UIO. The application should be fully accessible by keyboard, usable with a screen reader, and make use where possible of WAI-ARIA.

Persistence of Learner Applications and Learner Data

A application focused on learner data collection is of little use without persistent storage. In the case of MyL3, persistent storage is needed in two main areas:

The basic strategy will be the persistence of data as JSON, including the persistence of custom components as Infusion IoC trees that can be reconstructed and transformed as necessary. The persistence strategy therefore aligns closely with the overall application design, and with the strategy to allow a wide variety of end users to explore and exchange their custom artifacts (an example of "Harmonious Authorship from Different Representations" in action, as described in http://www.ppig.org/sites/default/files/2015-PPIG-26th-Basman.pdf)

Security and Privacy

We will take the necessary steps to support learner data security and privacy, whether in the code itself or in any deployed system.

MyL3 should not be deployed in production outside a browser-based context until we feel we have addressed potential security issues.

User Ownership of Data, Including the Right of Deletion

The system must support the secure and permanent deletion of user data, and not lay impedances in the path of this.

Specific Comments on Technology

Browser UI Layer

The browser UI layer will be built using the Fluid community's Infusion Javascript framework. It is anticipated that the gpii-binder and gpii-handlebars projects will be used to supply data binding and advanced templating functionality.

Web Tier

At first, MyL3 will exist as a client-side application to support speed of development and UX testing. The only web tier requirement should be a static means of serving the application's HTML, CSS and Javascript.

As development progresses, MyL3 will need to build out the web tier code to support persistent storage of data in a secure manner in the cloud using kettle or gpii-express.

Persistent Storage

At first, MyL3 will use browser-based storage facilitated by the PouchDB library.

As development progresses, code to persist user data and custom components to CouchDB instances in a secure manner will be added. This will also facilitate the sharing of application components and user data. PouchDB has interoperability features with CouchDB that will ease this goal.

What Are Projects Related to MyL3?

FLOE Self-Assessment Learning Toolkit

The FLOE Self-Assessment Learning Toolkit will be one exemplar application built from the MyL3 components with a focus on learner goal setting, reflection on learning style, and the integration of preference changes.

APCP Self-Assessment Dashboard

The APCP Self-Assessment Dashboard will be one exemplar application built from the MyL3 components, with a focus on allowing users of APCP-enabled systems to reflect on the experience on an ongoing basis.