Skip to content

Materia v10.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Oct 17:45
· 176 commits to master since this release
v10.0.0

Materia version 10 is the single largest update to the platform to date, representing a colossal amount of effort from current and former developers at UCF's Center for Distributed Learning. Its primary goal is to address considerable technical debt due to the system's age, incorporate long-requested and desired features such as a support user dashboard and improved accessibility communication, and enhance the system's overall look and feel.

New and Notable Features

Replaces AngularJS with React and Static Asset Consolidation

Previously, static assets (JS & CSS) were part of a separate repository, Materia-Server-Client-Assets. This update brings these assets back into the fold in a new top-level src directory. Compiled assets are emitted by webpack into public/ (public/dist/ when in development environments). Because React is doing the heavy lifting of DOM rendering, the old PHP partial views in fuel/app/themes/default/ are retired.

This conversion also affects how theme overrides work. Previously, controllers would listen for Events registered in Fuel package's bootstrap.php files, and make use of PHP partial views provided by those packages. While the event registration/trigger system remains, theme packages operate a little differently. See the Materia-Theme-UCF repo for more info.

Redesign and Improved Responsiveness

The React conversion gave us the opportunity to give Materia a much-needed facelift. Enjoy crisper, snappier interfaces, improved UX like creator guide links in the widget creator, responsive layouts, and a soon-to-be-implemented Dark Mode.

Improved Support and Administration

We've added a new user role, support_user, to bridge the gap between normal users and administrators. Both support users and admins have access to new admin panels to handle common requests from users. Support users are given access to the User admin interface, where they can easily look up user information, play history, and owned instances - and even administrate those instances directly. They also have access to the Instance admin interface, which allows fast lookups of any instance in the database and administrative actions like modifying settings or adding users.

The Widget Admin interface remains available for super users, allowing for fast widget installation in addition to updates and administration of the widget catalog.

Accessibility Information

The widget catalog and details pages now include additional qualifying information about keyboard and screen reader accessibility if the requisite metadata is included in a widget's install.yaml:

metadata:
    accessibility_keyboard: Full # values can be Full | Limited | None
    accessibility_reader: Full
    accessibility_description: >
        A brief description of the widget's accessibility implementation. This metadata value is optional.

The New Materia-Widget-Dependencies Package

Because of MSCA's retirement, the widget development kit will need a new node package dependency to provide the required Materia JS and CSS to properly run. This is provided in the new materia-widget-dependencies package, which is located within a package.json in the public/dist directory. The package can be published via a GitHub action as required, to include the latest and greatest changes from the Materia engine, creator, and score cores, or other aspects of the creator and player.

Miscellaneous Updates

Other notable features include:

  • A new footer for widget players with a direct attribution link to Materia as well as a link to the player's guide, if included
  • Direct links to the Creator's Guide from within widget creators, if included
  • Support for additional audio MIME types in the media uploader, primarily .m4a
  • Support for "soft" deleting previously uploaded media assets in the media importer
  • Paginated API queries for particularly large API requests, including instances, users, and score data

By the Numbers

  • 567 commits, the first of which was authored July 13, 2020 by @iturgeon
  • 430 files changed
  • 46,022 lines of code added, 6,216 lines of code removed

What's Changed

Note: this list of pull requests is not comprehensive!*

New Contributors

Special Thanks

The following developers and contributors were instrumental in this release, and we're grateful for all of their hard work:


Full Changelog: v9.0.3...v10.0.0