james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From AAMIR KHAN <ak4u2...@gmail.com>
Subject Re: Anybody willing to mentor for GSoC
Date Thu, 14 Apr 2011 12:26:44 GMT
This is modified proposal and i want to edit my original proposal over
google-melange site if mentor permits me to do so.

On Thu, Apr 14, 2011 at 5:55 PM, AAMIR KHAN <ak4u2009@gmail.com> wrote:

> As i talked with Eric who earlier wanted to co-mentor me, He asked me to
> find a new mentor because he is much busy with other projects.
>
> So, I am asking over mailing list if anybody else is willing to mentor me
>
> *Modified proposal for project :*
> *
> *
> *
> Proposal Title:
> Design and Implement Mailbox with CouchDB storage.<https://issues.apache.org/jira/browse/MAILBOX-45>
>
> Student Name:
> Aamir Khan
>
> Student E-mail:
> ak4u2009@gmail.com
>
> Organization/Project:
> James Mailbox Apache Software Foundation
>
> Assigned Mentor:
> Robert Burrell Donkin (rdonkin@apache.org )
>
> Proposal Abstract:
> Since most of the mail contents are semi-structured in nature.CouchDB is
> non-relational, semi-structured database having great potential for mail
> storage. Main beneficial characteristics include consistency,simple APIs and
> high scalability. My project is to design and implement mail storage in
> James Mailbox using CouchDB on the same level as JPA(Java Persistence API)
> and JCR(Java Content Repository) to serve as drop-in replacement for SQL
> storage. RESTful integration API
> <http://wiki.apache.org/couchdb/HTTP_Document_API>for Retrieving and
> Deleting mails will also be done. The APIs should be designed so as to offer
> abstraction of mail storage from RESTful APIs.
>
> The Project is to be implemented in following phases :
> 1) Design of RESTful integration API<http://wiki.apache.org/couchdb/HTTP_Document_API>and
implementation for as many targets as i can
> 2) Implementation of CouchDB using Java impl
> 3) Development of RESTful integration API.
>
> As suggested by Norman i think this project could be very helpful in
> development process. http://code.google.com/p/ektorp/
>
>
>
> Detailed Description:
>
> Why?
>
> Lets consider a example Mail:
>
> “From” : “ak4u2009@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.
>
> Then various RESTful APIs can be used to access mail storage.
> e.g.) GET /database_name/mail_id HTTP/1.0
>         POST /database_name/ HTTP/1.0
>         DELETE /database_name/mail_id?revid=current_version  HTTP/1.0
>
> 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) Design : 1 week
> 2) Programming : 7 Weeks
> 3) Review and Testing : 1 week
> 4) Bug Fixing Time : 1 week
> 5) Documentation : 1 week
> 6) Buffer Time for any unpredicted delay and Second phase of testing : 1
> week
>
> Deliverable & Project Schedule
>
> I tried for exploring JPA source :  jpa/src/main/java/org/apache/james/mailbox/jpa
>
> <https://svn.apache.org/repos/asf/james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/>and
> found that already existing APIs include :
> deleteEverything,MailboxMembership,createMailboxMapper,createMessageMapper
> and other session handling handling functions.
>
> So,I think APIs to be built should include Session Handling
> features,Creation and deletion of Mailboxes,Retrieving and deletion of mails
> from Mailbox,Attachment features,Caching of messages etc.
>
>
> 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. Discuss the design for
> implementation of CouchDB after discussion with whole community.
>  -Discuss the implementation procedure of MailBox Creation,Deletion and
> SessionManager class.
>
> May 24 - May 31 : Finalise the design for implementation of CouchDB after
> discussion with whole community.
>
> June 1 - 20 June :
>
> Implement the finalised plan for Couch DB. This would be done by
> implementing Java impl classes for Couch DB.
>
> June 21 - June 25 :
>
> Test and debug implementation of Couch DB with regressive test.
>
> June 26 - July 30 :
>  -Implement RESTful integration API for Retrieving mail. This should be
> performed using GET operation at the document’s URL.
>
> -This will implement : GET /database_name/mail_id HTTP/1.0<http://wiki.apache.org/couchdb/HTTP_Document_API#GET>.
Here
> mail_id will be used to identify a particular unique Email Content.
>  -Test and debug implementation of Retrieving mail API.
>
> -Implement RESTful integration API for Deleting mail. This should be done
> using DELETE operation of HTTP_Document_API.
>
> -This will implement : DELETE /database_name/mail_id?revid=current_version
>  HTTP/1.0 <http://wiki.apache.org/couchdb/HTTP_Document_API#DELETE> . Here
> mail_id will be used to identify a particular unique Email Content.
>  -Test and debug implementation of Deleting mail API.
>
> -Implement RESTful integration API for Inline Attachments.
>
> -Test and debug implementation of Inline Attachments API.
>
> The time line specified above is adjustable. If i can complete the above
> mentioned integrations before time, I would proceed with the following API’s
> integration in order:
>
> Attachments :
> <http://wiki.apache.org/couchdb/HTTP_Document_API#Attachments>
> -Multiple Attachments
> -Stand Alone Attachments
>
> Caching :
> -ETags/Caching
>
> -Creation and Deletion Mailbox
> -Session Manager Class
>
>
> 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.
>
> Progress Till Now :
> I tried building James mailbox using Maven but build failed because of bug
> in mailbox-integration-tester trunk for which JIRA ticket<https://issues.apache.org/jira/browse/MAILBOX-52>has
been opened.
> I also explored little about JPA source code to find the implemented APIs.
>
> Additional Information:
>
> Bio
> I am 18 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>
> <https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BxMbL0XOZUogOGI5NWM0MTctYjUwMy00MTM2LTljZjEtZmRhYjM3ZjcyMzlk&hl=en&authkey=COmbsIQC>
> <https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BxMbL0XOZUogOGI5NWM0MTctYjUwMy00MTM2LTljZjEtZmRhYjM3ZjcyMzlk&hl=en&authkey=COmbsIQC>
> Experiences
>
> Skills:
> -Working Knowledge of GIT,SVN
> -2 year experience in web development using
> PHP,HTML,JavaScript,Postgres,MySQL
> -Java Struts MVC little knowledge
> -Currently developing Chat Client into the Intranet Portal of institute
> using ejabberd. Also trying to learn Erlang for the same.
> -C++ programming
> -Problem Solving Skills,developed by practicing over websites like SPOJ,UVA
> etc.
> -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 & Java) hosted on
> it.Java applications are built using Struts MVC framework for Java. 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>
> *
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message