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

Compare with Current View Page History

« Previous Version 49 Next »

Contents

DSpace and Google Summer of Code

Student applications are accepted Mon, March 28, 12pm PDT – Fri, April 8, 12pm PDT.

Please spread awareness of this program and DSpace among your best students! Point them to:

Ideas for Potential DSpace Summer of Code 2011 projects

Add your ideas here!

Please add your suggestions for GSoC 2011 projects related to DSpace! If you are interested in mentoring, please let us know! Also, be sure to visit the listing of Past GSoC Project Ideas below, to see if anything there is still relevant.

Please add your own ideas to the table below, and feel free to volunteer as a mentor for any existing idea 

Summary

Relevant DSpace component(s)

Detailed Description

Mentor volunteer(s)

Enhanced RESTful API

dspace-api
dspace-services
rest

Building on previous years' REST projects, this project is to result in:

  • (non-basic!) authN and authZ functionality
  • write / admin methods
  • minimum of JSON and XML output formats
  • communication and collaboration with community, on:
    • testing, benchmarking, hacking demo apps
    • promotion and awareness
    • documentation
      Note: The student previously the working on read-only RESTful API project has indicated they'd like to continue work on it outside GSoC, so this entry should perhaps be removed for now

Kim Shepherd

JSPUI rewrite

dspace-jspui

Rewrite JSPUI with a focus on removing as much 'business' from the JSPs to servlets/utility classes as possible, and utilising
JSTL (etc.) in JSPs.
Rewrite default theme/CSS to give the new JSPUI a "new look and feel" as well as cleaner JSPs, servlets and filters.
Must try to maintain UI parity with XMLUI where possible.

This project will result in

  • JSPs that do nothing but display content
  • Smarter, cleaner servlets and filters
  • Cleaner URL mapping
  • New, clean, intuitive default theme for default JSPUI installs

Kim Shepherd

WebMVC (Freemarker) UI development

modules/webmvc

WebMVC is currently under development, and is creating a new user interface based on Spring's WebMVC framework. This has the same goals as the JSPUI rewrite project in providing a clean technical implementation with business logic removed from the presentation layer.

Although a number of technologies can be used for the presentation layer, the current implementation focuses on Freemarker - a template based language that restricts the amount of logic that you can place in the presentation layer. In addition, it gives more flexibility as to where those templates can be stored, which gives greater possibilities for future customisation.

It has extensive theme support, and allows different themes to be applied to different areas of a repository.

Possible GSoC work includes ensuring parity with XMLUI where possible, or further extending the functionality.

Graham Triggs

Modular configuration

dspace assembly & configuration
dspace-services
dspace-api

DSpace's configuration is mostly (~95%) kept in a single, clumsy, generic java properties file -- dspace.cfg
This makes merging/updating to new versions a tedious and error-prone process, and makes it hard to release async modules for DSpace without 
messy changes to configuration.
Recent new features and modules have independently split off from dspace.cfg by creating their own configurations, but this process is ad-hoc, and 
no standard or modular framework for developers yet exists.

This project will result in

  • Separate configuration files for each maven project, at a minimum

  • Deprecate calls to ConfigurationManager, switch to ConfgurationService

  • Comprehensive documentation for developers, administrators and users
    Notes:
    Mark Diggory : This should be focused in the dspace-services project,  highly recommend that defaults be maintained in individual properties files maven project resources   "project/src/main/resources/config/dspace-project-config.cfg". The only reason to need to create a physical file in dspace/config is if your deviating from the defaults. 
    This is already a feature of DSpace ConfigurationService and work is already ongoing to start replacing ConfigurationManager internals with calls to ConfigurationService.

Kim Shepherd

MySQL support

dspace assembly & configuration
dspace-api

DSpace currently supports Oracle and PostgreSQL. MySQL support is an often-requested feature that should not involve too much extra work, building on existing 
postgres compatibility. A recent stable version (eg. 5.5+) will be used as the testing platform.

This project will result in

  • MySQL-compliant DatabaseManager code, prepared statements, etc.
  • MySQL-specific update / install scripts, or existing postgres scripts guaranteed to be MySQL-compliant.
  • Unit tests specific to MySQL to help ensure compliance, and highlight future problems as they arise
    Notes:
    Mark Diggory : Is an excellent opportunity to participate in DAO project and actually provide support for more than Mysql, but actually provide assistance in abstracting the SQL completely out of the Domain model (the original goal of the DAO prototype).

Kim Shepherd

Pluggable bitstream storage

dspace-api
dspace-services

DSpace's storage services are not fully modular, though work has been done towards this in the past, and there are a number of alternative storage schemes that 
are easily integrated once storage is made fully pluggable. (eg. Amazon S3).
If possible, dspace-services is to be utilized over the legacy PluginManager

This project will result in

  • Pluggable storage implemented using dspace-services
  • At least one working demonstration of alternative bitstream storage

    Notes:
    Mark Diggory:
  • Should leverage binary storage service work done last year, possible 1.8 refactoring project for BitstreamStorageManager to back with dspace 2.0 storage services.
  • Unify approach for creating separate storage services for srb/irods, s3, duracloud, etc
  • Utilize spring configuration as example of how to stop using PluginManager
  • Also have tooling to support asynchronous processing of storage requests

