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 experience | E: Operations and Remote Config | |
10:15-11:00 | N: Authoring Experiences on Open edX | J: Micro-frontend theming and customization | ||
11:00-11:45 | A: Develop a plugin system for Tutor | |||
11:45-12:30 | G: API Documentation | Q: Open edX Analytics | ||
12:30-1:30 | Lunch & Pinata! Yay! | |||
1:30-2:15 | C: Credentials & Badges: Now / Next | H: Frontend Pluggability | ||
2:15-3:00 | F: XBlock Sandboxing | |||
3:00-3:45 | B: Open edX Mobile: Now / Next | K: What Comes After XBlock? | ||
3:45-4:30 |
Proposed Topics
List proposed topics here. For each topic, please provide:
ID | Topic | Leader | 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: Install should be as simple as:
|
| Nate Aune - more interested in getting Figures into Tutor, which should be ready for Hawthorn by the time of the conference. /cc John Baldwin | |
B | Open edX Mobile: Now / Next | Description: Session Schedule: 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.
| |||
C | Credentials & Badges: Now / Next | Description: 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! | |||
D | Designing the Authoring Experience for an Adaptive Platform on Open edX | Dale Johnson - ASU, | 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. | ||
E | Operations and Remote Config | Fred 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 | ||
F | XBlock Sandboxing | Braden 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. | |
G | API Documentation | Braden MacDonald - OpenCraft | A 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. | |
H | Frontend Pluggability | Nimisha Asthagiri (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:
| ||
I | Micro-frontends and Deployment on Open edX | Nimisha 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. | ||
J | Micro-frontend theming and customization | David 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.
| 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. | |
K | What comes after XBlock? | Dave Ormsbee (Deactivated) - 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
Expected Outcomes After the Day
| |
L | Governance models | Nate 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. | |
M | Open edX developer onboarding experience | Nate 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. | Nimisha? |
N | Authoring 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 BreakoutsThe 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:
Half 2: Platform Conceptual and Architectural ReviewThe 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) | ||
O | Piloting a MOOC using EdX available reports - from the teacher's standpoint how easily get usable analytics | Laurent 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. |
| |
P | Multi-tenancy in Open edX using microsites | Nate Aune | Maxi 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 | |
Q | Open edX Analytics Collaboration | John Baldwin | We 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. |
| |
R | Diving into edX end to end tests as an external contributor | Silvio Tomatis | edX automatic tests are currently run on a Jenkins instance run by edx on https://build.testeng.edx.org/. 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 | Have some edx browser tests running on a public CI provider (like travis-ci) and/or produce documentation about how they should be run. |
- ...