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

@Olivia Ruiz-Knott

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

 

Yes: find me in Gather.

Clamps Nudger

Add a clamps confluence command to https://github.com/edx/clamps/tree/master/clamps/commands that wraps wiki nudger

coding

@Adam Blackwell

 

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

@Peter Pinch @Adam Blackwell (maybe) @Olivia Ruiz-Knott @Jeremy Bowman

Yes - In #hack-rtd-builds

  • @Feanil Patel

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

@Peter Pinch

 

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 the interaction very thoroughly.
A separate / competing add-on product for accessibility is MathPlayer, which is quite well documented. Basically I want to write the same document, but for MathJax, using one or more screen readers.
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

Como se dice… i18n?

Join the #i18n-hacking Slack channel in the Open edX space, OR, ask for an invite from Mariana or Sarina to the #external-i18n-hacking channel in the edX space

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.

join - external-i18n-hacking

Access to Transifex

@Mariana Hernandez Barroso @Carla Duarte

@Olivia Ruiz-Knott

@Sharon Wang

@Juliana Kang

yes

Como se hace… i18n?

Join the #i18n-hacking Slack channel in the Open edX space, OR, ask for an invite from Mariana or Sarina to the #external-i18n-hacking channel in the edX space

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

@Olivia Ruiz-Knott

@Sharon Wang

@Juliana Kang

 

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

@Peter Pinch

 

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 @Matt Tuchfarber (Credentials code cleanup)

 

Y

I cannot commit to leading a hackathon team this time, so I ask that interested hackers are willing to be self-led. -Kyle

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

@Dean Jay Mathew @Peter Pinch

 

Open edX developer docs unification

The Open edX developer docs are currently split across two repositories.

https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/

https://edx.readthedocs.io/projects/edx-developer-docs/en/latest/developers_guide/index.html

The edx-developer-docs repository is the intended home for developer docs, but we never finished moving everything over. In fact, most docs are still in the edx-documentation repository. Let's finish pulling them over!

Time, patience, organizational abilities

@David Joy

@Peter Pinch

N

Do something useful with commit messages

With the next release of open edX, we will have a complete release cycle with conventional commits in use. Can we use them to build release notes, or changelogs, or something?

  • Thoughts on what would make commit message useful

  • git/shell/javascript

@Peter Pinch

@Connor Haugh

 

Map / better organize our docs

TL;DR - Finding different places we have docs, identify ways to improve our organization/information architecture.

External: Finding different places where we have external-facing docs (e.g. read-the-docs, GitHub, Confluence), identify linkages/hierarchies and propose improvements.

Internal: I have been working on a proposed confluence organization. Using that and outputs from a Confluence crawler, propose new Confluence organization.

Grasp (or desire to grasp) information architecture.

@Nathan Sprenkle

@Adam Blackwell (very maybe)

 

How to submit a support ticket page

Write a page that details how to support a support ticket for every SaaS project that we use

Patience

@Adam Blackwell

 

N

django-wiki: DEPR or fix?

Many years ago, we forked django-wiki and departed the upstream repo. So the course wiki feature no longer benefits from security updates & new features from the upstream repo. This project would generate a report detailing:

  1. What’s the current usage of the django-wiki course wiki feature for prod-edx and prod-edge?

    1. How many courses have it activated?

    2. How many pages/content have been generated over time?

      • By course team? By learners?

    3. How many active learners are accessing the generated wiki content over time?

  2. What’s the current usage of the course wiki feature in Open edX installations?

    1. Start a Discourse thread to ask the Open edX community about community usage.

      1. Do we have existing numbers on this?

  3. How active is the upstream repository?

    1. How many commits over time?

    2. How many active contributors?

  4. How much work would be required to:

    1. update the edX django-wiki fork with all the upstream changes to date?

      1. OR move all our custom commits to a branch off the upstream master - and use it as the fork’s new master branch?

    2. move edx-platform back to using the upstream repo itself?

      1. By incorporating all our custom changes back to the upstream repo

  5. Product has plans to default the wiki as off in Studio-created course runs - it currently defaults to on. (per @Marco Morales )

    1. Create a PR which defaults the course wiki to OFF for new course runs in Studio.

If time allows, we could also make an attempt to accomplish 4.a) above.

We’ve recently had a security issue that we fixed by hand-merging a security fix from the upstream repo back into our fork, so this is a timely project.

Ultimately, the goal of this project would be to provide our product/engineering organizations enough data to either deprecate the wiki feature or invest in it.

DB querying, Git/Github, tech writing

@Julia Eskew

@Julia Eskew @Jeremy Bowman @Jazib Humayun

Y

Picture-in-Picture (PIP) for videos on mobile devices

Mobile team from lahore will implement PIP for the video blocks in our Android & iOS mobile apps.

Mobile App development, Mobile UI / UX

@Moin Omer Habib

Axinite (Mobile) (@Moin Omer Habib @Farhan Arshad @Hamza Israr @Mian Khalid @Muhammad Umer @Bilal Awan )

Y

Video background playback support(iOS)

As a learner I’ll be able to listen the videos while the app is in background or the device is locked.

Mobile App development

@Saeed Bashir

@Hamza Israr

Y

Masters Partner-Facing Documentation

We deliver some documents to partners who’re integrating with our system to support Master’s programs. We’d like to overhaul these documents so they’re more comprehensible & less reliant on specific people on the partner’s end being at a kickoff meeting (or those specific people remaining on the project through the future). (Open edX users may not be super interested in this unless they’re interested in leveraging our platform to run for-credit programs with external partners, which is pretty niche for not-edX.)

Fresh eyes

@Matt Hughes

@Julia Song

Y

Frontend Documentation Cleanup

The “FEDX” space on the wiki includes a bunch of outdated pages, as well as a number of pages that probably belong in the developer documentation. This project involves cleaning up the old stuff and marking it as such and moving technical documentation to ReadTheDocs. Differentiating between frontend documentation in general, docs related to frontend working group, and docs related to edX’s internal FedX meeting would also be great.

Frontend knowledge (what’s current, what’s outdated?) and organizational skillllllsss

@David Joy

 

N

More discoverable search for docs.edx.org

docs.edx.org is, theoretically, our entrypoint for documentation. We also have a universal search feature but you’d have to know to go to docs.edx.org/search .

Simple upgrade: make it easier to find search, either by adding a search box to the main page AND/OR having a link from the main page that directs you to the search page.

Repo: github.com/edx/docs.edx.org

HTML/JS

@Nathan Sprenkle

@Awais Jibran

@Leangseu Kim

Yes

Django Admin cleanup

We have a lot of functionality in Django admin, but the permissions groups are confusing and there are many undocumented pieces. Do some cleanup of this.

Someone from support to bounce questions off of?

@Dave Ormsbee

 

Y

Guide to Developing Content Features

There are many parts of content feature development that are not immediately obvious, particularly when it comes to managing the lifecycles of various entities–plugins, course re-runs, the content publish cycle, import/export, etc. There are also a wide variety of ways to fetch content-related data, further adding to the confusion. Write up a guide on best practices.

I think I know where I would like to go with this, but would appreciate reviewers.

 

@Dave Ormsbee

 

 

Caching Guide

When should you use caching, what kinds of caching do we have, best practices, etc. Reviewers would be appreciated.

 

@Dave Ormsbee

 

 

Authentication Clean-up

Cleaner auth would require less documentation. I’m also interested in fixing some mysterious bugs. If you are interested in learning a little bit about auth, come and join. Also, see the auth section of Arch and Engineering Challenges (2020+)

 

@Robert Raposa

@Saad Yousaf?

Y