Ideas for Open edX Conference Hackathon
If you have ideas about what to work on during the hackathon for the 2014 Open edX Conference, add them here! You can also browse existing ideas, and add your name if you're interested in working on an idea!
Idea | Proposer(s) | Interested People | Notes |
---|---|---|---|
Upgrading Django | David Baumgold (Deactivated) | This will be a lot of work, and require a lot of testing. | |
Improve Initial Course Entry | Marco Morales (Deactivated) | Suggestion for a small project which would allow course authors to move away from the use of the Course Info tab. | |
Course structure graph | dmitchellR (Deactivated) | Use a graphing package to display any given course's structure highlighting orphans, blocks with > 1 parent, blocks with unpublished content? perhaps adding some crud operations. Intended audience is data debuggers not end users. | |
Studio version history viewer | dmitchellR (Deactivated) | Nimisha Asthagiri (Deactivated) | Add a unit, component, whatever history viewer (log w/ who & when) which allows you to click on any entry to view that version (and perhaps revert to that version) |
bug-tracker dot edx dot org | Adam Palay (Deactivated) | btalbotR (Deactivated), benweeksR (Unlicensed) | Simple tool for PMs (and others!) to track the status of a bug fix once it's been "closed" on JIRA. The tool would give information about whether the fix is a) live, b) in the current rc, with an estimate about when it will go out, or c) in master, but not yet on a release candidate. |
Accessible Drag n Drop | Mark Sadecki (Deactivated) | There has been some work on making the DnD problem type accessible (https://groups.google.com/forum/#!topic/edx-code/rk4Z-ysB_UE) However, I'm not crazy about the approach (it has an accessible fallback alternative). I'd like to work on returning to a unified solution that works for everyone without making any compromises on existing features or functionality. | |
Support for Captions in Media Player | Mark Sadecki (Deactivated) | Our current media player supports the display of synchronized transcripts only. There have been an increasing number of support requests for traditional captions in addition to transcripts (captions displayed in an overlay over the video are preferred by people with hearing impairments.) Related tickets (from Zachary Kramer (Deactivated)): | |
Reorganize developer guides to make onboarding (internal and open source) easier | Renzo Lucioni (Deactivated) | Colin Fredericks dfriedmanR (Deactivated) | Unify the old closed source wiki (old confluence), the open source wiki (this confluence), the github wiki, and the read the docs developer guides (source is here: https://github.com/edx/edx-platform/tree/master/docs/en_us/developers/source). Probably centralizing on the Github wiki (with links to the open source wiki as needed) since the Github wiki is the first place most contributors will look. |
Scripts for uploading course vid transcripts on Transifex, & downloading them back. | Sarina Canelake (Unlicensed) | Would involve: scraping a course's assets for transcripts; figuring out how to get the text from the SRT files extracted and put into .po files (? or maybe there's another solution) for upload to Transifex (it its own course-specific project); downloading translated assets from transifex and reassembling into SRT files; uploading the new transcripts into existing course content. Target is to get the transcripts from the DemoX course translated. | |
Docker.IO containers for edX devstack and fullstack | Ali Hasan | Replace the Vagrant VirtualBox support with Docker.IO. Compared to VirtualBox, Docker is much more lightweight and it offers native performance for the app. Check https://docker.io for info about docker. As a stretch goal, I'd like to add setting up a clustered Docker.IO setup to allow dev. to have closer environment to production. This is especially doable with Docker because of it's relatively low memory consumption. Note from Nate Aune: We've already built some Open edX Docker images (edx-lite and edx-full), but they're all-in-one, and we'd like to split the services into different images to have better separation between application and database, for example. Here are the instructions on how these images were created using Ansible. We started working on a multi-container Docker in this docker_multi_release branch of our forked configuration repo just MongoDB and MySQL for now. Could possibly use Fig from Orchard (now owned by Docker) to handle the linking of different containers. If you don't already have Docker installed on your computer, and you have a Mac or Windows machine, the easiest way to get it installed is to use boot2docker. | |
Upgrade Django wiki | Sarina Canelake (Unlicensed) | We haven't updated our fork of https://github.com/django-wiki/django-wiki (https://github.com/edx/django-wiki) since forever - Adam Palay (Deactivated) is that correct? Do we have a sense of how much work this would be? Adam Palay (Deactivated): yeah since at least 2012. I know we'd made a few changes to our own fork, so we'd have to make sure they were compatible with new versions. But yeah, updating would be great. | |
Use libsass instead of sass (remove ruby dependency in edx-platform) | Dave Ormsbee (Deactivated) | Sass is indispensable to the design team, but the way we currently use it requires us to run a ruby process as part of edx-platform. Using libsass would allow us to remove that from our stack and give us dramatically faster compilation of stylesheets (some benchmarks show a 20x+ improvement there). Some wrinkles that would have to be resolved:
| |
Pluggable settings views in Studio | Andy Armstrong (Deactivated) | Use Stevedore to make the list of Studio settings view be pluggable. For a demo, consider making an ORA 2 settings page. | |
Implement first class features | Andy Armstrong (Deactivated) | Use Stevedore to make 'feature' as a first class extension. Features should be implemented as database backed configurations so that they can be enabled and disabled. Allow features to declare their constituent parts (xblocks, plugins, Django apps etc) and have them all enable and disable together. Add an admin page for managing features. For a demo, consider making ORA 2, discussions etc into features. | |
Death to lettuce. All hail bok choy. | JesseZ (Deactivated) | We have two sets of selenium-based acceptance tests: the legacy tests built on lettuce and the more reliable tests built on bok-choy. We will be working on converting all the remaining lettuce tests to bok-choy. If you want to learn (or improve your skills at) bok-choy or to really dig into a particular feature by helping to convert its tests, we welcome you to join our team! See this page for more details. You could also make the xblock-sdk tests use bok-choy properly, as a warmup exercise. | |
XModule to XBlock porting | Dave Ormsbee (Deactivated) | XBlocks can have children! Let's start moving more XModules to be XBlocks! For each particular XModule, this would mean:
Some example XModules to target:
Calen Pennington (Deactivated): Please add anything you think pertinent. Note: Studio's lack of support for editing non-xmodule xblocks will be a major impediment to merging any of these ports. | |
Travis.CI for edx-platform | JesseZ (Deactivated) | If we can get around the edx-platform environment taking so long to build from scratch we might be able to switch to Travis for CI. I've outlined a possible approach to investigate: pip-accel / upload to S3 / build matrix. See this page for details, comments and thoughts welcome. | |
Studio Move Feature | Marco Morales (Deactivated) | Marko Jevtic (Deactivated) | The ability to relocate a studio component to another Unit/Container page. From a new action on each component, a Move modal lets you select another valid location. (sketch - https://www.dropbox.com/s/s03u9sq5af3cfcw/Studio%20-Move.png?dl=0, https://www.dropbox.com/s/w7vvun78t6sdni5/Studio%20-Move%20-Selected.png?dl=0) |
Add field validation to XBlock | ChristinaR (Deactivated) | As of https://github.com/edx/edx-platform/pull/5710, Studio will display validation messages returned by xblocks. The XBlock validate method currently just returns an empty Validation object. A reasonable default implementation would be to validate the fields on the xblocks (make sure they are the expected type, within acceptable ranges, etc.). If you are interested in working on this, talk to dmitchellR (Deactivated) who has a lot of ideas about default validation. | |
Improve editors in Studio Advanced Settings | ChristinaR (Deactivated) | Braden MacDonald | Introduce the editors we have in component settings into Advanced Settings (leaving the generic JSON editor for field types that we don't have better editors for). See edx-/edx-platform/cms/static/js/views/metadata.js. |
Get static code analysis into quality process | Ben Patterson (Deactivated) | Ben Patterson (Deactivated) | Take a tool like radon (or its enforcer, xenon) and provide static code analysis on builds. |
Automate testing of devstack spin-ups | Ben Patterson (Deactivated) | Build a CI pipeline for devstack. Goals: to test on a regular basis (at least once/day, at most as many commits as possible of edx/edx-platform and edx/configuration):
Should also run smoke tests against the devstack target once provisioning completes, with some retrofitting on the test_build_server role in the configuration repo. Note: due to virtualization limitations, this cannot be done on EC2 completely end-to-end; however, portions of it (such as the ansible provisioning) can.
| |
Cassandra backend for Student Module | Jim Abramson (Deactivated) | rochaR (Deactivated) | Implement Cassandra as a significantly more scalable backend for the XBlock user_state scope in the LMS runtime. The expected integration style is to implement a new CassandraKeyValueStore, replacing the DjangoKeyValueStore presently being used. In terms of data model, this sketches out a proposed starting point:
|
MathJax -> KaTeX | Jim Abramson (Deactivated) | davorino (Deactivated) | KaTeX is a new math typesetting library built by Khan Academy engineers, which purports to outperform MathJax by up to 20-30x (ex. http://jsperf.com/katex-vs-mathjax). KaTeX as yet only supports a subset of MathJax functions and is therefore not a drop-in replacement for existing courses. As a mitigation we could provide a course-level switch where the author/admin can choose between the two libraries. |
XBlock services | Richard Machielse (Unlicensed) | User and Course services in XBlock to provide details about the current user and course | |
XBlock editing in Studio | Andy Armstrong (Deactivated) | Rework Studio's editing framework so that it is not dependent upon xmodule descriptors but can work for any arbitrary xblock. Some thoughts:
| |
Concurrent course editing support | Steven Vergenz (Unlicensed) | Add the ability to either: a) Replicate the state of a course to other instances of edX, and merge changes from other instances. This would allow each member of a team of developers to have his/her own devstack, and can thus make edits to a course without fear of overwriting another team member's drafts/changes. Perhaps some sort of git integration with the course import/export tool? b) Indicate what users are currently editing a course page, preferably along with the ability to see their changes in real-time in the draft view. This could allow out-of-band communication between team members to make sure no toes are stepped on. If path a) is taken, this could tie in with the Studio history viewer proposed by dmitchellR (Deactivated). | |
Learner Account page | francesR (Deactivated) | This is a two part project:
| |
Break, Record, Document | Molly de Blanc | Take a part of the install or setup process, attempt to break it, and write documentation. | |
Use RequireJS Optimizer in the LMS | willR (Deactivated) | Studio is already using RequireJS Optimizer. This would extend that work to the LMS, with the end goal of converting at least one LMS page to RequireJS. | |
Cognii Virtual Learning Assistant | Dee | Develop Xblock and LTI plugins to integrate Cognii's natural language processing assessment API into Open EdX platform. The main tasks include:
| |
Login & Register combined into "Sign in" page | awaldropR (Deactivated) |
| |
x2go (edX in a box) | Nikhil Dubbaka (Deactivated) | Brad Smith (Akamai), Omar Al-Ithawi (QRF) |
|
rePatcha XBlock | Nikhil Dubbaka (Deactivated) |
|
Facilitators/mentors (Thursday)
In addition to working on projects, we'll need a few engineers interested in being facilitators / mentors for the Hackathon. You don't have to do this the whole time! But if you'd be willing to spend 1-2 hours of hackathon day 1 walking around to different groups, making sure people are properly set up and focused, please put your name here. Sarina Canelake (Unlicensed) will coordinate with everyone to make sure that we have everyone spaced out and that everyone also gets plenty of time to hack!
- Sarina
- DB