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

DSpace-CRIS, anticipating innovation
DSpace-CRIS, anticipating innovationDSpace-CRIS, anticipating innovation
DSpace-CRIS, anticipating innovation
4Science
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
Timothy Spann
 
How to enhance your DSpace repository: use cases for DSpace-CRIS, DSpace-RDM,...
How to enhance your DSpace repository: use cases for DSpace-CRIS, DSpace-RDM,...How to enhance your DSpace repository: use cases for DSpace-CRIS, DSpace-RDM,...
How to enhance your DSpace repository: use cases for DSpace-CRIS, DSpace-RDM,...
4Science
 
Alfresco in few points - Search Tutorial
Alfresco in few points - Search TutorialAlfresco in few points - Search Tutorial
Alfresco in few points - Search Tutorial
PASCAL Jean Marie
 
DSpace 7 ORCID Integration
DSpace 7 ORCID IntegrationDSpace 7 ORCID Integration
DSpace 7 ORCID Integration
4Science
 

What's hot (20)

DSpace-CRIS, anticipating innovation
DSpace-CRIS, anticipating innovationDSpace-CRIS, anticipating innovation
DSpace-CRIS, anticipating innovation
 
Tech Mind Maps - Booklet Preview
Tech Mind Maps - Booklet PreviewTech Mind Maps - Booklet Preview
Tech Mind Maps - Booklet Preview
 
Elk - An introduction
Elk - An introductionElk - An introduction
Elk - An introduction
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
 
How to enhance your DSpace repository: use cases for DSpace-CRIS, DSpace-RDM,...
How to enhance your DSpace repository: use cases for DSpace-CRIS, DSpace-RDM,...How to enhance your DSpace repository: use cases for DSpace-CRIS, DSpace-RDM,...
How to enhance your DSpace repository: use cases for DSpace-CRIS, DSpace-RDM,...
 
Alfresco in few points - Search Tutorial
Alfresco in few points - Search TutorialAlfresco in few points - Search Tutorial
Alfresco in few points - Search Tutorial
 
Making DSpace XMLUI Your Own
Making DSpace XMLUI Your OwnMaking DSpace XMLUI Your Own
Making DSpace XMLUI Your Own
 
2020 - OCI Key Concepts for Oracle DBAs
2020 - OCI Key Concepts for Oracle DBAs2020 - OCI Key Concepts for Oracle DBAs
2020 - OCI Key Concepts for Oracle DBAs
 
Event-Driven Messaging and Actions using Apache Flink and Apache NiFi
Event-Driven Messaging and Actions using Apache Flink and Apache NiFiEvent-Driven Messaging and Actions using Apache Flink and Apache NiFi
Event-Driven Messaging and Actions using Apache Flink and Apache NiFi
 
慈濟大學/FHIR 快速掃描/DSTU3 版本
慈濟大學/FHIR 快速掃描/DSTU3 版本慈濟大學/FHIR 快速掃描/DSTU3 版本
慈濟大學/FHIR 快速掃描/DSTU3 版本
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
 
Moving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesMoving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to Microservices
 
Extending DSpace 7: DSpace-CRIS and DSpace-GLAM for empowered repositories an...
Extending DSpace 7: DSpace-CRIS and DSpace-GLAM for empowered repositories an...Extending DSpace 7: DSpace-CRIS and DSpace-GLAM for empowered repositories an...
Extending DSpace 7: DSpace-CRIS and DSpace-GLAM for empowered repositories an...
 
Tutorial on developing a Solr search component plugin
Tutorial on developing a Solr search component pluginTutorial on developing a Solr search component plugin
Tutorial on developing a Solr search component plugin
 
DSpace 7 ORCID Integration
DSpace 7 ORCID IntegrationDSpace 7 ORCID Integration
DSpace 7 ORCID Integration
 
Oracle 11G SCAN: Concepts and Implementation Experience Sharing
Oracle 11G SCAN: Concepts and Implementation Experience SharingOracle 11G SCAN: Concepts and Implementation Experience Sharing
Oracle 11G SCAN: Concepts and Implementation Experience Sharing
 
OLTP+OLAP=HTAP
 OLTP+OLAP=HTAP OLTP+OLAP=HTAP
OLTP+OLAP=HTAP
 
Understanding oracle rac internals part 2 - slides
Understanding oracle rac internals   part 2 - slidesUnderstanding oracle rac internals   part 2 - slides
Understanding oracle rac internals part 2 - slides
 
What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...
What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...
What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...
 
Planning Your Migration to SharePoint Online #SPBiz60
Planning Your Migration to SharePoint Online #SPBiz60Planning Your Migration to SharePoint Online #SPBiz60
Planning Your Migration to SharePoint Online #SPBiz60
 

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
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides
 
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
 

More from Tim Donohue

More from Tim Donohue (14)

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
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
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
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Recently uploaded (20)

%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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-...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
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
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 

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