Hi,

The idea of RESTful is to let communicate a client system with a server system via HTTP, transfering request parameters as http_request_params, getting response ax structured document (xml or json) in the http_response_body.

You can read more on http://en.wikipedia.org/wiki/Representational_State_Transfer

Couchdb has such an API (http://wiki.apache.org/couchdb/HTTP_Document_API)

It seems you are good at sprint :) (you are just in time for the deadline).

You could outline in your application that event if the first implementation will be for couchdb, the RESTful "framework" will be designed to support other datastores. Therefor, 1 week design before the 8 weeks (becoming 7 weeks) would be good.

Hopes this help.
(Don't wait to register and inject this on google melange, you can always update it after).

- Tks,
Eric


On 8/04/2011 00:49, AAMIR KHAN wrote:
I would like to have valuable suggestions over my proposal..

On Fri, Apr 8, 2011 at 4:18 AM, AAMIR KHAN<ak4u2...@gmail.com>  wrote:

*
  Proposal Title: Design and Implement Mailbox with CouchDB storage.

Student Name: Aamir Khan

Student E-mail: ak4u2...@gmail.com

Organization/Project: James Mailbox Apache Software Foundation

Assigned Mentor: Robert Burrell Donkin (rdon...@apache.org )

Proposal Abstract:
CouchDB is non-relational, semi-structured database having great potential
for mail storage. My project is to design and implement mail storage in
James Mailbox using CouchDB. RESTful integration API will also be done.

Detailed Description:

Why?

lets consider a example Mail:

“From” : “ak4u2...@gmail.com”
“To” : “server-dev@james.apache.org”
“Subject” : “Implementation of CoucheDB”
“Body” : “Implementation Proposal”

All the messages like the one stated above will be stored as a flat
collection in CouchDB. Since the mail contents are generally semi structured
thats why CouchDB is most preferable database for the same.

Distributivity:

Since CouchDB is a distributed system. We can have multiple independent
copies of mails to different servers (faster performance) and whenever we
want we can redistribute changes bidirectionally.It is also helpful if one
of the mail server fails then other backup servers can fulfill the requests.

How?

Road Map

0) Code Familiarity : Already started and going.
1) Programming : 8 Weeks
2) Review and Testing : 1 week
3) Bug Fixing Time : 1 week
4) Documentation : 1 week
5) Buffer Time for any unpredicted delay and Second phase of testing : 1
week

Deliverable&  Project Schedule

April 25-May 23(Community Bonding Period) :
               I would be in constant touch with my mentor and james mailbox
community as a whole. I would discuss further about the project with my
mentor and keep posting about implementation plans over the main
server-dev@james.apache.org mailing list. Finalise the design for
implementation of CouchDB after discussion with whole community.

May 24 - 20 June :

Implement the finalised plan for Couch DB.

June 21 - June 28 :

Test and debug implementation of CouchDB with regressive test.

July 1 - July 10 :

-Implement RESTful integration API for Retrieving mail.
  -Test and debug implementation of Retrieving mail API.

July 11 - July 20 :

-Implement RESTful integration API for Sending mail.
  -Test and debug implementation of Sending mail API.

July 21 - July 30 :

-Implement RESTful integration API for Deleting mail.
  -Test and debug implementation of Deleting mail API.

August 1-August 15 (Buffer Time):

Second phase of testing: Testing of debugged code.

August 15-August 22:

-Work on Documentation.

-Finally discuss the project with mentors.

-Debugging the bugs (if any reported by Mentor)

-Improve the Documentation, Release.

August 22 - August 26 :

-Final Evaluation Submission


Available Time
I am committed to giving at least 40-50 hours per week to GSOC. Since I am
not doing anything this summer, I believe that the time devoted to GSOC will
be much more than that, for sure. I have excellent work ethics, and a goal
oriented guy.


Additional Information:

Bio
I am 19 years old. I live in India.Studying at one of the most premier
institute in India namely Indian Institute of Technology 
Roorkee<http://www.iitr.ac.in/>pursuing my Bachelor of Technology Computer 
Science&  Engineering.I have
took courses like Computer programming in C++ at school and college levels.I
have started serious problem solving around two months back.I have also
worked in PHP as mentioned in experiences.I have got prizes in various
website designing competitions at school&  college levels.

I like to contribute in open  source communities because it gives me
experience,technical expertise and it teaches spirit of team work. And its
my time to give back to community from which i gained a lot of experience
and motivation.

You can have a look over my 
Resume<https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BxMbL0XOZUogOGI5NWM0MTctYjUwMy00MTM2LTljZjEtZmRhYjM3ZjcyMzlk&hl=en&authkey=COmbsIQC>


Experiences

Skills:
-Working Knowledge of GIT
-1 year experience in web development using
PHP,HTML,JavaScript,Postgres,MySQL
-Have knowledge of Design Patterns
-Working Knowledge of PHP

I, as a part of team manages institutes website www.iitr.ac.in
We have setup a intranet portal (totally managed by students) inside campus
of IIT Rookee which has around 80 applications (mostly in PHP) hosted on
it.I have created Ebooks sharing portal within the intranet.I have very good
experience in web designing (e.g, I have created website during last year
summer internship www.raysconsultants.com ).

Open Source contributions
I have submitted following patches in PhpMyAdmin :
1)XML export of 
views<https://sourceforge.net/tracker/?func=detail&aid=3258216&group_id=23067&atid=377410>
2)XML Plugin for database 
Export<https://sourceforge.net/tracker/?func=detail&aid=3135414&group_id=23067&atid=377410>
3)Left Frame not 
updated<https://sourceforge.net/tracker/?func=detail&aid=3091778&group_id=23067&atid=377410>

<https://sourceforge.net/tracker/?func=detail&aid=3091778&group_id=23067&atid=377410>
Thanks
Aamir Khan
*



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to