Summary
Project | DSpace ClientUI built on RESTful API |
Student | |
Mentors |
|
Technologies | DSpace REST |
Proposal | |
Repository | |
Demo |
...
...
Project Requirements
- Client run interface
- Attractive look and feel
- Easy to customize
Features
DSpace REST | Built on the DSpace REST API developed as GSoC project in 2009-10 |
...
...
FireSpark | Interface powered by FireSpark - JavaScript Service Computing Platform - which is an experimental platform currently |
...
RESTClient Extensions | Services and Workflows built for RESTClient using FireSpark for providing core UI functionality while interfacing the |
jQuery Templates | Client side processing supported by flexible templates written in JavaScript thereby enabling easier evolution of the UI |
...
CKEditor | HTML Rich Text Editor supported for easier text input during repository manipulation |
...
User Documentation
Source Structure
File / Directory / Subdirectory | Description | Files |
---|---|---|
index.html | initialization page for loading all necessary client scripts + basic document layout |
|
README |
|
|
ui/ | top level folder containing interface resources |
|
ui/css/ | styles and themes directory |
...
| |
ui/css/default.css |
...
global |
...
styles |
|
ui/css/jquery.css |
...
jquery |
...
styles |
|
ui/css/restclient-styles.css |
...
RESTClient |
...
styles |
...
unified |
...
from |
...
dev/ |
...
|
...
dev/ |
...
structure |
...
description |
...
for |
...
information |
...
on |
...
unification |
...
during |
...
build |
|
ui/img/ |
...
images directory |
| |
ui/js/ |
...
scripts directory |
| |
ui/js/jquery-1.6.1.min.js |
...
jQuery |
| |
ui/js/jquery-ui-1.8.13.min.js |
...
jQuery |
...
UI |
|
ui/js/jquery.tmpl.min.js |
...
jQuery |
...
Templates |
|
ui/js/jquery-firespark.js |
...
jQuery |
...
FireSpark |
|
ui/js/ckeditor |
...
CKEditor |
...
directory |
|
ui/js/restclient-jquery.js |
...
RESTClient |
...
Extensions |
...
unified |
...
from |
...
dev/ |
...
| |
ui/js/restclient-templates.js |
...
RESTClient |
...
Templates |
...
unified |
...
from |
...
dev/ |
...
| ||
dev/ | top level folder containing developer resources |
|
dev/styles/ |
...
individual styles directory |
...
during |
...
build |
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
dev/templates/ |
...
individual templatesdirectory |
...
during |
...
build |
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
dev/build.bat |
...
(build.sh |
...
for |
...
linux) | Build script for unification |
|
dev/init.js |
...
RESTClient initialization |
...
during |
...
build |
|
dev/helpers/ |
...
individual helpers directory |
...
during |
...
build |
...
|
...
|
...
dev/services/ |
...
individual services directory |
...
during |
...
build |
...
|
...
|
...
|
...
dev/workflows/ |
...
individual workflows directory |
...
during |
...
build |
...
|
...
|
...
|
...
|
...
|
...
|
Customizations
Customization | Support | Description |
---|---|---|
Stylesheets (CSS) | Yes | Individual stylesheets in dev/styles/ |
...
control |
...
the |
...
styles |
...
for |
...
different |
...
pages |
...
|
...
ui/css/default.css |
...
is |
...
the |
...
global |
...
style |
...
sheet |
...
|
...
: |
...
Individual |
...
stylesheets |
...
override |
...
global |
...
styles) |
...
Layout | Yes | Layout is configured in dev/styles/layout.css |
...
|
...
jQuery |
...
UI |
...
Tabpanel |
...
(which |
...
is |
...
the |
...
container |
...
supported |
...
in |
...
FireSpark) |
...
is |
...
used |
...
for |
...
viewing |
...
different |
...
|
...
as |
...
it |
...
provides |
...
faster |
...
navigation |
...
(without |
...
breadcrumbs) |
...
although |
...
simple |
...
layout |
...
is |
...
also |
...
possible. |
...
|
...
may |
...
be |
...
developed/changed |
...
easily |
...
though |
...
it |
...
shall |
...
require |
...
understanding |
...
of |
...
FireSpark |
...
whose |
...
documentation |
...
will |
...
be |
...
|
...
by |
...
the |
...
end |
...
of |
...
the |
...
2011) |
...
|
...
UI |
...
containers |
...
are |
...
under |
...
development |
...
in |
...
FireSpark. |
...
Themes | Yes | Themes are supported natively by jQuery UI |
...
Internationalization | No | Support for i18n is planned to be integrated into FireSpark soon using the i18n plugin |
Developer Documentation
RESTClient Extensions
Services
Name | Description | Options (Parameters passed to service in FireSpark) | Return Values |
---|---|---|---|
SessionWrite | Saves session information (email/password) for use in further requests |
| None |
ResourceRESTURL | Generates REST URL from resource information |
|
|
SessionRESTURL | Appends Session information (email/password) to URL |
|
|
Workflows
Name | Description | Options (Parameters passed to service in FireSpark) | Return Values |
---|---|---|---|
SessionBegin | Stores login information into session, authenticates and loads account template |
| None |
SessionEnd | Deletes session and loads account template |
| None |
ResourceLoad | Loads resource using GET and applies template into selected element |
| None |
Helpers
Name | Description | Arguments | Return Value |
---|---|---|---|
getDate | Returns timestamp as properly formatted date string | time : number : Timestamp | date : string : Formatted Date |
readFileSize | Returns size in bytes as properly formatted string | size : number : Size in bytes | size : string : Formatted Size |
init.js
Option | Description | Default Value |
---|---|---|
RESTClient.urls | URLs to be used | { |
RESTClient.jquery.constant.loadmsg | HTML content to show while loading content | '<p class="loading">Loading ...</p>' |
RESTClient.jquery.constant.successimg | HTML content to indicate successful execution | '<img src="ui/img/icons/ok.gif">' |
...
RESTClient.jquery.constant.errorimg |
...
HTML |
...
content |
...
to |
...
indicate |
...
erroneous |
...
execution |
...
'<img |
...
src="ui/img/icons/error.gif">' |
...
Documentation Resources
Name | Available | Description |
---|---|---|
FireSpark | No | Partially available in the heavily commented source code |
...
jQuery Templates | Yes | Available as jQuery plugin API documentation |
...
Screenshots
Functional Specifications
- Features to be supported
- Respository Browsing
- Repository Manipulation
- Content Searching
- Statistics
- Administration
- Customizations to be supported
- Stylesheets (CSS)
- Layout
- Themes
- Internationalization
Project Timeline
| Ready |
| Base done, Improvement phase |
| In Progress |
Before May 24
- Obtain access to :
- Wiki
- Project repository
- Download, build and install local DSpace instance
- Download, build and install DSpace REST module
- Test and verify the installation
- Go through the functionality of DSpace and DSpace REST API
- Compare possible JavaScript UI frameworks -- Ext JS preferred
Note |
---|
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
- Get familiar with DSpace REST API
- collections, communities, items and bitstreams
- create
- view
- edit
- delete
- users and groups
- view
- search
- generating statistics
- collections, communities, items and bitstreams
Wiki Markup (/) Decide the JavaScript Library to be used by discussing with the DSpace community: *jQuery* \[decided by community\]
...
- Learn the jQuery JavaScript Library
- Selectors
- Actions and Methods
- Events
- UI Widgets
- Design client run FireSpark framework supporting JavaScript UI for RESTful (JSON) services
- Design generic Services and Workflows in FireSpark
- Plan these extensions for RestClient
- RESTUI.Resource.Load Workflow
- RESTUI.Resource.Edit Workflow
- RESTUI.Resource.Delete Workflow
- ParseItemMetadata helper
June 15 - July 10
- Implement extensions (Services and Workflows) to FireSpark in RESTClient to provide support for :
- Repository Browsing
- Communities
- All
- Single
- Subcommunities
- Recent Submissions
- Sort
- Collections
- All
- Single
- Sort
- Items
- All
- Single
- Read Metadata
- Bitstreams
- Download
- Communities
- Repository Browsing
July 11 - July 15
- GSoC Mid Term Evaluations
July 15 - July 31
- Implement extensions (Services and Workflows) to FireSpark in RESTClient to provide support for :
- Repository Manupulation
- Communities
- Edit
- Delete
- Collections
- Edit
- Communities
- Administration
- Users
- Login
- Logout
- All
- Single
- Groups
- All
- Single
- Users
- Content Searching
- Statistics
- Reports (simple)
- Charts and Visualization (simple)
- Repository Manupulation
August 1 - August 15
- Enhancing the look and feel
- Look into and improve scope for customizations
- Improve the architecture of RESTClient and FireSpark
- Testing
- Complete Documentation
- Final Improvements
individual templates directory (will be unified to ui/js/restclient-templates.js
...
during
...
build)
...
= '<p
...
class="loading">Loading
...
...</p>';