You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by AAMIR KHAN <ak...@gmail.com> on 2011/04/14 14:25:39 UTC

Anybody willing to mentor for GSoC

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>
*

Re: Anybody willing to mentor for GSoC

Posted by AAMIR KHAN <ak...@gmail.com>.
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 <ak...@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>
> *
>

Re: Anybody willing to mentor for GSoC

Posted by Aamir Khan <ak...@gmail.com>.
I got no reply from you Norman!



-- 
Aamir Khan
Indian Institute of Technology Roorkee,
Roorkee, Uttarakhand,
India , 247667
Phone: +91 9557647357
email:   aamirec@iitr.ernet.in <ni...@iitr.ernet.in>
            ak4u2009@gmail.com <ni...@gmail.com>

Re: Anybody willing to mentor for GSoC

Posted by AAMIR KHAN <ak...@gmail.com>.
On Sat, Apr 16, 2011 at 12:41 AM, Norman Maurer <no...@apache.org> wrote:

> Hi Aamir,
>
> let me think about if I have enough time. I will come back to you
> tommorrow..
>
Thanks Norman.
I was loosing hope otherwise.

>
> Thanks,
> Norman
>
> 2011/4/15 AAMIR KHAN <ak...@gmail.com>:
> > Anybody else?
> >
> > On Fri, Apr 15, 2011 at 3:37 AM, Robert Burrell Donkin <
> > robertburrelldonkin@gmail.com> wrote:
> >
> >> On Thu, Apr 14, 2011 at 1:25 PM, AAMIR KHAN <ak...@gmail.com> wrote:
> >>
> >> Hi Aamir
> >>
> >> > 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
> >>
> >> My computer time is very limited ATM so I'm not really able to
> >> co-mentor any more projects that I've already committed to. Sorry :-/
> >>
> >> (It's really important with GSOC to apply in plenty of time)
> >>
> >> Robert
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> >> For additional commands, e-mail: server-dev-help@james.apache.org
> >>
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
>
>

Re: Anybody willing to mentor for GSoC

Posted by Norman Maurer <no...@apache.org>.
Hi Aamir,

let me think about if I have enough time. I will come back to you tommorrow..

Thanks,
Norman

2011/4/15 AAMIR KHAN <ak...@gmail.com>:
> Anybody else?
>
> On Fri, Apr 15, 2011 at 3:37 AM, Robert Burrell Donkin <
> robertburrelldonkin@gmail.com> wrote:
>
>> On Thu, Apr 14, 2011 at 1:25 PM, AAMIR KHAN <ak...@gmail.com> wrote:
>>
>> Hi Aamir
>>
>> > 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
>>
>> My computer time is very limited ATM so I'm not really able to
>> co-mentor any more projects that I've already committed to. Sorry :-/
>>
>> (It's really important with GSOC to apply in plenty of time)
>>
>> Robert
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
>> For additional commands, e-mail: server-dev-help@james.apache.org
>>
>>
>

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


Re: Anybody willing to mentor for GSoC

Posted by AAMIR KHAN <ak...@gmail.com>.
Anybody else?

On Fri, Apr 15, 2011 at 3:37 AM, Robert Burrell Donkin <
robertburrelldonkin@gmail.com> wrote:

> On Thu, Apr 14, 2011 at 1:25 PM, AAMIR KHAN <ak...@gmail.com> wrote:
>
> Hi Aamir
>
> > 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
>
> My computer time is very limited ATM so I'm not really able to
> co-mentor any more projects that I've already committed to. Sorry :-/
>
> (It's really important with GSOC to apply in plenty of time)
>
> Robert
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
>
>

Re: Anybody willing to mentor for GSoC

Posted by Robert Burrell Donkin <ro...@gmail.com>.
On Thu, Apr 14, 2011 at 1:25 PM, AAMIR KHAN <ak...@gmail.com> wrote:

Hi Aamir

> 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

My computer time is very limited ATM so I'm not really able to
co-mentor any more projects that I've already committed to. Sorry :-/

(It's really important with GSOC to apply in plenty of time)

Robert

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