Developer Summit 2019

The fourth day of the Open edX 2019 conference is our annual Developer Summit, on March 29th.  It's a chance for the community to come together and collaborate in-depth on topics of interest. The structure of the day is determined ahead of time by the participants.

  • Thanks to IBM, this year's developer summit sponsor 

We are looking for sessions that have clear deliverables, either by the end of the day, or with plans to continue working together after the conference.  The goal is to advance work with a path to completion.

You can participate either as a Session Leader or as a Participant.

Session Leaders: add a topic below.  Please be specific about the goal of the day, and how work will progress afterward.

Participants: feel free to add your name in the "Interested" section of any topics below. You can also suggest a topic in the Desired Topics section.

We'll choose a set of topics for the day based on community interest. We can't promise that everything will be included.  We'd love to help groups that want to work outside of the Dev Summit, get in touch.

Schedule

The day is mostly divided into 45-minute slots, though some sessions will span a few time slots.  Topic leaders: you can add your session to a slot.

Time



9:30-10:15

D: Designing the Authoring Experience for an Adaptive Platform on Open edX

M: Open edX developer onboarding experienceE: Operations and Remote Config
10:15-11:00N: Authoring Experiences on Open edXJ: Micro-frontend theming and customization
11:00-11:45A: Develop a plugin system for Tutor
11:45-12:30G: API DocumentationQ: Open edX Analytics
12:30-1:30

Lunch & Pinata!  Yay!

1:30-2:15C: Credentials & Badges: Now / Next

H: Frontend Pluggability



2:15-3:00F: XBlock Sandboxing

3:00-3:45B: Open edX Mobile: Now / NextK: What Comes After XBlock?

3:45-4:30

Proposed Topics

List proposed topics here.  For each topic, please provide:

IDTopicLeader

Description / Desired Outcome

1. Expected Outcome On the Day

2. Expected Activities After the Day

Interested Participant
A

Develop a plugin system for Tutor

Description:

There are many 3rd-party features that could be added to Tutor: Figures (by Appsembler), Sentry (for error monitoring) or xblocks are example that come to mind. However, these projects should not have to be maintained by the tutor developers. Thus, we would like to include an plugin system for Tutor with which 3rd-party developers could propose extra features. For instance, an xblock plugin would automatically add the appropriate settings and urls to the Open edX platform.

Desired Outcome:
First of all, we need to collect configuration and deployment requirements for 3rd-party applications. Then, we would demo a proof-of-concept with a simple project, such as Figures or a popular XBlock.

Install should be as simple as:

$ tutor plugin install https://github.com/regisb/tutor-figures-addon

$ tutor plugin enable figures

  1. Expected Outcome on the day: Integration of a 3rd-party feature as a plugin in Tutor.
  2. Expected activity after the day: write and publish the plugin specification as well as a plugin example.

Régis Behmo

Nate Aune - more interested in getting Figures into Tutor, which should be ready for Hawthorn by the time of the conference. /cc John Baldwin

Carol Willing

Ivo Branco

BOpen edX Mobile: Now / Next

Description:
What is the future of learning on the go with the Open edX platform? How can we as a community make progress toward the mobile team’s mission and goal: "
Through its mobile applications, Open edX delivers lightning fast, full courses to your pocket so you can learn on the go, offline, and with others."

Session Schedule: 
The plan for this 1.5 hour session is to discuss active development efforts, top technology barriers to expanded contributions, etc. The majority of the time is set aside for community topics & discussions. 

We have been doing this summit format for Mobile every quarter for a year and a half or so, but skipped Q2 due to holidays / scheduling issues.

Community Topics
message Marco in Slack to suggest topics / sub-groups! 

  1. Topics TBD

CCredentials & Badges: Now / Next

Description:
What is the future of badging and credentials on the Open edX Platform? How can we collaborate on achieving the current product direction for this part of the platform, and how can we improve this thinking by incorporating in perspectives on credentials from the Open edX community? 

Session Schedule

The plan for this 1.5 hour session is to discuss the product direction document for credentials on the platform and get input from the community. In particular, a number of groups have expressed interested in development contributions to this part of the platform so our goal for this session is to provide an opportunity for these groups to connect, discuss and improve the direction document, and collaborate on next steps!

message Marco in Slack to suggest topics / sub-groups for this! 


DDesigning the Authoring Experience for an Adaptive Platform on Open edX

