You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 68 Next »

Summary

Project

DSpace ClientUI built on RESTful API

Student

Vibhaj Rajan

Mentors

Technologies

DSpace REST
JavaScript jQuery FireSpark

Proposal

Melange

Repository

https://github.com/tr4n2uil/restclient

Demo

http://ec2-107-20-35-121.compute-1.amazonaws.com:8080/restclient/

Notes

jQuery
DSpace deployment on Amazon EC2

Project Requirements

  1. Client run interface
  2. Attractive look and feel
  3. Easy to customize

Features

DSpace REST

Built on the DSpace REST API developed as GSoC project in 2009-10
https://wiki.duraspace.org/display/DSPACE/REST+API

FireSpark

Interface powered by FireSpark - JavaScript Service Computing Platform - which
is an experimental platform currently under my research.
https://github.com/tr4n2uil/firespark

RESTClient Extensions

Services and Workflows built for RESTClient using FireSpark for providing core
UI functionality while interfacing the RESTful API
https://github.com/tr4n2uil/restclient

jQuery Templates

Client side processing supported by flexible templates written in JavaScript
thereby enabling easier evolution of the UI
http://api.jquery.com/category/plugins/templates/

CKEditor

HTML Rich Text Editor supported for easier text input during repository
manipulation
http://ckeditor.com/

User Documentation

  1. Directory Structure

    1. index.html
      • initialization page for loading all necessary client scripts + basic document layout
    2. README
    3. ui/
      • top level folder containing interface resources
      1. ui/css/
        • styles and themes directory (default theme is redmond; other themes provided are smoothness and ui-lightness; more themes may be downloaded from http://jqueryui.com/themeroller/)
        1. ui/css/default.css (global styles)
        2. ui/css/jquery.css (jquery styles)
        3. ui/css/restclient-styles.css (RESTClient styles unified from dev/; see dev/ directory description for information on unification)
      2. ui/img/
        • images directory
      3. ui/js/
        • scripts directory
        1. ui/js/jquery-1.6.1.min.js (jQuery)
        2. ui/js/jquery-ui-1.8.13.min.js (jQuery UI)
        3. ui/js/jquery.tmpl.min.js (jQuery Templates)
        4. ui/js/jquery-firespark.js (jQuery FireSpark)
        5. ui/js/ckeditor/ (CKEditor directory)
        6. ui/js/restclient-jquery.js (RESTClient Extensions unified from dev/)
        7. ui/js/restclient-templates.js (RESTClient Templates unified from dev/)
    4. dev/
      • top level folder containing developer resources
      1. dev/styles/
        • individual styles directory (will be unified to ui/css/restclient-styles.css during build)
        1. dev/styles/home.css
        2. dev/styles/layout.css
        3. dev/styles/all-communities.css
        4. dev/styles/all-collections.css
        5. dev/styles/all-items.css
        6. dev/styles/all-users.css
        7. dev/styles/all-groups.css
        8. dev/styles/all-stats.css
        9. dev/styles/community.css
        10. dev/styles/collection.css
        11. dev/styles/item.css
        12. dev/styles/user.css
      2. dev/templates/
        • individual templates directory (will be unified to ui/js/restclient-templates.js during build)
        1. dev/templates/Account.js
        2. dev/templates/Browse.js
        3. dev/templates/Login.js
        4. dev/templates/AllCommunities.js
        5. dev/templates/AllCollections.js
        6. dev/templates/AllItems.js
        7. dev/templates/AllUsers.js
        8. dev/templates/AllGroups.js
        9. dev/templates/AllStats.js
        10. dev/templates/Community.js
        11. dev/templates/Collection.js
        12. dev/templates/Item.js
        13. dev/templates/User.js
        14. dev/templates/Group.js
        15. dev/templates/CommunityEdit.js
        16. dev/templates/CollectionEdit.js
        17. dev/templates/CommunityDelete.js

Customizations

Developer Documentation

Screenshots

Functional Specifications

  1. Features to be supported
    1. Respository Browsing
    2. Repository Manipulation
    3. Content Searching
    4. Statistics
    5. Administration
  2. Customizations to be supported
    1. Stylesheets (CSS)
    2. Layout
    3. Themes
    4. Internationalization

Project Timeline

(tick)

Ready

(plus)

Base done, Improvement phase

(thumbs up)

In Progress

Before May 24

  1. Obtain access to :
    • (tick) Wiki
    • (tick) Project repository
  2. (tick) Download, build and install local DSpace instance
  3. (tick) Download, build and install DSpace REST module
  4. (tick) Test and verify the installation
  5. (tick) Go through the functionality of DSpace and DSpace REST API
  6. (tick) Compare possible JavaScript UI frameworks -- Ext JS preferred

Mark: I would like to see a bit more dialog with Bojan concerning the REST API contracts and migration to Spring, mainly, are we happy with these API contracts and using them for the students project, or do we need to consider some possible changes int he API to adopt to using Spring REST instead of Entity Broker. And if so, is there a timeline for providing those changes in scope of the 1.8 release?

Vibhaj: Confirmed that the possible migration shall not affect the REST interface and hence RestClient project.

May 25 - June 15

  1. (plus) Get familiar with DSpace REST API
    1. collections, communities, items and bitstreams
      • create
      • (tick) view
      • (tick) edit
      • (tick) delete
    2. users and groups
      • (tick) view
    3. search
    4. (tick) generating statistics
  2. Decide the JavaScript Library to be used by discussing with the DSpace community: jQuery [decided by community]

  3. (plus) Learn the jQuery JavaScript Library
    • (tick) Selectors
    • (tick) Actions and Methods
    • (tick) Events
    • (plus) UI Widgets
  4. (plus) Design client run FireSpark framework supporting JavaScript UI for RESTful (JSON) services
  5. (plus) Design generic Services and Workflows in FireSpark
  6. (plus) Plan these extensions for RestClient
    • (plus) RESTUI.Resource.Load Workflow
    • (plus) RESTUI.Resource.Edit Workflow
    • (plus) RESTUI.Resource.Delete Workflow
    • (thumbs up) ParseItemMetadata helper

June 15 - July 10

  1. (plus) Implement extensions (Services and Workflows) to FireSpark in RESTClient to provide support for :
    1. Repository Browsing
      • Communities
        • (plus) All
        • (plus) Single
        • (plus) Subcommunities
        • (plus) Recent Submissions
        • Sort
      • Collections
        • (plus) All
        • (plus) Single
        • Sort
      • Items
        • (plus) All
        • (plus) Single
        • (thumbs up) Read Metadata
      • Bitstreams
        • (plus) Download

July 11 - July 15

  1. (tick) GSoC Mid Term Evaluations

July 15 - July 31

  1. (plus) Implement extensions (Services and Workflows) to FireSpark in RESTClient to provide support for :
    1. Repository Manupulation
      • Communities
        • (plus) Edit
        • (plus) Delete
      • Collections
        • (plus) Edit
    2. Administration
      • Users
        • (plus) Login
        • (plus) Logout
        • (plus) All
        • (plus) Single
      • Groups
        • (plus) All
        • (plus) Single
    3. Content Searching
    4. Statistics
      • (plus) Reports (simple)
      • (plus) Charts and Visualization (simple)

August 1 - August 15

  1. Enhancing the look and feel
  2. Look into and improve scope for customizations
  3. Improve the architecture of RESTClient and FireSpark
  4. Testing
  5. Complete Documentation
  6. Final Improvements
  • No labels