Updates on the DSpace 7 efforts, including status of Angular UI development and new REST API. This presentation was given at the Open Repositories 2017 conference on Wednesday, June 28, 2017 in Brisbane, Australia.
1. On the Road to DSpace 7:
Angular UI + REST
Tim Donohue, DuraSpace
Art Lowel, Atmire
Andrea Bollini, 4Science This work is licensed under a Creative Commons Attribution 2.0 Generic License.
5. OR2014 OR2015 OR2016 OR2017
We’ve got a 2 UI
problem!
We need a single,
new UI
Angular 2!
On the Road to
DSpace 7
https://wiki.duraspace.org/display/DSPACE/Strategic+Planning
Strategic Plan &
Technical Roadmap
Product
Survey &
Vision Doc
UI Prototype Challenge &
Angular 2 proof of concept
DSpace 6 released &
DSpace 7 UI Working Group
How did we get here, again?
6. Coordination
Tim Donohue
DuraSpace
Angular UI
(SubTeam)
Art Lowel
Atmire
REST API
(SubTeam)
Andrea Bollini
4Science
GOAL +
DSpace 7 UI
Working
Group
NEW
https://wiki.duraspace.org/display/DSPACE/
DSpace+7+UI+Working+Group
Seeking additional
team members!
7. Why a new REST API?
Covers only a
subset of DSpace
functionality
Not based on current
REST best practices
or standards
Handcrafted in Jersey,
while most DSpace code uses
Spring technologies
4.x - 6.x
8. All features must
be in REST API
(for Angular UI)
Defined REST Contract.
HATEOAS, ALPS,
HAL format
Built using Spring technologies
(Spring Boot, MVC, HATEOAS)
7.x
Why a new REST API?
https://github.com/DSpace/DSpace/tree/master/dspace-spring-rest
Bonus: better third-party
app integration!
9. HATEOAS, HAL, & ALPS, oh my!
ALPS = Application Level Profile Semantics
Describes the operations (actions) available for all REST endpoints.
Almost like metadata about how to interact with the API.
HAL Format = Hypertext Application Language (JSON or XML)
A standard format for making REST APIs browseable
(think HTML for machines). Open source HAL Browser available.
RESULT: A standards-based, browseable, self-describing REST API
HATEOAS = Hypertext As The Engine Of Application State
In each response, include “links” to available next requests.
Results in better decoupling, as API is self-describing.
10. Try it out!
DSpace 7 REST API Demo:
http://dspace7.4science.it/dspace-spring-rest/
(Browse interface provided by the HAL Browser)
11. REST API
Demo
● HAL Browser
● Completely
browseable API
● Mostly read-only
Browse Endpoints
(so far)
12. Why Angular?
Dynamic UI/UX experience
SEO compliant
(verified w/ Google Scholar)
Accessibility support
(verified w/ U of Kansas)
Support for users without JS
(via Angular Universal)
Most widely used JS platform
Fun to develop!
Separation of concerns
(use and improve our REST API)
(and TypeScript makes JS more
Java / .NET like)
Customization friendly
(templates are HTML-like, modular)
http://angular.io
(extensive 3rd party modules)
13. Architecture
Web Browser
Assetstore
Web server
Other webapps
1 Initial Request
2 Return first page, JS
3 Request data via REST
4 Return JSON
HTML logo: https://freeiconshop.com/icon/html-icon-outline/
JSON logo: http://www.flaticon.com/free-icon/json-file_136443
Database
15. Current Status
Early stages for both Angular UI and new REST API
❏ Enhanced backend (object store, caching, speed improvements)
❏ Browse (Homepage, Community, Collection, Item pages)
❏ Search
❏ Authentication and Authorization
❏ Submission
❏ Approval Workflows
❏ Administration
❏ Statistics
GOAL: Angular UI that retains main
features of XMLUI and JSPUI
} Public collaboration between Hasselt U and 4Science
16. DSpace 7 Angular UI demo
https://dspace7-demo.atmire.com/
(uses the REST API demo as backend)
Download & install:
https://github.com/DSpace/dspace-angular/
Try it out!
21. Code Contributors (so far)
● Art Lowel (Atmire)
● Giuseppe Digilio (4Science)
● Lotte Hofstede (Atmire)
● William Welling (Texas A&M)
● Christian Scheible (Universität Konstanz, Germany)
● Matteo Perelli (4Science)
● Àlex Magaz Graça (Universitat de Lleida, Spain)
● Andrea Bollini (4Science)
● Terry Brady (Georgetown)
● Mark Wood (IUPUI)
Contributors are ordered by number of GitHub code additions
22. How can I help?
❏ Angular UI developers needed (training avail.)
❏ REST API (Java/Spring) developers needed
❏ UI/UX design help needed
Timeline: DSpace 7 likely in 2018. But, we need your help!
23. Claim a ticket and work on it
https://wiki.duraspace.org/display/DSPACE/DSpace
+7+UI+Working+Group
Join us on Slack / Ask Questions
https://wiki.duraspace.org/display/DSPACE/Slack
Join a weekly DSpace 7 WG meeting
Every Thursday, 16:00 UTC (reminders via Slack)
How can I help, technically?
24. ★ Dev workshop at OR2017 (yesterday)
★ Dev training at Georgetown’s DSpace User Meeting
(Aug 22-23)
★ More to come...
DSpace + Angular Dev Training!
+ =
25. ➢ DSpace 7 functional test plans
➢ Identify use cases to be implemented
➢ Communication / outreach around DSpace 7
➢ Gather UI/UX design inspiration
How can I help, non-technically?
Meet bi-weekly. Led by Carol Minton Morris (DuraSpace)
Join the DSpace 7 Outreach Group!
https://wiki.duraspace.org/display/DSPACE/DSpace+7+UI+Outreach+Group
26. ★ Become a member and influence product roadmap,
governance and member benefits.
★ Membership also funds coordination
Help by becoming a member!
DSpace is funded / developed / supported
by its community.