WARNING: This page consists of some rough proppsals / brainstorms on a future direction for the DSpace User Interface(s).

As such, none of this is set in stone, and none of these ideas are (as of yet) guaranteed to occur. If any do begin to gain broad support and momentum from DSpace Steering Group, DSpace Leadership Group, Committers & DCAT, we will inform the community.

Multiple UIs vs One UI

Before deciding on a future direction for the DSpace UI(s), we have to face up to the "elephant in the room". We currently are building, maintaining and supporting two UIs (JSPUI & XMLUI) under a single Committers group.

Therefore, in order to move forward, we must make a decision on whether this direction is the best one for DSpace.  As such, here's some pros/cons to multiple vs single UIs...(feel free to add your own)

Possible Benefits of Multiple UIs

Possible Disadvantages of Multiple UIs

Possible Benefits of a Single UI

Possible Disadvantages of a Single UI

Proposal for a single out-of-the-box UI

Given the benefits and disadvantages above, one thing seems abundantly obvious: We cannot reasonably expect to continue supporting two UIs with a single Committers team. Or to restate that, it is unreasonable to expect any Committer (who are all volunteers, working at their own jobs) to be well versed enough to support, maintain, develop and review fixes for multiple UIs simultaneously.  This is an obvious misuse of the volunteer resources provided. Each institution has already made their own personal decision on which UI they wish to use, yet we are essentially forcing some institution's developers (e.g. Committers) to also be knowledgable on the other UI (which they never use on a day to day basis).

Given this, it only seems reasonable to also conclude:

What makes a good UI (framework)?

The following is a list of features/needs which we feel would make a good User Interface / User Interface framework.  Since not all of these features/needs would have the same importance, we've categorized some as "required", "recommended" or "optional".

  1. Easy to run "out-of-the-box" (required): in keeping with DSpace Vision, any UI or UI framework must be easy to get running "out-of-the-box".
  2. Ease of UI Customization (required): a UI should be relatively easy to customize for institutions. At a minimum, institutions should be able to easily swap out the header/footer/color scheme of the default UI. Ideally, the UI would support third-party themes (e.g. Bootstrap themes from http://bootswatch.com/ or similar) which can be easily applied to the UI to change its entire look and feel.
  3. Responsive Web Design (required) : a UI should be responsive, adapting to the size of various devices.
    1. Bootstrap support (recommended): Ideally, the UI would support Bootstrap, since it is one of the most widely used and supported responsive frameworks
  4. HTML5 Support (required): a UI should be able to support HTML5.  Ideally, it is built primarily with HTML5 in mind, rather than only supporting some aspects of HTML5.
  5. REST API friendly (highly recommended): a UI should be built with the idea of "separation of concerns".  For example, the UI framework should include NO business logic or Database query logic, etc. It should also have no knowledge of the underlying storage framework (e.g. Database schemas, file storage locations, etc).  Instead, ideally it would  communicate with DSpace primarily through the REST API (and other similar layers, e.g. Solr or Elastic Search). It would NEVER communicate directly with the database or other underlying storage layers.
  6. Faceted/Filtered Search/Browse friendly (highly recommended):  a UI should easily integrate with a faceted/filtered search engine/server (such as Solr pr Elastic Search) or a generic API which can communicate with said faceted/filtered search engine (e.g. Discovery, Blacklight)
  7. Rapid Development support / Developer friendly (highly recommended): a UI should be easy to develop against and improve upon. Ideally in a popular technology or language.  Local developers should not need to go through extensive training to work with the UI. The framework and technology ideally should be widely used, so that newer developers can also quickly come up to speed.  (Some examples: Ruby on Rails is a popular widely used technology/language. As is, seemingly, the Java Play! framework. Both are obviously much more widely used and easier to develop with than say Apache Cocoon)
  8. Active, third party plugin ecosystem (highly recommended): a UI framework should ideally come with an active plugin/module/tool ecosystem. This is not only the sign of a strong community around the UI framework, but also eases the development burden on DSpace developers, as we no longer need to build all features specific to DSpace.  (For example, a UI framework that came with its own, third-party Authentication plugins would allow us to utilize that rather than building our own plugins for Shib/LDAP, etc)