SlideShare a Scribd company logo
1 of 28
Download to read offline
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.
to
From
=
XMLUI
or
or
JavaAPI
JSPUI
(1.x to 6.x)
REST API gear:
https://icons8.com/icon/21895/rest-api
Storage/Backend
From:
= +
JavaAPI
(7.x)
NEW
Storage/Backend
To:
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?
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!
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
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!
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.
Try it out!
DSpace 7 REST API Demo:
http://dspace7.4science.it/dspace-spring-rest/
(Browse interface provided by the HAL Browser)
REST API
Demo
● HAL Browser
● Completely
browseable API
● Mostly read-only
Browse Endpoints
(so far)
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)
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
Architecture
Web Browser
Database
Assetstore
Web server
Other webapps
1 Initial Request
2 Return first page, JS
3 Request next page
4 Return next page
Javascript
Via Angular Universal: https://universal.angular.io/
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
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!
Early
Prototype
● Basic Homepage
● News & Community
listing (so far)
● No UX/UI design
yet. Base Bootstrap
(design subject to
change)
Early
Prototype
● Basic Community
page
● News & Collection
listing (so far)
● Design subject to
change
Early
Prototype
● Basic Collection
page
● News & Recent
Submissions (so far)
● Design subject to
change
Early
Prototype
● Basic Item page
● Simple view & full
metadata view
● Design subject to
change
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
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!
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?
★ Dev workshop at OR2017 (yesterday)
★ Dev training at Georgetown’s DSpace User Meeting
(Aug 22-23)
★ More to come...
DSpace + Angular Dev Training!
+ =
➢ 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
★ 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.
Questions?
+ =
Slidedeck at https://goo.gl/Hrt4Ct
tdonohue@duraspace.org

More Related Content

What's hot

Introduction à ElasticSearch
Introduction à ElasticSearchIntroduction à ElasticSearch
Introduction à ElasticSearch
Fadel Chafai
 

What's hot (20)

DSpace-CRIS technical level introduction
DSpace-CRIS technical level introductionDSpace-CRIS technical level introduction
DSpace-CRIS technical level introduction
 
Customizing the look and-feel of DSpace
Customizing the look and-feel of DSpaceCustomizing the look and-feel of DSpace
Customizing the look and-feel of DSpace
 
DSpace-CRIS & OpenAIRE
DSpace-CRIS & OpenAIREDSpace-CRIS & OpenAIRE
DSpace-CRIS & OpenAIRE
 
API Basics
API BasicsAPI Basics
API Basics
 
What's new in Scala 2.13?
What's new in Scala 2.13?What's new in Scala 2.13?
What's new in Scala 2.13?
 
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
 
Introduction à ElasticSearch
Introduction à ElasticSearchIntroduction à ElasticSearch
Introduction à ElasticSearch
 
DSpace-CRIS: a CRIS enhanced repository platform
DSpace-CRIS: a CRIS enhanced repository platformDSpace-CRIS: a CRIS enhanced repository platform
DSpace-CRIS: a CRIS enhanced repository platform
 
Linux reversing study_basic_1
Linux reversing study_basic_1Linux reversing study_basic_1
Linux reversing study_basic_1
 
Web Services
Web ServicesWeb Services
Web Services
 
Overview of new features in Apache Ranger
Overview of new features in Apache RangerOverview of new features in Apache Ranger
Overview of new features in Apache Ranger
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)
 
Secrets of the DSpace Submission Form
Secrets of the DSpace Submission FormSecrets of the DSpace Submission Form
Secrets of the DSpace Submission Form
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
 
Introducing Swagger
Introducing SwaggerIntroducing Swagger
Introducing Swagger
 
Restful web services ppt
Restful web services pptRestful web services ppt
Restful web services ppt
 
Express JS
Express JSExpress JS
Express JS
 

Similar to On the Road to DSpace 7: Angular UI + REST

Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
Codecamp Romania
 
bakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_Expbakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
Bakkesh K S
 

Similar to On the Road to DSpace 7: Angular UI + REST (20)

Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDEPoitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
 
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
[DevRelCon July 2018] Because we all learn things differently
[DevRelCon July 2018] Because we all learn things differently[DevRelCon July 2018] Because we all learn things differently
[DevRelCon July 2018] Because we all learn things differently
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
Info Session GDSC USICT
Info Session GDSC USICTInfo Session GDSC USICT
Info Session GDSC USICT
 
GraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-DevelopmentGraphQL - The new "Lingua Franca" for API-Development
GraphQL - The new "Lingua Franca" for API-Development
 
Flavius olaru logicless ui prototyping with node js
Flavius olaru   logicless ui prototyping with node jsFlavius olaru   logicless ui prototyping with node js
Flavius olaru logicless ui prototyping with node js
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
 
MohitKumarGupta_Resume
MohitKumarGupta_ResumeMohitKumarGupta_Resume
MohitKumarGupta_Resume
 
bakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_Expbakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
 
Eclipse Che: The Next-Gen Eclipse IDE - Bordeaux jug 2016
Eclipse Che: The Next-Gen Eclipse IDE - Bordeaux jug 2016Eclipse Che: The Next-Gen Eclipse IDE - Bordeaux jug 2016
Eclipse Che: The Next-Gen Eclipse IDE - Bordeaux jug 2016
 
Spsmi13 charts
Spsmi13 chartsSpsmi13 charts
Spsmi13 charts
 
Drupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source AppDrupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source App
 
Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile Technologies
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
 
Serverless Computing with Google Cloud
Serverless Computing with Google CloudServerless Computing with Google Cloud
Serverless Computing with Google Cloud
 
European SharePoint Conference 2017 Summary
European SharePoint Conference 2017 SummaryEuropean SharePoint Conference 2017 Summary
European SharePoint Conference 2017 Summary
 
We are the music makers and we are the dreamers of dreams
We are the music makers and we are the dreamers of dreamsWe are the music makers and we are the dreamers of dreams
We are the music makers and we are the dreamers of dreams
 

More from Tim Donohue

More from Tim Donohue (15)

DSpace UI Prototype Challenge: Spring Boot + Thymeleaf
DSpace UI Prototype Challenge: Spring Boot + ThymeleafDSpace UI Prototype Challenge: Spring Boot + Thymeleaf
DSpace UI Prototype Challenge: Spring Boot + Thymeleaf
 
Discussion on DSpace's Two UIs : DuraSpace 2015 Summit
Discussion on DSpace's Two UIs : DuraSpace 2015 SummitDiscussion on DSpace's Two UIs : DuraSpace 2015 Summit
Discussion on DSpace's Two UIs : DuraSpace 2015 Summit
 
How to "Hack" the DSpace Community
How to "Hack" the DSpace CommunityHow to "Hack" the DSpace Community
How to "Hack" the DSpace Community
 
DSpace Overview / Roadmap 2014
DSpace Overview / Roadmap 2014DSpace Overview / Roadmap 2014
DSpace Overview / Roadmap 2014
 
DSpace RoadMap & Vision 2013 (OR13)
DSpace RoadMap & Vision 2013 (OR13)DSpace RoadMap & Vision 2013 (OR13)
DSpace RoadMap & Vision 2013 (OR13)
 
DSpace RoadMap 2012
DSpace RoadMap 2012DSpace RoadMap 2012
DSpace RoadMap 2012
 
DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)
DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)
DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)
 
Future Trends for Repositories
Future Trends for RepositoriesFuture Trends for Repositories
Future Trends for Repositories
 
DSpace & DuraCloud Integrations
DSpace & DuraCloud IntegrationsDSpace & DuraCloud Integrations
DSpace & DuraCloud Integrations
 
DSpace RoadMap 2011
DSpace RoadMap 2011DSpace RoadMap 2011
DSpace RoadMap 2011
 
DSpace RoadMap 2010
DSpace RoadMap 2010DSpace RoadMap 2010
DSpace RoadMap 2010
 
Improving DSpace Backups, Restores & Migrations
Improving DSpace Backups, Restores & MigrationsImproving DSpace Backups, Restores & Migrations
Improving DSpace Backups, Restores & Migrations
 
BibApp 1.0 : Information In, Impact Out
BibApp 1.0 : Information In, Impact OutBibApp 1.0 : Information In, Impact Out
BibApp 1.0 : Information In, Impact Out
 
Making DSpace XMLUI Your Own
Making DSpace XMLUI Your OwnMaking DSpace XMLUI Your Own
Making DSpace XMLUI Your Own
 
Digital Preservation in the Wild
Digital Preservation in the WildDigital Preservation in the Wild
Digital Preservation in the Wild
 

Recently uploaded

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 

On the Road to DSpace 7: Angular UI + REST

  • 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.
  • 3. = XMLUI or or JavaAPI JSPUI (1.x to 6.x) REST API gear: https://icons8.com/icon/21895/rest-api Storage/Backend From:
  • 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
  • 14. Architecture Web Browser Database Assetstore Web server Other webapps 1 Initial Request 2 Return first page, JS 3 Request next page 4 Return next page Javascript Via Angular Universal: https://universal.angular.io/
  • 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!
  • 17. Early Prototype ● Basic Homepage ● News & Community listing (so far) ● No UX/UI design yet. Base Bootstrap (design subject to change)
  • 18. Early Prototype ● Basic Community page ● News & Collection listing (so far) ● Design subject to change
  • 19. Early Prototype ● Basic Collection page ● News & Recent Submissions (so far) ● Design subject to change
  • 20. Early Prototype ● Basic Item page ● Simple view & full metadata view ● Design subject to change
  • 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.
  • 27.
  • 28. Questions? + = Slidedeck at https://goo.gl/Hrt4Ct tdonohue@duraspace.org