Google Summer of Code 2010 ideas list

This page contains ideas for Google Summer of Code projects in 2010.  You can also see

About Sakai

Sakai 2.x is a powerful and widely used Learning Management System / Virtual Learning Environment (pick your preferred acronym), being actively maintained and developed for.  Most of our project ideas however are based around Sakai3, a major new version of Sakai which is currently in active development in our community.  Among its many improvements, Sakai3 will provide:

  • A revamped user experience
  • A powerful and easy to use content authoring capability
  • Social networking features
  • Improved teaching and learning workflows
  • Increased scalability
  • Ease of use for software developers
  • Low demands on institutional IT support

You can learn more about Sakai3: read an early proposal, or check out the official information page(with screencast!).

Community

The Sakai community organises itself and its work using a typical suite of OSS tools: an official project site for letting everyone know what we're doing, why they should be interested and how to get involved, a project blog to keep everyone up to date and share what's on our minds, mailing lists for support and discussion (start with Sakai_dev), a wiki for plans and documentation (check out the Project Coordination, Sakai 3, getting started and Your First Day With Sakai Nakamura pages especially), an issue tracker for managing bugs and feature requests (look under category Sakai3 to get a feel for current work), and a source version control system for managing collaboratively-developed code (svn for Sakai 2.x, git for Sakai 3).  There's also a demo site, notes on how the community is run, preview and discussion of the UX framework, and a Google group dedicated to our backend kernel development: Sakai Kernel 2 (this may be informative, but is not deeply relevant to the projects listed below).

Technology

Sakai 3's codebase comprises the kernel and UX layer, plus 3rd party OSS libraries, including, most importantly, the Apache Jackrabbit reference implementation of the Java Content Repository (JCR) standard (there's an excellent blog post about this here) and the Apache Felix implementation of OSGI for modular development and deployment.  Apache Sling sits on top of Jackrabbit and provides RESTful APIs to the JCR standard, making it very straightforward for Sakai developers to do Web 2-style development.  In the UX layer jQuery is used extensively with accessibility improvements from the Fluid project

Ideas

Ideas 1-6 below involve creating new sections of user interface in Sakai3, to enhance and build upon our current flexible authoring and widget environment; these will be written in javascript, HTML and CSS. Idea 5 is based on GWT, 3 could be relatively standalone so might be anything you decide. 

If you have questions or want to discuss your ideas, try #sakai on freenode.net first, then the project mentor, then the sakai-dev list.  We will always try our best to respond and give advice, but please be patient as sometimes we have a lot of questions to answer.

If having looked at the Sakai project and the suggested tasks below you have a better idea for something you would like to work on, we are happy to consider applications which define alternative projects - you should get on the Sakai-dev list or contact Amyas Phillips (amyas@caret.cam.ac.uk) if you want to discuss such ideas.

1. Workflow integration

At the moment, when a user creates a new page in Sakai3, they get a blank canvas into which they can add text, images, videos, and widgets, which could be discussion forums, comments, polls, blogs, assignments... and more. This is great if you like flexibility and know exactly what you want to make! (There's something that can be done to help with templating, which we envisage is more like starting from an example page with lorem ipsum text and placeholder images/widgets, but that's not very exciting.) This project is to create a "scaffolding" system so that users wanting to create content within Sakai3 can follow a workflow related to the task they are undertaking, rather than the freeform environment offered today. The project will involve HTML/CSS/javascript and ajax/jQuery/json knowledge may be useful.

Mentors

Former user (Deleted), CARET, University of Cambridge

2. Mashup environment

Sakai3 is built on top of a Java Content Repository, meaning that "everything is content". Whenever a user creates or uploads some data, it falls through into the JCR, acquiring as it does so "tags" which can be used to find the data again. Then, the system can ask JCR to return different kinds of information, like "all my stuff", or "all thermodynamics teaching material from the Engineering Department". There's lots of information available, and various services will draw upon the JCR pool of content in different ways, creating data feeds for all kinds of users. This project is to create a system which presents an index of the data feeds available in Sakai3 which is browsable by a user. Then, to build an environment which lets a user connect together some of the data feeds, to create their own Sakai3 widget - (we are thinking of a concept similar to Yahoo Pipes). The project will involve HTML/CSS/javascript and ajax/jQuery/json knowledge may be useful.