Dale Johnson - ASU,
Greg Sham (Deactivated) - edX Product,
Nimisha Asthagiri (Deactivated) - edX Chief Architect

Description:

In order to deliver personalized lesson recommendations, Open edX will need an information architecture that enables us to serve the right lesson to the right student at the right time.  That is in contrast to the current model where instructional resources are placed in static courses that serve the same lesson to all students the same way.  In this session, we will focus on designing the architecture for a platform to deliver dynamic instructional resources that can be structured and served in different ways to meet the needs of individual learners and the requirements of instructors. Participants will be asked to contribute ideas and insights into ways to make Open edX a platform that can support adaptive lesson delivery in the future.


Braden MacDonald

Xavier Antoviaque

Nate Aune

Kshitij Sobti

Dean Jay Mathew

Giulio Gratta

Stefania Trabucchi

John Baldwin

Attin Cheng



EOperations and Remote ConfigFred Smith (Deactivated)

Description:

How will OpenEdx move into the world of containers and service discovery. What are improvements that we're working on, and what are we hoping to achieve for OpenEdx operators in the near future.


Session Schedule



Braden MacDonald

Bill DeRusha (Deactivated)

Nate Aune

Kshitij Sobti

Dean Jay Mathew

Seamus Johnston

Giovanni Cimolin da Silva

Felipe Montoya

Jeremy Bowman (Deactivated)

Ivo Branco

FXBlock SandboxingBraden MacDonald - OpenCraft

As part of our work on LabXchange, we have developed the technology to wrap XBlocks in a responsive IFrame so that it runs in an isolated browser context (has no access to Open edX cookies, sessions, etc.) but does so transparently to the user (no visible frame, scroll traps, etc.) and without requiring any changes to the XBlocks themselves.

This is essential if your Open edX instance ever allows public/untrusted users to create content (in Studio), or if there's any risk of trusted users intentionally or unwittingly putting dangerous content into courses via Studio.

If enough people are interested, I'd like to do an informal session explaining the rationale for this work, the technical implementation details (vs. alternatives), and discuss moving to using this for all XBlocks in all frontends in the future.

Expected outcome: group consensus on where/how to apply this work moving forward.

Kshitij Sobti

Peter Pinch
Pooja Kulkarni

Ivo Branco

GAPI DocumentationBraden MacDonald - OpenCraftA short (15 min?) session on how we've used drf-yasg to auto-generate OpenAPI spec files for APIs, along with openapi-generator to produce API clients, why this is awesome, how you can use it, and how it will work when Django REST framework version 4 lands.

Nate Aune - I'm interested in publishing better documentation about existing APIs.

Kshitij Sobti

Seamus Johnston

Giovanni Cimolin da Silva

Pooja Kulkarni

Jeremy Bowman (Deactivated)

Ivo Branco

HFrontend Pluggability

Nimisha Asthagiri (Deactivated) - edX
David Joy (Deactivated) - edX

Following SOLID design principles, including Dependency Inversion, will take us a long way toward enabling our platform for extensibility and customization.

Last year, we provided a framework for Django App Plugins, which supports pluggability on the backend.  Several Open edX developers have successfully made use of that framework for their own development and innovations.

This year, let's come together and brainstorm on ideas for supporting pluggability on the frontend.  Desired use cases include:

  • Frontend plugins on various pages, such as learner and instructor dashboards, that are specific to an open edX instance.
  • Frontend plugins provided by a course team, to execute within learner or instructor pages within that course.
  • Frontend plugins that run within courseware pages.
  • Frontend plugins that require a backend may have the backend executing on an external site.

Braden MacDonald

Daniel Clemente Laboreo

Xavier Antoviaque

Nate Aune

Kshitij Sobti

Laurent David

Felipe Montoya

Ivo Branco

IMicro-frontends and Deployment on Open edXNimisha Asthagiri (Deactivated) - edX

As part of edX's re-platforming effort, we are implementing micro-frontends as statically hosted single-page apps written in React. The Open edX Juniper release will include our first set of rewritten core platform pages.

Tuesday's workshop would have provided folks an opportunity to get hands-on experience with creating an open edX micro-frontend using our cookie-cutter.

For this session, let's determine how we can support micro-frontends in Open edX deployments.


Nate Aune - could this be combined w/ the next session?

Kshitij Sobti

Laurent David

JMicro-frontend theming and customizationDavid Joy (Deactivated) - edX

