Code

Changes between Version 59 and Version 60 of SummerOfCode2006


Ignore:
Timestamp:
05/01/06 19:35:30 (8 years ago)
Author:
jacob
Comment:

Added new mentors to list; refactored out "small" ideas so that people don't apply with topics too small in scope

Legend:

Unmodified
Added
Removed
Modified
  • SummerOfCode2006

    v59 v60  
    99 * James Bennett 
    1010 * [http://www.simonb.com/ Simon Blanchard] 
    11   * [http://postneo.com Matt Croydon] 
    12   * [mailto:lawgon@thenilgiris.com Kenneth Gonsalves] 
    13   * [http://www.holovaty.com/ Adrian Holovaty] 
    14   * [http://feh.holsman.net/ Ian Holsman] 
    15   * [http://jacobian.org/ Jacob Kaplan-Moss] 
    16   * [http://lazutkin.com/ Eugene Lazutkin] 
    17   * [http://lovebox.ath.cx/ Andreas Neumeier] 
    18   * [mailto:malcolm@pointy-stick.com Malcolm Tredinnick] 
    19  * ... 
     11 * [http://postneo.com Matt Croydon] 
     12 * [mailto:lawgon@thenilgiris.com Kenneth Gonsalves] 
     13 * [http://www.holovaty.com/ Adrian Holovaty] 
     14 * [http://feh.holsman.net/ Ian Holsman] 
     15 * Uriel Katz 
     16 * [http://jacobian.org/ Jacob Kaplan-Moss] 
     17 * [http://lazutkin.com/ Eugene Lazutkin] 
     18 * [http://lovebox.ath.cx/ Andreas Neumeier] 
     19 * George Song 
     20 * [mailto:malcolm@pointy-stick.com Malcolm Tredinnick] 
     21 * Michael Vincent 
    2022 
    2123== Students == 
    2224 
    23 Student applications open May 1st. Watch [http://groups.google.com/group/django-users django-users] for an announcement when the signups open. 
     25Student applications opened May 1st; [http://code.google.com/soc/student_step1.html sign up over at Google] and be sure to list Django as the project you want to work with. 
    2426 
    2527If 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 :) 
     
    3941   * infrastructure for automatically downloading and installing packaged Django apps. 
    4042 
    41   * Create Django packages and buildscripts for Linux (various), FreeBSD (There already is one www/py-django), OS X (Fink and Darwinports), etc. 
    42  
    4343  * Create a generic, reusable search/indexer component (capable of htmlentities). 
    4444 
     
    5252  * Implement ModelInheritance. 
    5353 
    54   * Make something like models.!RequestModel allowing to pass request to the model, so it would be possible to access the current user etc. from the model, the admin should be made to pass request if the model inherits from models.!RequestModel 
     54  * Implement SchemaEvolution. 
    5555 
    56   * Implement SchemaEvolution. 
     56  * Change the permissions system to be more flexible (ACL's, Zope-style role based authorization, etc.) 
     57    
     58  * Refactor package settings so things like {{{django.template}}} are usable outside of django. [http://groups.google.com/group/django-developers/tree/browse_frm/thread/5b590b5487e500c1/c0f0d30cec89b107?rnum=1&q=GvR&_done=%2Fgroup%2Fdjango-developers%2Fbrowse_frm%2Fthread%2F5b590b5487e500c1%2Fdcce2e4ee4114894%3Fq%3DGvR%26rnum%3D1%26#doc_5aa26d41ed06ae7c details] 
     59  
     60  * A better built-in webserver and an '''officially''' supported methodology to connect to lighttpd and similar servers. 
    5761 
    5862  * Implement a set of reusable AJAX components using Dojo and Django as a backend, including: 
     
    6266      * Easily create any levels of in-lined editing widgets 
    6367      * Compose admin pages of !AjaxPortlets that can be connected together 
    64   
    65   * Add spell checking to !CharField and !TextField with a well thought out interface (getting the interface right will be significantly harder than the backend code). 
    66  
    67   * Change the permissions system to be more flexible (ACL's, Zope-style role based authorization, etc.) 
    68     
    69  * Implement custom redirects and field templates for the admin system. (This isn't very ambitious as-is.) 
    70  
    71   * Refactor package settings so things like {{{django.template}}} are usable outside of django. [http://groups.google.com/group/django-developers/tree/browse_frm/thread/5b590b5487e500c1/c0f0d30cec89b107?rnum=1&q=GvR&_done=%2Fgroup%2Fdjango-developers%2Fbrowse_frm%2Fthread%2F5b590b5487e500c1%2Fdcce2e4ee4114894%3Fq%3DGvR%26rnum%3D1%26#doc_5aa26d41ed06ae7c details] 
    72  
    73   * A better built-in webserver and an '''officially''' supported methodology to connect to lighttpd and similar servers. While the apache+modpython solution is highly performant there are numerous situations where that setup is unfeasible or overkill. It is great that Django scales up well, if would be great if it scaled downwards as far as setup and deployment goes. 
    74  
    75   * Streaming uploads and downloads. Uploading a large file can break django as the files are stored in the request. This is a security flaw as well, denial of service attacks could be as simple as uploading one large or more smaller files simultaneously.   
    76  
    77  * Parametrized templates. Currently the only way to use the content of another template in a place that does not contain blocks is to include it. But that includes the whole template. It would be very nice if one could include blocks defined in other templates to be evaluated in a certain context. (this turned out to be harder to explain than I thought, basically what I'm saying is to introduce a new kind of block that works like a function, where you could call/import a block and pass it some parameters) 
    7868 
    7969 * add dabbledb (http://dabbledb.com/utr/) like functionality to the django admin. e.g. create a project and super user with one command line statement, fire up the development web server, and import/create/refine your model using live data from directly within the django auto admin. 
    8070 
    81  * A pet store application, similar to the ones which are shipped with java and .net. This server should be built as a showcase for other people to learn how to implement django features. (mysql's Sakila DVD rental app is also good) 
    82  
    83  * Code a themeable generic theme (or two) for use in people's Django applications.  
    84  
    85  * Build a Django CMS application with on-the-fly multiple language support for content (specific reference to i10n) 
     71 * Build a complete sample application similar to the ones which are shipped with java and .net. This server should be built as a showcase for other people to learn how to implement django features. (mysql's Sakila DVD rental app and the Java Pet Store app are two good ideas) 
    8672 
    8773 * A Row/Object level authorisation system. so you can say 'User A has read- access to customer 123' and user B has write access to customer 123', and user C has read/write to customer 345 
    8874 
    8975 * An option in the model to keep a copy of past states of rows/objects that have been modified. If this option is set, it becomes possible in the admin to see a diff between two past states of an object and get back to a past state of an object. 
     76  
     77== Smaller ideas == 
     78 
     79The ideas listed below are (as-is) too small in scope for a summer project.  If one of them catches your eye, think of ways of expanding it slightly before applying. 
     80 
     81  * Create Django packages and buildscripts for Linux (various), FreeBSD (There already is one www/py-django), OS X (Fink and Darwinports), etc. 
     82 
     83  * Make something like models.!RequestModel allowing to pass request to the model, so it would be possible to access the current user etc. from the model, the admin should be made to pass request if the model inherits from models.!RequestModel 
     84  
     85  * Add spell checking to !CharField and !TextField with a well thought out interface (getting the interface right will be significantly harder than the backend code). 
     86 
     87 * Implement custom redirects and field templates for the admin system. 
     88 
     89 * Parametrized templates. Currently the only way to use the content of another template in a place that does not contain blocks is to include it. But that includes the whole template. It would be very nice if one could include blocks defined in other templates to be evaluated in a certain context. (this turned out to be harder to explain than I thought, basically what I'm saying is to introduce a new kind of block that works like a function, where you could call/import a block and pass it some parameters) 
     90 
     91 * Code a themeable generic theme (or two) for use in people's Django applications.