<div class="content">
     <p><b>Synopsis</b></p>
<p>Drupal stresses ease of use. To that end, I will be submitting an
API to offer dragging, dropping, and sorting functionality to modules.
This will greatly enhance not only the ease of making changes to the
user interface, but also the development of associated drop and drag
projects. To highlight the abilities of the API, I will also be
creating a module to drag and drop blocks.</p>
<p><b>Project details</b></p>
<p>One of my main considerations in designing the Drag Drop and Sort
API is flexibility. Namely, I would like the API to be usable by all
content elements within drupal. The API will achieve this flexibility
by performing several operations:</p>
<ol><li>Identifying appropriate positioning information to be altered by the API (i.e. weight and region).</li><li>Querying the database for the relevant positioning information for each element that will be affected by the change.
</li><li>Attaching javascript class information to position variables that will make them draggable, droppable, and sortable.</li><li>Providing the framework for a user interface to use this functionality.</li><li>After each sort, the API will recalculate weights of all relevant elements and reassign position information that has changed.
</li><li>Finally, using an AJAX submit process, it will update the position information in the database without reloading the page.</li></ol>
<p>In order to test the API, I will also build a Blocks DnD module that
will incorporate the drag, drop, and sort functionality. This module
will allow users with the right permissions to sort blocks within each
region, as well as moving blocks from region to region.</p>
<p><b>How does this benefit Drupal?</b></p>
<ul><li>By enhancing ease of use, we open the door to a wider range of would-be users and developers.</li><li>By de-emphasizing the need for complex programming, we allow users and developers to focus on style and content.
</li><li>Easily integrated Web 2.0 features makes for an easier sell to prospective clients or a boss.</li><li>Since drag and drop features mimic such popular operating systems
as Windows and OS X, it makes the user interface more familiar and
intuitive to users that are already familiar with functionality.</li><li>And let&#39;s be honest: Drag and drop is really cool!</li></ul>
<p><b>Criteria for Success</b></p>
<ul><li>Creation of the above specified modules.</li><li>Successful functionality on all the most widely used browsers,
including Internet Explorer 6 and 7, Mozilla Firefox and other similar
browsers, Opera 8 and up, as well as Safari.</li><li>Graceful degradation in browsers that don&#39;t support these features.</li></ul>
<p><b>Roadmap</b></p>
<ol><li><i>Now to the end of April</i> - Submit my plans to the Drupal
community to generate feedback and suggestions on how I might enhance
this project and make it truly universal in scope. Completely
familiarize myself with the Drupal structure to ensure that my code is
in line with Drupal coding standards, and to enhance continuity with
the core. Discuss my proposal with developers who engaged in similar or
complimentary work. Examples include the <a href="http://www.drupal.org/project/panels">Panels Module</a>, <a href="http://www.drupal.org/project/mysite">Mysite Module</a>, and any other projects that might be affected or enhanced by this project.
</li><li><i>Beginning of May to the end of June</i> - Complete initial development of Drag Drop and Sort API and Blocks DnD module.  Release for testing and improvement.</li><li><i>Beginning of July to the end of August</i>
 - Implement bug fixes and any improvements.</li></ol>
<p><b>Who am I?</b></p>
<p>Ever since I was young, I have been fascinated with web design.
Having no skill in building things with my hands, I loved the idea of
being able to manipulate a virtual space to suit my fancy or needs.
Ever since then, I have tried to hone my skills and reach for ever
greater control over the virtual environment.</p>
<p>My love affair with Drupal began more than a year ago. After
building many websites with straight html and a little javascript here
and there, I discovered the concept of a CMS. I began searching for the
best CMS to build my online t-shirt store with. I quickly learned that
although a CMS can greatly enhance productivity, they can also be very
difficult to learn. Then I discovered Drupal. Within a couple of days,
I was able to build an initial test store that I was quite happy with.
Since then I have honed my skills and endeavored to learn as much about
Drupal as I could. I have provided feedback for several projects and
have been aching for some time to get my hands dirty with actually
developing a module for Drupal.</p>
<p>I now run several websites off the same code base (a feature I am
quite enamored with). I am ready to take the next step and ride the web
2.0 tidal wave that is sweeping the internet. I am interested in making
Drupal easier to use so that more people will have the opportunity that
I have had to work with such amazing software. I think that my success
in creating the above mentioned enhancements to Drupal will help me
accomplish that goal.</p>
   </div>
            <br>I would appreciate any feedback that you might have for me.<br><br>--<br>Sean<br>