Code


Version 31 (modified by jezdez, 5 years ago) (diff)

--

Google's Summer of Code 2009

Django is once again applying to be a sponsoring organization for the 2009 Google Summer of Code. (Read Google's page for more information on how the program works.)

Django's SoC program is being run by Jannis Leidel (jannis /at/ leidel /dot/ info).

Mentors

If you're interested in mentoring -- supervising a student in work on Django-related activities -- add your name and email here:

  • Russell Keith-Magee (russell@…)
  • Jacob Kaplan-Moss (jacob \at\ jacobian \dot\ org)
  • Joe Tyson (joe \at\ routespot \dot\ com)
  • Eric Holscher (first @ firstname lastname .com)
  • Gary Wilson Jr. (gary.wilson@…)
  • Nicolas Lara (nicolaslara \at\ gmail \dot\ com)
  • Danilo Cabello (danilo \dot\ cabello \at\ gmail \dot\ com)
  • Rory Tulk (rpstulk \at\ gmail \dot\ com)
  • Joseph Kocherhans (jkocherhans \at\ gmail \dot\ com)
  • Malcolm Tredinnick (malcolm \at\ pointy-stick \dot\ com)
  • George Vilches (gav \at\ thataddress \dot\ com)
  • Blake Winton (blakewinton \at\ gmail \dot\ com)
  • Jannis Leidel (jannis /at/ leidel /dot/ info)

Students

Student applications open March 23 and end on April 3.

If you'd like to get started on your proposal early, we'll be looking for a few things. You'll need to have a concrete task in mind (some ideas are below) along with a solid idea of what will constitute "success" (you tell us). We'll want to know a bit about you -- links to previous work are great, if any. You'll also need to provide us with a rough schedule of milestones so your mentor can know if and when to nag you :)

Note that none of the ideas below are good enough to be submissions in their own right (so don't copy and paste)! We'll want to know not just what you want to do but how you plan to pull it off.

And don't feel limited to the ideas below -- if you've got a cool project you want to work on, we'll probably be able to find you a mentor. We plan on approving as many projects as we possibly can.

Note: we're looking for projects that add value to Django itself - not application/CMS projects that use Django.

Communication

The django-gsoc Google Group has been setup to facilitate communication between students and mentors in the GSoC efforts.

Ideas

Here are some suggestions for projects students may want to propose (lazyweb: please add to this list!). This isn't by any means the be-all and end-all of ideas; please feel free to submit proposals for things not on this list.

Try to scope ideas/proposals to the 4-month timeline -- simply proposing to fix a ticket or two will probably result in your proposal being rejected in favor of a more ambitious one. The SOC does not cover activities other than coding, so certain ideas ("Write a more detailed tutorial" or "Create demonstration screencasts" or "Add a pony?") are not suitable for inclusion here.

On the other side, though, be sure to be concrete in your proposal. We'll want to know what your goals are, and how you plan to accomplish them.

In no particular order:

  • A serialization refactor. Hopefully allow serializers to be declared like ModelAdmins. Make serializers more useful for API type things (field to json dict key mapping, output of a function, etc.) For some ideas: http://code.google.com/p/wadofstuff/wiki/DjangoFullSerializers
  • A schema-less DB backend (e.g., CouchDB, Google App Engine) and move/refactor all hard-coded SQL (see #10109 for instance) to backends
    • Note from Malcolm Tredinnick: this is a huge project and unlikely to be possible during the SoC period, since it isn't about only adding a database backend, but refactoring lots of internals to make adding such a backend possible. If you are considering doing this, you will need to be familiar with the existing ORM and are recommended to start a discussion with idea on django-dev before SoC starts to see how feasible it is. Finding a small subset of this to do might be possible, but even the first refactoring/rewriting step is very large. Not for people just starting out with Django development.
  • A Public-facing multiple database API.
  • Denormalized model fields (#8946)
  • Add dynamic lookup capability to the serializers (#7052)
  • Improve Query Expressions (F() syntax): Extend F() to handle other data types, especially strings and dates (#10154), and integrate F() with annotate(), allowing expressions to be annotated onto a model (#10302).
  • I18N improvements: there are a couple of places where i18n support is not complete, see for instance this summary of Marc Garcia on this topic + related bugs.
  • Allow for extendable auth_user module (add an abstract base class for User too)
  • Implement various convenience features to make RESTful webapps easier/faster/better to build with Django
    • Note from Greg Wilson: Rory Tulk and Mohammad Jalali have started this as a course project, and it looks promising; contact either of us for more details.
  • Functional test runners integrated with Django (Windmill, selenium). Coverage support. General testing improvements. See: Open Testing Tickets
  • Encryption and decryption of Python objects using AES256 (AES256TextStore). This is a proposal based on preliminary testing using pycryptopp (cryptopp). I also propose mentoring and would like to add this contribution in Django and notmm. The general concept is to develop a data storage engine that would support encrypt() and decrypt() things based on a unique public key. A preliminary test case is available here: http://joelia.gthc.org/notmm/0.2.12/file/2ae8272976ab/tests/datastore/test_aes256.py#l1
  • Your idea here