Mentors

Former user (Deleted), CARET, University of Cambridge

3. Event Explorer

The 'all things are content' philosophy of Sakai3's kernel has a counterpart principle; that 'all actions are events'.  Events are published using the Java Message Service (JMS).  User-generated content platforms need helpdesk support as much as, or even more than, other institutionally-supported systems, and an important design goal of Sakai3 is to minimise this through good design and by providing efficient general-purpose support tools. This project is to design and implement a forensic tool for helpdesk users comprising an event listener, logger and, crucially, browser.  The brief has some overlap with the Mashup Environment but is more self contained and would would suit applicants who are less experienced or who want to be more certain of making a concrete contribution to the project.  Required skills are java, PHP, HTML and CSS. mySQL or other database experience would also help.

http://confluence.sakaiproject.org/display/KERNDOC/KERN-717+Event+Explorer

Mentors

Former user (Deleted), CARET, University of Cambridge

4.  Citation Manager Widget

Sakai is a collaboration tool for research academics, as well as an environment for collaborative and online learning.   A key tool of academic researchers is the citation database, which is used to log, organise, annotate, share and cite interesting publications.  Publications themselves might be books, websites, conference proceedings or journal papers.  Various tools exist: desktop (Papers, Zotero), web service (Connotea - open source and has web API, CiteUlike, BibSonomy, CiteSeerX, Scholas) and hybrid (Mendeley- API coming April/May), publishing several kinds of APIs. This project would require some initial exploration, with the help of your mentor, of use cases and requirements in order to develop a specification for how these tools can be usefully brought in to Sakai3, giving particular attention to its academic networking features, and subsequent development of a Sakai3 widget (somehat like an iGoogle widget) using javascript, HTML, CSS and the target APIs. 

Mentors

Former user (Deleted), CARET, University of Cambridge

5. Open Syllabus - Learning Sequences

Syllabi are universal gateways to teaching and learning in universities.  Open Syllabus (OSyl) is a model-based 2.6  Sakai tool that offers a comprehensive solution to syllabi or course websites authoring. Open Syllabus is based on the Google Web Toolkit technology and thus generates Javascript code, can use widget/gadget libraries and and communicates with AJAX web services. In last year project, we haved developed Open Social Gadgets that were integrated in our GWT platform.

In the 2010 project, we would like to extend our approach to learning sequences. Inspired by program based principles, instructors are now designing fully integrated sequences of learning modules linked to learning outcomes were students are expected to post artefacts and associated reflexive comments.  This kind of environment is a mixture of structured modules (learning outcomes, resources, activities) and portfolio-type activities that follow a pre-specified scenario.  In the GSOC 2010 project, we propose to adapt our GWT Open Syllabus approach to tackle this kind of learning environment.  We plan to develop a new learning outcome resource that be will accessible using REST API.  We plan to use some of the tools available in Sakai 3.  Finally, we are going to implement some learning sequences and activities which follow editable scenario.

Mentors

Former user (Deleted), MATI, Université de Montréal

6. Connections/Social Graph Explorer

Academic networks are built on the connections between teachers, learners and researchers. The connections between individuals are driven by the activities of individuals in academia rather than their social interactions. I would like to build component capable to navigating a social graph extracted realtime from various sources of evidence of academic activity, conference proceedings, papers, citations etc. Ideally this would be achieved without the need to harvest the data into an internal store.

Mentors

Former user (Deleted), CARET, University of Cambridge

7. Cloud Persistence Manager

Sakai 3 is based on Apache Jackrabbit, which contains a persistence manager service provider interface. I would like to build a persistence manager capable of binding multiple instanced of Sakai Nakamura into a single instance. That might utilize local storage on each node, but equally could re-use BigTable like column databases including BigTable, Casandra or Voldemort. For the really adventurous building a persistence manager based on a Git like versioning object tree

Mentors

Former user (Deleted), CARET, University of Cambridge