Contribute to the DSpace Development Fund

The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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

Background to the DSpace 7 project

  • 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 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 Group 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? 

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

There are several reasons Angular 2 caught our immediate attention when it was beta released in late 2015 (For more on some of these see: https://angular.io/features.html)

  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 supports many Java-like concepts. So, we feel developers familiar with Javascript or Java will be able to pick up this new language quickly.
  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.

Why are we re-building the REST API  – what improvements will I see as an admin?  Will my end users see from these changes?

How are we using these technologies to build the UI - a description, in plain English, of the potential that is provided by using the combination of Angular2 + improved REST API

What have we done so far on this?

Project steps (doesn’t have to have dates, but something to indicate where in the process you feel we are up to) – would be good to provide something visual for this, rather than text as the page will be text heavy

Tim used the phrase ‘building the frameworks’ – what does this mean in terms of the development roadmap?

  • No labels