Version 43, changed by rcoup 03/23/2007. Show version history
You bet. In 2006 Dojo had 7 summer of code projects funded (3 from Google and 4 from SitePen/Mozilla). Find out more about Dojo's previous Summer of Code projects at SoC2006 and our plans at SoCOrganization
Dojo developers are invited to volunteer to be mentors and to add project ideas to the list below. For more info about mentoring, please read Google's Advice for Mentors page. If you're not currently a Dojo contributor but are an avid user and comfortable with how Dojo works and what goes on, please get in touch with Rob or Neil and we'll talk further. There are also opportunities for backup mentors!
Mentoring a student will take time. Please be realistic about how much time you have available and only sign up to be a mentor if you'll be available to work with the students, provide regular guidance, and help make sure the student projects are successful. As a guide, you will need to spend at least 3-5 hours per student every week during the programme.
As a mentor, you will need to:
This is where we'll start compiling ideas for Summer of Code projects. We are looking for as many interesting projects as we have mentors for.
When you're adding a new project suggestion, keep in mind that it needs to make sense to the students who are looking for project ideas, and be interesting to them. Don't assume that they have lots of experience with JavaScript or background about what Dojo is or does, and remember that the project needs to be completed in three months.
Create a Wiki page, write as much as possible to describe it and leave contact details so students can get in touch with you to ask questions (and then update the Wiki page with answers). From the proposal everyone should be able to see what we're aiming to achieve and why this will be good for Dojo. A personal wishlist is not a proposal!
If you don't have a Wiki account please get in touch with Rob or Neil.
IMPORTANT: These are only suggestions! As a student, you're most welcome to propose your own ideas or variations on any of these.
new project name (add your project idea here!)
- summary: a quick summary
- more info: a link to a wiki page that describes the project idea in some detail ...
activeX CANVAS tag
- summary: Mozilla, Opera and Safari have a CANVAS tag (recently adopted by the WhatWG, see below) that allows you to do raster drawing directly in the browser. For Internet Explorer, there is no direct support for this extremely useful tag, although there are some libraries that support part of the functionality. The project then is to create a CANVAS tag for Windows IE as an activeX control. The CANVAS api is fairly simple, and would be a good exercise in graphics programming for a student.
- mentor: Owen Williams
- proposed by: Owen Williams
- more info: We don't yet have a wiki page that describes this project in more detail. Below are links about the CANVAS tag, students who are interested in this project can contact owen aat dojotoolkit dot org for details.
dojo.data.Overdrive project
- summary: Write a dojo.data datastore implementation that uses MySQL as a server-side database. Implement the datastore so that it can deal with loosely-typed, multi-valued, semi-structured, JSON-ish, web 2.0 data, and can store that data in a rigid ugly old relational database. Maybe call the new datastore "Overdrive", with an eye towards facilitating comparisons between Ruby on Rails (TM) and Dojo on Overdrive.
- more info: See SummerOfCode2007DojoDataProjects
dojo.data.MediaWiki project
- summary: Write a dojo.data datastore implementation that knows how to read semi-structured content out of a MediaWiki site by creating data item from the data in info-boxes and MediaWiki parameterized templates.
- more info: See SummerOfCode2007DojoDataProjects
offline dojo.data project
- summary: Get the dojo.data datastores and the dojo offline toolkit working together, so that for any app which already uses dojo.data it becomes astonishingly easy to also add offline functionality.
- more info: See SummerOfCode2007DojoDataProjects
JS Linker
- summary: Significant progress was made last summer on a JavaScript Linker, reaching alpha quality. Bring the linker to production quality.
- mentor: We're still looking for a dojo developer to volunteer as the primary mentor for this project.
- proposed by: Dylan Schiemann
- more info: We don't yet have a wiki page that describes this project in more detail. Here are a few links that should go on that page when we have it:
- what is the JS Linker
- summary: Create a 3D implementation of dojo.gfx, much like Canvas3D.
- mentor: Dylan Schiemann volunteers to be the backup mentor for this project.
- proposed by: Dylan Schiemann
- more info: We don't yet have a wiki page that describes this project in more detail. Here are a few links that should go on that page when we have it:
- summary: Test and optimize Dojo and Dijit for use on devices such as the iPhone and other mobile devices with sufficiently powerful web browsers.
- mentor: Dylan Schiemann volunteers to be the backup mentor for this project.
- proposed by: Dylan Schiemann
- more info: We don't yet have a wiki page that describes this project in more detail. Here are a few links that should go on that page when we have it:
A larger back button repository
- summary: Make back button support more advanced than just undo functionality
- mentor: Neil Roberts volunteers to be the primary mentor. James Burke can run backup.
- proposed by: Neil Roberts
- more info: We currently have a good undo package that works well in most browsers. We need to get it working in all browsers, make sure it works perfectly (using the best method possible for the browser). We also need to implement functionality that isn't based on undo, such as using the hash of a page as a "request" to a JavaScript function. It would also be nice to have an alternative to dojo.undo that has a central controller function and only adds data to the history.
- even more info: The focus would be on giving Dojo the absolute best back button support of any toolkit, with functionality for every use case in every browser.