The edX re-platforming effort is putting a focus on modern, React-based micro-frontends, which has significant implications for the future of theming the Open edX platform. Theming, historically, has meant the ability to comprehensively modify the user interface via styling and content (template) overrides. What does this look like in a React-based world? How can we isolate and firm up our understanding of theming as separate from micro-frontend pluggability and deployment?

For this session, we'd like to gather example user stories and use cases to help inform the requirements and rollout plan for theming of our new micro-frontends, and, time permitting, brainstorm high-level implementation approaches. There are a number of different types and levels of theming and customization that we'd like to focus on individually.

  • Look and feel theming
    • Bootstrap overrides
    • Custom CSS
    • Assets (images, fonts, other static media)
  • Copy customization (text resource overrides)
  • Layout customization
  • Feature configuration
  • Other customizations


1. Expected outcome on the day: A list of user stories and use cases around Open edX theming and customization, which will be directly applicable to the requirements definition process. Understanding of community expectations around how such theming might be accomplished.

2. Expected activities after the day: With the aid of the theming advisory group, the creation of a concrete plan for the implementation and rollout of theming capabilities for micro-frontends.

George Babey

Braden MacDonald

Daniel Clemente Laboreo

Nimisha Asthagiri (Deactivated)

Xavier Antoviaque

Nate Aune

Kshitij Sobti

Seamus Johnston

John Swope

Giulio Gratta

Giovanni Cimolin da Silva

Felipe Montoya

Stefania Trabucchi

John Baldwin

KWhat comes after XBlock?Dave Ormsbee - edX

Description: (TLDR: What would a modern replacement to XBlock look like?)

The XBlock framework was created to empower developers to deliver a richer courseware experience for students. Over the last six years, it's been used to implement many different types of content types -- videos, peer assessments, simulators of all sorts, etc. As Open edX's first and arguably most successful plugin mechanism, it is the backbone of today's courseware experience.

Yet XBlock has problems. The runtime it uses in edx-platform is difficult to work with because of tight coupling to storage and various compatibility shims. But even if that code is cleaned up, we will still only be achieving an architectural pattern set down in 2012. Front end technology has advanced considerably since then.

The vision for XBlock was to provide a pluggable, composable system that would enable developers to create amazing courseware experiences. It should take care of the boring problems at scale (grading queues, student state, etc.) and allow developers to focus on the interesting pedagogical problems instead.

How would we approach this problem if we were starting over today? Web components? Does it need to be tied to storage or a server runtime at all (or only optionally)? If it was a set of front end components with optional backend services, what would some of those basic pieces look like and how would they interact? Can we reuse low level edx-platform services while bypassing the existing Modulestore and XBlock runtime?

Expected Outcomes On the Day

  • Brainstorming ideas
  • Gathering requirements, pain points
  • Forming an interest group

Expected Outcomes After the Day

  • Prototypes!
  • Discussion!
  • A new plugin framework for courseware?
LGovernance modelsNate Aune - Appsembler

There was a governance workshop on 4/2/2015 to discuss the Open edX Governance Policy and related issues with the goal of bettering governance processes.

The next time we discussed governance was at a session at the DevSummit last year (2018) in which we discussed various governance models for Open edX. John Mark's notes from that session.

One of the outcomes of that discussion was that some pieces of the Open edX stack (especially those which are not really used by edX itself), could be entrusted to members of the community to maintain and drive forward. Maybe this openedx github account or friendsofopenedx is where these could live?

Since the new open.edx.org site was launched, the pages on governance seem to be 404ing.

My hope for this session is that we could rectify these missing governance pages, and create a definitive doc on Open edX's governance policy, or if one doesn't exist, form a working group among Open edX community members to draft one.

See the Docker Governance Advisory Board as an example of what I would hope would come out of this. And the notes, DGAB charter, presentations and action items.

John Swope

Giulio Gratta

Peter Pinch

Xavier Antoviaque

MOpen edX developer onboarding experienceNate Aune - Appsembler

Jono Bacon gave the keynote Building a Community Exoskeleton at the Open edX conference 2016 at Stanford, and he talked a lot about making a smooth onramp for people new to the community.

I'd like for us to use his model to create a user-centered approach to make Open edX more accessible, less intimidating, and as a result, grow the community with more developers and contributors.

I gave a workshop at last year's conference "Getting Started with Open edX Development", and I'm repeating this workshop again this year. Nimisha has also been spearheading an Open edX Architecture Course.

I'd like for us to put our heads together and provide a smooth onboarding for developers new to Open edX who want to learn the platform for use at their own organization and potentially become contributors.


