Project Ideas for Google Summer of Code 2007
Project Ideas for Google Summer of Code 2007
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
- Projects that improve or add to the translation infrastructure (e.g. translation server and translation package) so that we can better support non-English speaking users (OpenACS/.LRN has an advanced translation infrastructure, 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
- Projects focused on improving version management and term alignment across languages
- Projects that focus on standard compliance in e-learning like IMS LD, IMS QTI 2.0/2.1, SCORM 2004 3rd Revision
- Prjects that focus on agile content development
- Projects that focus on application integration, service oriented architecture, workflows
- Projects that focus on object orientation support and agile software development
- Project to extend Workflow to be standard complient and to support state dependent attributes
- Projects that...
- a community glossary that integrates with translation editing pages. For each objects being translated (edited), 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. This tool helps build consistent use of terms in the base language's content and in any translations. And helps prevent the building of unweildy compound-word/phrases in translations. A glossary can be phrases and abbreviations (example: http://www.ric.org/community/glossary.php ), and warns translators when they will get used over and over (and so don't make them unruly when translated) etc etc.
- A report that analyzes il8 object content for new words not in spelling dictionary as they can be candidates for glossary (or spell correction). The report should have a history mechanism, so words do not have to be repeatedly visited on this topic.
- Enhancement to make OpenACS work smoother:
- In Listbuilder use Ajax to highlight the row your mouse is currently residing over. If you click anywhere except a direct link, go to the default url (as defined in listbuilder). If there is no default_url, do nothing. Ajax file-storage UI has some of the look and feel.
- Again in Listbuilder allow a display_group column. Doing this will first do a select distinct on the group_column to get the entries and build the list in a folder like structure (think folder-chunk.tcl in filestorage). If you click on a value of the group_column, a "loading" icon should show and the list will grow larger with all list entries that have the clicked on value for group_column will be loaded. This is an addition and only should work if Javascript is enabled. Default to the normal list builder functions.
The benefit of this is that you can handily navigate lists. especially if the display_group column is changeable for the user. - A general portlet code which you can use as a master in includes, so that you have an ajax enabled "open/close" along with the ability to open the portlet in closed state and upon opening load the contents of the include. This has the benefit that you can have multiple includes on a page (similar to portals) but are quickly able display the page as a whole and have the user actively open additional data.
- In Listbuilder use Ajax to highlight the row your mouse is currently residing over. If you click anywhere except a direct link, go to the default url (as defined in listbuilder). If there is no default_url, do nothing. Ajax file-storage UI has some of the look and feel.
- Eclipse support for OpenACS development. Not entirely sure what should go in here, but a couple of ideas are:
- Syntax checking on the fly (including missing braces)
- Quicktest button: Reload all open files (if necessary) and execute the current edited page
- Breakpoints which will use e.g. ad_return_error to display the variables I want to see (quick code entry)
- Quick ns_notice function, so you can see what is happening in your code. For both breakpoints and ns_notice remember which where inserted by Eclipse and offer to remove them upon closing of Eclipse. Maybe even mark them in general so you can save the file and before committing remove the Eclipse breakpoints and Logs.
- Quick procedure navigation. Upon display of a procedure, offer to show the latest version in memory on a new screen. Alternatively offer to edit the procedure (if possible) in a new edit window
- Support XoTCL in eclipse
- ....
- 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.
- Improve the Bookshelf 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 bookmarks 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.