2007 Project Ideas for Google Summer of Code
Listing of potential projects for the Google Summer of Code 2007.
.LRN is serving as the mentoring organization for this project, but because .LRN is almost exclusively built on top of the OpenACS Web Application Toolkit project ideas that benefit one or both are welcome.
- Projects that improve or add to the web accessibility of both .LRN and OpenACS for the disabled (please contact the .LRN leadership team with questions and requests for details about the related .LRN Zen Project: honchos [at] dotlrn [dot] org)
- Projects that improve or add to the translation infrastructure (e.g. translation server and translation package) to better support non-English speaking users (OpenACS/.LRN has an advanced translation infrastructure that has a web UI for translation, but it could use some help). Examples:
- Projects focused on improving version management and term alignment across languages
- Projects focused on adding translation support tools
- Projects focused on helping teams collaborate on specific localizations online (improved version control etc.)
- Projects that add or improve E-Learning standards compliance in .LRN (e.g. IMS LD, IMS QTI 2.0/2.1, SCORM 2004 3rd Revision)
- Projects that focus on application integration (e.g. adding comments package support across all applications, adding ratings package support across all applications)
- Projects that focus on object orientation support and agile software development
- Projects that extend the OpenACS workflow package (help make them more standards compliant, support state dependent attributes, etc.)
- Projects focused on game-based learning in online learning environments
- Projects focused on adding adaptive learning support to online learning environments
- Projects focused on improving the packaging and distribution of the software (e.g. apt-get/yum/etc.)
- When dealing with multiple translations a change in the source language creates a logistical problem b/c all target languages should be reviewed. The suggested work would focus on creating a notification system that informs translation teams when a term has been changed, offers a way to include a little note for the teams, and offers translators a quick way to reconcile the changes.
- The large number of applications in .LRN/OpenACS results in multiple occurrences of the same term in different the various translation catalogs (e.g. the word "delete" is an example that is used often, appears in multiple applications, and should only have to be translated once). The suggested work would focus on a community glossary that integrates with the translation UI. For each object being translated glossary terms are highlighted in the base language and any relevant translations of the glossary items are presented along side the object being created/edited. The work should help build consistent use of terms in the source language's content and in any translations. A glossary can include phrases and abbreviations and warn translators when the terms are used in multiple packages.
- Add functionality that analyzes translated message keys for words not in various spelling dictionaries as they might be candidates for correction.
- On websites of sufficient size, a consistent look and feel for users is important, while for site publishers and administrators, de-coupling the UI from programming allows for easier maintenance. The OpenACS templating system provides a mechanisms that allows programmers to make changes to widgets that are then available across all applications. This makes it possible for a student to contribute in a way that has lasting effect across all applications. An example that could be worked on in the context of the GSoC: addition of some accessible AJAX functionality to the forum-building or list-building procedures.
- IDE improvements:
- Improve the functionality of nsgd. Nsgd is a module for aolserver that allows for dynamic graphics generation via Tcl scripting of the gd library. Nsgd has recently undergone a major revision but there are still a few important functions to be added including the following: allowing graphics to be shared between threads, integration with the charting module, and finish the implementation of a sparkline library. In addition to benefiting .LRN and OpenACS, this work would be quite useful for any and all projects using AOLserver.
- Reference management module. Needed functionality includes import/export of BibTeX data, generation of works cited lists in APA, MLS and other formats, and improved multi-user annotations.
- Provide an automatic classification system for the reference management module. Assign bookmarks to categories automatically using, perhaps, libbow.
- Integrate AOLserver with AOL's Instant Messaging Library. Not sure about the licensing. Now that AOL has _finally_ released a library and granted permission for making AIMbots, create integration code so that AOLserver can send information via AIM as well as HTTP.
- Create a module for compiling, linting, and other basic checks of uploaded student code. In particular, support Eclipse and BlueJ. Allow students in a .LRN class to upload source code which is compiled and tested. Reports sent to student and teacher.
- Explore using the IMS Learning Design specification support in .LRN to model adaptive learning experiences.
- Explore integration of game-based learning tools with .LRN (e.g. passing results from an adaptive game back to .LRN)