Versions Compared

Key

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

View file
nameDSpaceUI_condensedsummary.pdf
height250

DSpace 7 UI project – plain language summary of the update webinar (slides/recording here: http://duraspace.org/node/3103)

...

  • Starting in 2015, a DSpace 2015-18 Strategic Plan was created/adopted, along with a Technical RoadMap. For more details see: 2015 Strategic Planning Activities and the OR2015 presentation "DSpace Technology Roadmap"
    • The #1 priority on that RoadMap was to adopt a new, single User Interface (to replace the aging JSPUI and XMLUI).
  • In late 2015, a DSpace UI Prototype Working Group was established to develop/create a DSpace UI Prototype Challenge. The goal of this challenge was to hold a "friendly competition" to prototype several different technologies for a new, single User Interface. The Prototype Challenge ended in Dec 2015.
  • In early 2016, the DSpace UI Prototype Working Group began analyzing the 9 submitted UI Prototypes, and put out several calls for feedback from the broad community. See also 2016 Strategic Planning Activities.
    • The two options were narrowed to either a Java UI or a Client Side Javascript UI.
    • During this activity/analysis, we discovered that the Angular 2 platform had been released (in beta) in Dec 2015. While one Prototype featured Angular v1, we had several concerns (namely Search Engine Optimization and accessibility) with Angular 1. The Angular 2 release promised to support both SEO and accessibility
  • In March 2016, at the DuraSpace Summit, the DSpace Steering Group and DSpace Leadership Group were presented with pros/cons of a Java UI versus a Client Side Javascript UI.  We also detailed our (very early) findings on Angular 2 regarding its very promising claims to support SEO / accessibility.
    • Steering and Leadership saw great promise in a Client Side UI built on Angular 2.  But, no one was comfortable with finalizing that decision without a proof of concept.
    • Immediately after the Summit, four institutions (DuraSpace, Atmire, Texas A&M and Cineca) decided to collaboratively build a rapid proof of concept / prototype UI on Angular 2.
  • From March to June, the four institutions publicly collaborated to build a basic, proof-of-concept Angular 2 UI against the DSpace 5 REST API
    • During this prototyping, it was discovered that our REST API was lacking in features, and was not currently capable of supporting a full-fledged client side UI.
  • By late May / early June, the group presented findings on Angular 2 to the DSpace Steering/Leadership Groups. Both groups approved of the direction.
  • In June, at OR2016, the proof-of-concept Angular UI was presented/demoed. See the OR2016 presentation "Introducing the New DSpace User Interface"
  • (From June until November 2016, developer concentration moved over to getting DSpace 6.0 released.  DSpace 6 is the final release to include the JSPUI and XMLUI.)
  • In late 2016 / early 2017, a DSpace 7 UI Working Group (2016-2023) was established to formalize the process of building a new Angular2 UI and enhanced REST API for the DSpace 7.0 release.
    • Early in 2017, this UI Working Group has concentrated on planning out the architecture (especially for the enhanced REST API) and building the "framework" for the Angular UI.
    • In parallel, a DSpace 7 UI Outreach GroupMarketing Working Group (2016-2020) was established to help with outreach, and update/capture use cases needed to be met by the new UI. See: Use Cases

Breaking down the technology

What is Angular 2? Why choose Angular2? 

Angular 2 is the second version of the Angular Javascript framework built by Google: https://angular.io/

...

  1. Angular 2 supports Search Engine Optimization (SEO). In other words, applications built with Angular 2 can be easily indexed/searched by Google or Google Scholar (NOTE: we verified this by running a series of tests with Google Scholar team).
  2. Angular 2 supports Accessibility guidelines. Screenreaders (and similar) can have issues with Client Side Javascript applications. However, again, we verified Angular 2's accessibility promise with the help of accessibility experts at U of Kansas
  3. Angular 2 supports web archiving (e.g. Internet Archive harvesting and similar). This also can be problematic for some Client Side Javascript applications. However, we verified this with the help of RCAAP (Portugal).
  4. An Angular 2 application works even when Javascript is turned OFF.  While this may sound strange, this is the feature that supports #1-3 above. Your users don't need to even have Javascript running to use an Angular 2 application. To support this concept, Angular 2 pre-compiles Javascript into "static" HTML on the serverside. So, when Javascript is turned OFF, your users simply request new pre-compiled, static HTML pages each time they click links or buttons. This is done by a module called "Angular Universal" (that is bundled with Angular 2)
  5. Angular 2 applications are written in a language called TypeScript (built by Microsoft). TypeScript is an enhanced version of Javascript (and while it's new, it is widely supported by Microsoft and Google). But we like it even more as it is like a version of Javascript that Typescript also supports many Java-like concepts. So, we feel developers familiar with Javascript or Java will be able to pick up this new language quickly. It is also easier to debug (with many debuggers/editors) than traditional Javascript.
  6. Finally, the Angular framework is the most popular / widely used client side Javascript framework. So, there are many opportunities for support, and many third-party plugins available for building/enhancing Angular 2 applications.

...

During early 2017, much of the Angular UI work revolved around building out the groundwork (in Angular) to support the new REST API, and beginning to create interactions with a "mock" (i.e. faked) REST API. As the new REST API is still in very active development, the Angular team has had to develop against faked versions (until the real one is far enough along to interact with). This work is progressing in the following areas:

Other Questions:


– what improvements will I see as an admin?  Will my end users see from these changes?

...