My desired outcome is that we would have 1) a roadmap for someone new to Open edX, and the steps they would go through to become proficient and 2) an outline for an introductory course, that we could then go home and start putting together the content, exercises and other materials. 

This course could be offered under a Creative Commons license to spread the knowledge about Open edX development.

Seamus Johnston

Nimisha?

Peter Pinch

Stefania Trabucchi
Pooja Kulkarni

Jeremy Bowman (Deactivated)

Carol Willing

NAuthoring Experiences on Open edX

Shelby Quinn (Deactivated) - edX Product,

Albert (AJ) St. Aubin (Deactivated)- edX Engineering

(This is currently planned as a double long 3hour session organized into two sections, allowing others to join one or both parts depending on their schedule.) 

The goal of this session is to get feedback and input on the primary challenges authors face, helping us advance the platform direction and development speed for authoring improvements as a community. To start each of the two summit sections the edX product team will share current data or representations of the authoring and product challenges we have seen to help organize our discussion on how to move forward. 

Half 1: Authoring Challenges and Community Breakouts 

The first hour and a half is focused on key authoring challenges at the course & program levels, with the majority of time set aside to work in smaller groups on a few areas within authoring. 

Authoring Concept Areas and Breakouts:

  1. Speed of Authoring
  2. Quality Content
    1. Embedded Best Practices
    2. Feedback Loops
  3. Collaboration & Community
  4. Supporting Learners @ Scale 
  5. Integrations & Extensions
    1. Course Level
    2. Program Level

Half  2: Platform Conceptual and Architectural Review

The second half of the summit is focused on how we can evolve our authoring experiences on Open edX to incorporate the latest product and architectural thinking. We hope to take advantage of the discussions, use cases, and ideas from part one in this discussion.

(More details here soon)




OPiloting a MOOC using EdX available reports - from the teacher's standpoint how easily get usable analyticsLaurent David

Although there are other several data source that can be used to see what is happening on a course, we would like to concentrate on what is currently available to a Teacher/Staff through the instructor Dashboard (grade report, list of students, cohorts...).

From this standpoint, participants will be asked to contribute ideas into new visual ways for available data either inside edX or outside (as an standalone tool).

Possible Schedule:

Two sessions:

• Session 1 (1 hour): Discussion on what can be done with available data and type of information one can easily retrieve

• Session 2 (30 mins): How to integrate efficiently additional dashboards or similar analytics tools in the edX ecosystem.

  1. Useful set of graphical representation of available data (starting from existing ones provided by MOOC Pilot for example)
  2. Ways to extend edX instructor Dashboard for such analytics and other similar needs

PMulti-tenancy in Open edX using micrositesNate AuneMaxi gave a talk at Open edX Conference 2018 called Challenges of Multi-tenant Open edX (see video recording and slides). I'd like to get people together who are using the microsites framework in Open edX (Appsembler, eduNEXT, Proversity, Learning Tribes), or want to use it, to discuss challenges and how we can work together to overcome them in a collaborative fashion, rather than each company reinventing the wheel.
Stefania Trabucchi
QOpen edX Analytics CollaborationJohn BaldwinWe had some good discussions at Open edX Conference 2018 Developer Summit on analytics. I'd like to get people together to talk about needs, what folks have developed or are developing, using this knowledge to help build analytics as a community collaborative effort.
  1. We learn what other community members needs are that not currently met and what others have developed or are working on for analytics tools
  2. Ideally we begin more collaboration in growing and evolving analytics for Open edX


RDiving into edX end to end tests as an external contributorSilvio Tomatis

edX automatic tests are currently run on a Jenkins instance run by edx on https://build.testeng.edx.org/.
It's currently hard for an external contributor to run these tests.
The end to end tests at https://github.com/edx/edx-e2e-tests could potentially be very useful to test deployments of edX. The tutor project, for instance, could benefit from a test suite that exercises all the moving parts it assembles (e.g. elasticsearch/celery).

The current documentation is very terse on this matter.

Automated tests have a great potential to make it easier to contribute to the project, but in their current state they're hard to run unless you're very familiar with them.

I'd like to chat with the people involved in test development and CI setup to understand the challenges and current shortcomings, and propose a travis (or some other widely available free CI system) solution to
allow external contributors to easily run them.

Have some edx browser tests running on a public CI provider (like travis-ci) and/or produce documentation
about how they should be run.

  • ...