Kim Shepherd

Usage statistics reports

dspace-xmlui
dspace-jspui?
dspace-stats?
dspace-solr?

The new solr statistics engine in DSpace needs to generate more reports, replace the legacy "site-wide" statistics report that is still in use, and make use of
Google Charts API (or similar) to make graphs easier to read, compare between items, etc.

 This project will result in
* Legacy site-wide statistics (generated w/ log analyzers) replaced with reports generated from new statistics engine
* More usage event types being captured (?)
* Reports presenting aggregations of counts across site/communities/collections/items/etc

Kim Shepherd
Andrea Schweer

RTMP A/V streaming integration

dspace-api
dspace-xmlui
dspace-jspui?

Integrate DSpace authentication, authorization and bitstream dissemination with an open source RTMP streaming server such as RED5.
Custom flash player is also desirable.

This project will result in
* Ability for DSpace to serve most A/V  content via RTMP
* Ability to deny playback for non-public bitstreams to unauthorized users
* Custom flash player for use with XMLUI and JSPUI(?)
* Integration with UsageEvents system to fire events on pause, resume, connect, etc.

Kim Shepherd
Andrea Schweer

New UI built over RESTful services

dspace-api
dspace-XXXui

Currently, DSpace functionality could be accessed using JSP and XML user interfaces. As in the meantime many other technologies arrived which could provide different way of user experience and UI customization, the idea is to create a new interfaces using some of the following technologies:
* Vaadin - component based framework, server run, provides rich visual experience to the users. In this project the implementation would be coupled directly with dspace-api.
* Client run interface (maybe ExtJS other JavaScript based) backed by REST API for DSpace .

The most important functionality these interfaces should deliver is user interface which has attractive look and feel and provides users with enhanced usability. Additionally, easier customization of resulting interface would be additionally appreciated. As of project complexity and project deadlines, support for many administrative functions in the interface is not so important in current stage.

Attractive, easy to use and customize interface based on currently appealing technologies would further promote DSpace capabilities and play role in its adoption. Client rendered interface based on REST would further decrease load on the server and therefore push DSpace deployment for bigger repositories.

Bojan Suzic

Accessibility

dspace-api
dspace-xmlui

DSpace is selected as an institutional repository platform for one special library for the blind (details come later). Its implementation/adaptation for institutional use is currently in progress (near end-stage). The institution would be willing to share some ideas, requirements and code already done in order to make solution widely available for institutions of similar type.

Some of important aspects and ideas of customizing DSpace for such purposes would be:
* adopt it on such way that it provides higher usability for blind persons
* create mobile application (Android, IOS...) which could provide blind users possibility to browse repository, download and listen books
* provide member management interface for closed-type library repository
* adopt DSpace components in order to better fit institutional needs of such libraries
* provide better support for delivering secured content (DRM of PDF documents, Daisy books etc)

Bojan Suzic

Scriptable Curation Tasks

dspace-xmlui
dspace-jspui
curation tasks

DSpace's Curation System allows administrators to run tasks on individual items or sets of items at various stages of the item's lifecycle. At the moment, new tasks need to be written in Java, compiled and made available to the DSpace codebase. The curation system could be extended by allowing administrators to write curation tasks in a simplified programming language (eg Groovy, Jython or JRuby) that can then be run in a one-off fashion, or stored within DSpace and re-run at a later point. This would give DSpace administrators a middle ground between bulk metadata editing and writing full-out Java code; it would also allow simple code to be run by people without shell access to the DSpace server.

Example tasks are:

  • For all items (in the repository/in a given collection), if the item's dc.description metadata contains a given string, move the item's bitstream from the ORIGINAL bundle to a different bundle
  • For all items (in the repository/in a given collection), if the item's metadata value in dc.identifier.doi starts with 'http://xyz/', strip out that part and write the remainder of the value back into dc.identifier.doi
  • For all items (in the repository/in a given collection), if the item's metadata value in dc.identifier starts with 'ISBN: ' or 'doi: ', remove the value, strip out that part and write the remainder of the value into dc.identifier.isbn or dc.identifier.doi as appropriate
    The first task cannot be done using bulk metadata editing because it affects the item's bitstreams as well as the metadata. The other two tasks could be done using bulk metadata editing but, for someone who can write code, may be faster to do in a scripting language than via metadata editing.

    A good trade-off must be made in exposing enough of DSpace's data model to be useful while hiding some of the more complex parts; some precautions will most likely need to be taken to ensure that the core DSpace functionality can't be compromised by the tasks.

Andrea Schweer

Past DSpace GSoC Projects

Please visit Past DSpace Summer of Code Projects for a full listing of all past DSpace GSoC projects.

Past Ideas for Potential DSpace GSoC projects

We have archives of all our Past GSoC Ideas Pages still available for reference/ideas. However, you should check with the available mentors before suggesting any of these older project descriptions. In many cases these projects may no longer be applicable, or may require rethinking to bring them up to date.

  • No labels