Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel

Contents

Table of Contents
outlinetrue
stylenone

...

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:

Accepted DSpace Summer of Code 2011 projects

...

Summary

...

Relevant DSpace component(s)

...

Detailed Description

...

Student

...

Mentor(s)

...

SKOS Authority Controls

...

Authority Control
MetadataField
MetadataVlaue

...

...

Mark Diggory

...

WebMVC (Freemarker) UI development

...

modules/webmvc

...

Graham Triggs

...

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: 

...

Bojan Suzic

...

Ideas List for DSpace

Note
titleAdd your ideas here!

Please add your suggestions for GSoC 2011 2015 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.

Info
titleIdeas List has Changed since March 30, 2011

Also, please note that Google has recommendations on what to minimally include in each "Idea", see: What is an Ideas List?

NOTE: The below DSpace-specific ideas table is automatically embedded into the global DuraSpace Google Summer of Code Ideas page.

In our DSpace Developers Meeting on March 30, 2011, the developers in attendance voted up/down various project ideas listed here. Based on general lack of interest & support, the following projects were REMOVED:

  • "JSPUI Rewrite" project – This project idea has been replaced by the "WebMVC (Freemarker) UI" project (see below), which has the same goals.
  • "Modular Configuration" project – it was determined this involved too many core infrastructure changes, which should be done by a core committer
  • "MySQL Support" project – Although most are in favor of this project, it has a dependency on Refactoring the DSpace Domain Model (which is not yet completed)
  • "Pluggable bitstream storage" project – concerns that this had too many dependencies. Also, Richard Rodgers is working on something similar which is almost ready to commit.

The full discussion of this meeting is logged in our IRC logs at: http://irclogs.duraspace.org/index.php?date=2011-03-30

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

...

Summary

...

Relevant DSpace component(s)

...

Excerpt
Project Title
DescriptionMentor

...

storage-triplestore
storage-fedora
dspace-storage

...

Mark Diggory

...

Disseminator Framework

...

ItemView
Item
Bitstream
XMLUI

A Disseminator Framework will associate Disseminators with Items and/or Bitstreams,  Disseminators will combine METS file description and behavior sections to supply the user interface with a standard representation of the dissemination services that can be applied to a content bitstream in DSpace.  See for further background:

...

Mark Diggory

...

Extend Metadata Framework to Support Stronger Typing and Validation

...

MetadataValue
MetadataField
MetadataSchema
Community
Collection
Item
Bitstream
XMLUI

...

