Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Stevedore extension points should be provided for each of the common UX changes that need to be made
    • Note: see the Audit below for a comprehensive list
    • An initial list would include:
      • "Feature flag"
        • Note: this will be a ConfigurationModel derivative (which includes a built-in enabled column)
        • We recommend this over using a Django settings feature flag
        • It would be useful to allow all associated extensions obey the feature flag automatically
      • URLs for new UI and REST APIs
      • LMS tabs (although the concept should be more general as mobile won't render these items as tabs)
      • Instructor Dashboard components/tabs
      • New Studio editing tabs for xblocks
      It would be useful to allow a feature to be enabled or disabled once and have all of its extensions follow
  • XBlocks should be extended to provide more capabilities
  • The Django asset pipeline needs to be improved
    • Have the pipeline pick up assets from all installed Django apps (to support CDNs, minification etc)
    • RequireJS Optimizer support should be added to the LMS
  • There are some interesting aspects of supporting arbitrary plug-ins
    • An order must be established for visual aspects such as tabs. Today the order is implicit in the hard-coded list.
      • If in doubt, sort the items alphabetically by name
    • How can plug-ins adopt the correct look-and-feel?
      • An initial thought is that we could document the boilerplate that each plug-in type should include
      • Miki suggests that maybe we should use inheritance to our benefit here, where the superclass renders the boilerplate
      • Eventually we might want to use a mechanism more like XBlock that can be rendered inline
    • It needs to be decided how mobile can benefit from these plug-ins
      • If they provide new UI as URLs then they won't just drop in to mobile
      • XBlocks will just appear, but only by using a web view to render the HTML
      • React, a JavaScript library from Facebook, might help with native rendering of HTML

...