Hackathon XXVI Ideas

Please keep in mind that this page is shared publicly with the external Open edX community and that confidential information (learner data, business plans, etc.) should not be shared in connection with any Hackathon project, whether on this page or in shared Slack channels or elsewhere.

This page is intended to share all ideas for Hackathon projects regardless of whether the ideator will be working on it during the Hackathon or not.

Some ideas from previous hackathons that are up for grabs here: LINK. Note: If you want to work on an idea from this list, please move it to the Confluence page. If you have a new idea, please add it to this Confluence page.

For documentation projects, here are some possible categories of work:

  • Investigate new technologies: look for new ways to write and publish information.

    • Note: Legal wants to do vendor reviews even before signing up for free trials.

    • Examples:

      • Is there something better than Confluence?

      • Is there a better all-docs search than https://docs.edx.org/search ? The current search is only over public documents. Is there something that could also work on private documents?

      • Is there a WYSIWYG .rst editor that could make it easier for people to edit RST docs?

      • What’s the best third-party maintained Sphinx theme to replace our custom one?

  • Build tools: create things that will make producing, finding, using, updating, or fixing docs better.

    • Examples:

      • Wiki spider to find stale wiki pages

      • A “bad page inbox”: how can we make it as easy as possible for anyone (in or out of edX) to alert us to wrong/bad/out-of-date pages?

      • Measure some docs quality stats: how often are pages updated?

  • Process improvements: ways to change how we work to help keep docs good.

    • Examples:

      • What does ownership of docs mean?

      • Spell out how best to do continuous integration for the docs in a repo.

      • Establish a tag/label/marker of some kind to tag pages that need attention.

  • Repo-by-repo work: fix a repo at a time.

    • Examples:

      • Fix http://readthedocs.org projects that aren’t building successfully now.

      • Add docs CI to repos that don’t have it

  • Page-by-page work: fix a page at a time, possibly actually write some docs.

    • Examples:

      • Improve a “root” page to help people find things.

      • Add a new “root” page for a new part of our audience.

      • Identify some wrong pages, even without fixing them yet.

      • Fix some wrong pages.

      • Correct a README.rst in a repo.

Other resources:

Idea Name

Idea Description

Necessary Skills

Proposer Name

Interested Hackers

Committed Project? (y/n)

Idea Name

Idea Description

Necessary Skills

Proposer Name

Interested Hackers

Committed Project? (y/n)

Zoom timer

a Zoom plugin that tracks the cumulative speaking time of each participant

coding

@Albemarle

 

not yet

Wiki Nudger

Go through the wiki and get a list of all the pages ordered by when they were last updated.

Can probably start with https://github.com/nedbat/wikicrawl and make improvements.

coding

@Ned Batchelder

 

No

Build the Docs

There are many repos that are currently failing to build and publish their docs to ReadTheDocs. Fix the issues, but also add a test to CI to detect breaking the docs so we can catch it earlier.

Run Book for Debugging/Fixing Docs and Adding CI

edX Credentials: https://github.com/edx/credentials
Owning Team: aperture
Repo Priority: medium

Django Config Models: https://github.com/edx/django-config-models
Owning Team: arch
Repo Priority-bom: medium

django-user-tasks: https://github.com/edx/django-user-tasks
Owning Team: arch
Repo Priority-bom: low

edX Ecommerce: https://github.com/edx/ecommerce
Owning Team: revenue
Repo Priority: high

edX Automated Communications Engine (A.C.E.): https://github.com/edx/edx-ace
Owning Team: engage
Repo Priority: medium

edX Insights: https://github.com/edx/edx-analytics-dashboard
Owning Team: cosmonauts
Repo Priority: low

edX Data Analytics API: https://github.com/edx/edx-analytics-data-api
Owning Team: cosmonauts
Repo Priority: low

edX Analytics Pipeline Reference: https://github.com/edx/edx-analytics-pipeline
Owning Team: data
Repo Priority-de: low

edx-drf-extensions: https://github.com/edx/edx-drf-extensions
Owning Team: arch
Repo Priority-bom: high

Open edX Enterprise Service Documentation: https://github.com/edx/edx-enterprise
Owning Team: titans
Repo Priority: high

edX Open Response Assessments: https://github.com/edx/edx-ora2
Owning Team: gta
Repo Priority: medium

edX Enrollment API: https://github.com/edx/edx-platform
Owning Team: no
Repo Prioritylonger maintained

edX Submissions API: https://github.com/edx/edx-submissions
Owning Team: gta
Repo Priority: medium

event-tracking: https://github.com/edx/event-tracking
Owning Team: data
Repo Priority-de: low

edX Opaque Keys API: https://github.com/edx/opaque-keys
Owning Team: tnl
Repo Priority: high

coding

@Feanil Patel

 

No

Review Docs