Extend the DSpace Metadata Domain Model to support the following features:

  • Community, Collection and Bitstream Level Metadata
  • Create "ContentType" or "Classes" Domain Model for Items and Bitstreams that define Metadata Fields that Should / Could be Present and their occurence
  • Allow MetadataFields to define the appropriate Authority Controls that can be applied to them at the Domain Model level so that they can be used to inform Submission and Edit Forms (rather than using dspace.cfg properties.
  • Correct Dublin Core Model and Add More default namespaces (Dublin Core Terms, ETD, VRACore and BIBO Namespaces
    Research Applying METS more fully in the DSpace Domain Model
  • Allow Metadata "Files" that are stored in Bitstreams attached to Item but rendered in XMLUI and Descriptive, Administrative Metadata Sections
  • Allow Behaviors to be attached to Fiel Descriptions, Structure Maps, etc
  • Allow Structure Maps to be more descriptive of the contents of the item.
  • Describe and attach Bitstream level metadata as descriptive and administrative metadata sections
  • Describe and Attach Collection and or other relationships in administrative metadata sections (Similar to Fedora)
  • Formalize how "Relations" Between Items should be expressed in METS metadata (see Fedora Rels-Ext for examples).
    Create a Validation Service Capable of Reviewing the Metadata and Content of the Items, Create Curation Tasks that can call the Validation Service by the Repository Managers

...

Mark Diggory

...

Rewrite Packager Framework

...

dspace-api
packagers
crosswalks

...

Refactor Packagers to support Chain of Command
The packager framework in DSpace is rather rigid and unwheldy, an excellent project would refactor the Packager and Crosswalk frameworks to support more basic packagers and crosswalks.  DSPace METS SIP Packages and/or SWORD packages are not the only types of packages out there. in fact, METS was never meant to be "repository specific", but to be "content specific". A better Packager Framework would gracefully degrade based on features it could detect about the incoming content being ingested, even in the METS case, DSpace should be "Profile Agnostic" and accept any METS package to derive one or more DSpace items.

...

Mark Diggory

...

DSpace Core Domain Model

...

dspace-api
dspace-services
dspace-core

...

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 who previously implemented RESTful API (both write and read-only) project has indicated he would like to continue work on it outside GSoC, so this entry should perhaps be removed for now

...

 

...

Usage statistics reports

...

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

...

  • 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

...

RTMP A/V streaming integration

...

dspace-api
dspace-xmlui
dspace-jspui?

...

  • 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.

...

New UI built over DSpace API, based on popular frameworks

...

 

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:

...

Bojan Suzic

...

dspace-api
dspace-xmlui

...

Volunteers
File format validation with DROID and JHOVE

When a file is currently uploaded in DSpace, its file format is guessed by looking at the file extension. This means if I change the extension ".exe" of a file containing a virus to ".pdf", DSpace will not have a clue what's going on and identify the file as a PDF. You can make this more robust by working on the class FormatIdentifier. The student is expected to work on this class to handover the task for format identification to a library like JHove, DROID, or both.

Minimal viable work:

  • Implement JHove OR Droid, and demonstrate that it can perform identification on a number of text and image formats when uploaded to DSpace.

Extra kudos:

  • The student implemented BOTH JHove and Droid, and produced a performance analysis on which of the two (or both) should be preferred, leading up to a more optimized solution.

GODLIKE:

  • Aside from the inclusion in the submission form, the student also creates a DSpace Curation Task that allows a repository manager to run file format identification against existing items, or entire collections. The administrator receives a report on those items that are differently identified by JHove/DROID, compared to what's already stored as the bitstreams format.

Difficulty level: Easy

Philip Vissenaekens (Atmire)

Andrea Schweer

TranslateWiki Integration

The DSpace community has approached TranslateWiki.net (TWN), the mediawikibased platform for interface translation of open source projects. The initial discussions are promising and the TWN community is currently building support for the Apache Cocoon message format that is used by XMLUI. We need an ambitious GSOC student to connect the dots, working with both communities in extending the integration and ensuring that in the end, the threshold is lowered for external translators to provide interface translations for DSpace.

Related Links:

Related DSpace Components:

Recommended Skills:

  • Multilingual and/or translation experience
  • Familiarity with Java web application Internationalization

Difficulty Level: Medium

Bram Luyten (Atmire)
Virtual Sets: Separate the internal repository structure from the navigation structure

Currently, the hierarchical structure used in DSpace allows sharing items between collections by explicitly declaring these relations on each item. However, DSpace does not allow to relate a collection or a sub-community between two or more communities.

Virtual Sets are arbitrary aggregations of DSpace Objects and criteria, composed of:

  • arbitrarily selected communities, collections and/or items,
  • dynamic results from criteria/queries (logical expressions; e.g. Solr queries)
  • other declared Virtual Sets (initially, cycles are not allowed)

Virtual Sets in DSpace would allow the creation of complex navigation structures regardless of the hierarchical (perhaps administrative) structure of communities and collections.

Structures, as described above, are supported in at least another repository software such as Fedora-based Hydra due to its generic object model.

The initial implementation would affect the dspace-api component and either of the web UIs, since both now use Discovery (Solr) by default. Virtual Sets should be implemented at the dspace-api level for DSpace Objects to offer more orthogonal features like Virtual Sets backup, export and exposure through OAI-PMH. Stretch goals would include making use of Virtual Sets in other interfaces like REST and/or OAI.

Related links:

Related DSpace Components:

Recommended Skills:

  • Java programming experience

Difficulty Level: High

Ivan Masár
Create a puppet-dspace module

Develop a Puppet-DSpace module for deploying DSpace, and provisioning DSpace-related services. The goal would be to deploy on at least one popular Linux OS, and likely the target will be Debian/Ubuntu since testing will be done with Vagrant-DSpace, which currently uses only Ubuntu. The final product should be useful for deploying DSpace to a cloud infrastructure, or really any server configured to run Puppet (in other words, the module should make no assumptions that rely upon paths used by Vagrant). A stretch goal for this project will be to make the puppet module OS-agnostic, and have it run on both Debian/Ubuntu as well as CentOS/RHEL. But just meeting the Ubuntu target would be sufficient for this project. The puppet module already built for use in Vagrant-DSpace would be a great starting point. The module, when complete, should enable an operator to go from a standard OS base image to a running instance of DSpace, complete with a container to host the application, and (optionally) a PostgreSQL database for metadata.

Related DSpace Components/Links:

  • vagrant-dspace : A Vagrant setup for DSpace development. It includes the "starting point" for a puppet-dspace module under "/modules/dspace/"
  • Installing DSpace : DSpace 4 Installation instructions

Recommended Skills:

  • Experience with Puppet or similar tools (e.g. Chef). At a minimum some base familiarity and even some Ruby experience (which Puppet is based on).
  • Familiarity with Vagrant, or willingness to learn.

Difficulty Level: Medium

 

 

Next-gen UI

MDS is an experimental offshoot of DSpace in which new ideas may be prototyped and examined. Recently a REST API (with CRUD operations, etc) has been added to MDS. A valuable 'proof of adequacy' is building an entire functional web UI backed only by the API. The goal of this project is to construct such an admin UI for MDS, using a modern, agile web application framework. A proof of concept using AngularJS already begun could serve as a basis for further work.

Related DSpace Components:

  • mds : "Modernized DSpace". An attempt to refactor/redesign the DSpace API to make it more simplistic/modernized.This is a side-project of long-time Committer, Richard Rodgers
  • mds/webapi : the REST API for MDS project. This API supports CRUD operations.
  • dspace-rest (loosely related): the official REST API  which now ships with DSpace 4 may also provide a possible integration point. However, it is currently read-only.

Recommended Skills:

  • Experience or familiarity with one or more agile web frameworks
  • Experience or familiarity with buiding agile interfaces against a REST API

Difficulty Level: Medium to High

Richard Rodgers

Philip Vissenaekens (Atmire)

Past Ideas Lists for

...

Bojan Suzic

...

Scriptable Curation Tasks

...

dspace-xmlui
dspace-jspui
curation tasks

...

Improve Submitter User Experience

...

dspace-xmlui
dspace-jspui?
webmvc?

...

Generally clean up submission process, especially at UI level, and provide a more user friendly submitter experience. (Need to brainstorm out exactly what changes to make obviously)
Examples may include:

  • Finding ways to ease interaction with the submisssion UI via jQuery or similar technologies (improved step-by-step feedback, improved upload process, etc)
  • Provide popup help/tips on various submission fields?
  • Perform Usability Studies on users of the system to find pain points during submission. (i.e. does user know what collection they are submitting to, can they find the item they just submitted, do they have to delete everything in an entry to change an author's name while still preserving the order of authors, do all the checkboxes and radio bubbles make sense as to what they do?)
  • Finding ways to minimize the length of time required to submit something.
  • Since XMLUI is the main interface for dspace, it would be required that the project primarily improves the XMLUI interface. Improving JSPUI, SWORD/easy-deposit, WebMVC, or batch submission could be additional improvements to work on.
  • (Other thoughts/ideas welcome...)
    Comment (Andrea): I'd really like to see an option for DSpace administrators to configure the submission UI via the web interface. I'm aware of the Google Summer of Code 2009 Submission Enhancements but I don't know what the outcome of this project was -- it doesn't seem to have made it into DSpace yet.

...

Past DSpace GSoC Projects

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

...

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 some cases these projects may no longer be applicable, or may require rethinking to bring them up to date.

Children Display
depth1
sorttitle
page

...

DSpace Summer of Code Ideas

...

...

reversetrue
excerpttrue

...

Past DSpace GSoC Projects

...