DSpace-Labs / angular2-ui-prototype

(OBSOLETE: Use https://github.com/DSpace/dspace-angular) Ongoing work on Angular UI has moved to DSpace/dspace-angular
https://github.com/DSpace/dspace-angular
Other
7 stars 10 forks source link

Angular 2 UI Prototype

This project represents the "extended prototype" featuring Angular 2 from the DSpace UI Prototype Challenge. This prototype is a collaboration by @mire, Cineca, DuraSpace and Texas A&M.

The goal of this extended prototype is to evaluate the Angular 2 framework as a plausible DSpace UI platform. This includes evaluating whether it meets the SEO needs of Google Scholar.

Project Board (waffle.io)

Implementation Phases

Phase 1 : Initial Google Scholar Proof-of-Concept (COMPLETE)

In Phase 1 of this UI Prototype, we will be rapidly developing a basic Angular 2 UI using Angular Universal (isomorphic Javascript for Angular 2). The purpose of the initial prototype is to simply prove (or disprove) that Angular Universal's server-side rendering capabilities will meet the SEO needs of Google Scholar.

In Phase 1, all development will occur using Node / NPM (these are akin to Maven or Gradle for Java). This will allow us to rapidly build a simple Angular 2 UI against an existing REST API (e.g. http://demo.dspace.org). That simple Angular 2 UI can then be tested by Google Scholar to see if it will meet their SEO needs.

After this phase is complete, we'd simply have a prototype Angular 2 UI that can be installed via Node and pointed at an existing DSpace installation's REST API.

Phase 2 : Demonstration for OR16 Conference

In Phase 2 we will be building an enhanced prototype for demonstration at the OR16 Conference in Dublin. This enhanced prototype will include (but is not limited to):

Phase 3 : Migrate UI into Spring Boot / DSpace

After OR16, we will work to bring the Angular 2 UI into/alongside Spring Boot (alongside the DSpace Java API, REST API, etc). This will involve migrating the existing Angular2 Node / NPM build process into either Maven (or Gradle), using an available Node plugin for those build tools.

After this phase is complete, we'd have an Angular 2 UI that is provided as part of the normal DSpace installation process.

Requirements

Getting Started

Here's how you can install/run the current prototype:

  1. npm install Installs local and global dependencies.
    • Global dependencies are installed first (allowing them to be used from command line)
    • Then local dependencies are installed into ./node_modules subdirectory
  2. (Optional) If desired, change the location of the REST API you wish to use in config.ts. By default, this prototype currently uses the REST API for https://training-ir.tdl.org
    • NOTE: Currently, this prototype has ONLY been tested with DSpace 5.x REST APIs. It may not yet work with other versions of DSpace.
  3. npm run watch Builds the project, then starts up the node server and watches for any changes to files (if detected, automatically rebuilds the project to see changes immediately). Visit http://localhost:3000/
    • Alternatively, you can separate this out into two steps:
      • npm run build Builds the project. Required to be re-run whenever typescript files are changed.
      • npm run test Runs node server and a (temporary) proxy to work around CORS and security issues of DSpace REST API. Visit http://localhost:3000/

Other available commands:

Implementation Details

Overview of all the parts of the UI prototype:

Here's where various parts of the codebase are located:

Learning Resources

We've begun to gather a list of useful resources for learning more about these technologies on our Wiki. In particular, take a look at Developer Resources

Collaboration

Project Board (waffle.io)

Other "best practices" to note:

Known Issues