Review https://edx.readthedocs.io/projects/edx-developer-docs/en/latest/ which is built from https://github.com/edx/edx-developer-docs . Add links to more docs, update the docs, or add more based on what you believe a developer new to Open edX should know about.

 

@Feanil Patel

 

 

REST APIs from JS

What REST APIs that are available to people using javscript on course pages, and how do we get to them? For instance, could we pull a list of the other courses someone’s enrolled in?

Django

@Colin Fredericks

 

 

JS On the Page

What javascript objects and packages are available on the page? For instance, I know there’s an Analytics object because I occasionally pull an ID number from it, but it’s not clear what else is inside it. I know JQuery and Underscore are both available (or were the last I looked), and FontAwesme 4.7. What other javascript packages, fonts, etc. are delivered to the user by default? Is there an object with the course structure? One with the user’s grades? With specific question responses?

Javascript and maybe django for code archaeology

@Colin Fredericks

 

 

Help Center consolidation

Is there any way to consolidate/merge responses at the edX Help Center? I remember some questions having multiple overlapping responses (and occasionally old out-of-date ones).

Patience

@Colin Fredericks

 

 

Video Controller

What is the structure of the video controller object? I’ve hooked into it myself in the past via JS, but it was some serious code archaeology, and making this easier would enable more people to build cool tools.

Javascript and maybe django

@Colin Fredericks

 

 

MathJax for PwDs

MathJax has a major upgrade (from 2.x to 3.x) out, and it is more interactive and natively accessible than the last version. The small MathJax team has done an admirable job attending to accessibility concerns in design and development of v3. But they haven’t documented those efforts at all. So I want to write a How to Use MathJax guide for People with Disabilities. This may eventually be included in a larger How to Learn Online for PwDs course.

writing, UDL, or instructional design might be helpful

@Jeff Witt

 

yes

Make the Hackathon Badge

 

 

 

 

 

Como se dice… i18n?

We will be working to consolidate and organize information relevant to edX’s current language support capabilities. This will become an information oriented reference that will support any potential i18n work in the future and serve as a source for ideas on where edX can go next for i18n.

Topics of consideration include, but are not limited to, current language support across our systems, user language preference data, the number of untranslated strings in Transifex.

Access to Transifex

@Mariana Hernandez Barroso @Carla Duarte

 

yes

Como se hace… i18n?

We’re looking to understand the technical landscape of translations at edX. We want to consolidate, organize, and improve current technical documentation wherever possible. In a broad sense, we want to understand where we are today and what opportunities to improve translations lie ahead.

Topics of consideration include, but are not limited to, how we enable a new language in a service, what translation infrastructure exists for each service, and discovery of new translation tech.

Coding, technical documentation, access to Transifex

@Mariana Hernandez Barroso @Carla Duarte

 

 

Form a Documentation Working Group

Create a charter and operational plan for a working group to continuously improve our documentation.

Note: doing this does not mean you are committing to run the working group, or even be a member!

Process thinking, organizational detail.

@Ned Batchelder

 

 

Monolith Clean-up

Organization in itself is a form of documentation!

edx-platform has dozens of Django apps spread across different folders. Some of the apps are redundant, while others are bloated. In this hackathon, I/we would aim to make edx-platform more self-documenting by moving, renaming, refactoring, and documenting apps throughout the monolith.

This clean-up would be done with an eye towards strengthening logical monolith boundaries, especially those between the Learning (LMS) domain, Authoring (CMS) domain, and supporting domains like Authn.

Python

@Kyle McCormick

@Kyle McCormick

 

 

 

 

 

 

 

I plan on doing one of these two projects.

Breaking apart LMS and CMS: Plan of Attack

Context: Splitting the Learning and Authoring functionality of edx-platform into two independent services is a long-held dream (at times, seemingly a pipe dream!). Now, though, with an arsenal of supporting systems like MFE courseware, course overviews, edx-when, and learning_sequences, the possibility of a Great Decoupling is more feasible than ever. Relevant ADR: https://github.com/edx/edx-platform/blob/master/docs/decisions/0005-studio-lms-subdomain-boundaries.rst

Potential hackathon goals:

  • Delve into the monolith. Catalog points of coupling between LMS and CMS and how we could resolve them / are resolving them.

  • Document guidelines for how Open edX devs can passively promote LMS/CMS decoupling cause through their platform work. Example: https://github.com/edx/edx-platform/pull/27620

  • Brainstorm the business case for teams to do active LMS/CMS decoupling work. Time permitting, draft a project proposal and leadership-oriented slide deck.

edx-platform experience, willingness to tolerate an open-ended and high-uncertainty project

@Kyle McCormick

@Kyle McCormick

More-helpful nginx error pages

In an Open edX deployment, if there’s an nginx error, they see this:

(built from https://github.com/edx/configuration/blob/master/playbooks/roles/nginx/defaults/main.yml#L95-L117 )

This page could be much more helpful, and less glib

Minor HTML skills

@Ned Batchelder