Why Modulestore?

Hackathon Experiments

As part of edX Hackathon XV, I experimented extracting out the modulestore code and its dependencies out into separate repos.  I ended up creating the following 2 repos:

In so doing, there were a few dependencies that needed to be judged on whether they should (1) be refactored so they can be extracted out with the modulestore code or (2) remain within the edx-platform.  For example, I made the following decisions:

Since the work was done as part of a hackathon and within 2 hours, mostly for experimentation, accurate documentation wasn't kept.

Guidelines for Future Attempt

When this work is re-attempted, we should make sure to keep a clean git history, by doing the following:

  1. Initial commit should be just the base django cookie-cutter created files.
  2. Second commit should be just the unmodified copy of the modulestore code from the edx-platform (so all subsequent changes can be reviewed).
  3. Then, the following commits should be separated:
    1. All Python-3 compatible edits.
    2. All missing dependencies added to the requirements.
    3. All quality fixes.
  4. All other functional modifications should be kept as subsequent separated commits so they are easier to review and track.