On 13/04/2011 13:50, AAMIR KHAN wrote:
RESTful integration API <http://wiki.apache.org/couchdb/HTTP_Document_API>for Retrieving,Sending and Deleting mails will also be done. The APIs should be designed so as to offer abstraction of mail storage from RESTful APIs.
Not for sending (well retrieving, deleting)
The Project is to be implemented in two phases (layers) : 1) Implementation of CouchDB using Java impl 2) Design of RESTful integration API<http://wiki.apache.org/couchdb/HTTP_Document_API>and implementation for as many targets as i can
2) before 1) :)
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” : “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. 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 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. 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 28 : Test and debug implementation of Couch DB with regressive test. July 1 - July 10 : -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 . Here mail_id will be used to identify a particular unique Email Content. -Test and debug implementation of Retrieving mail API. July 11 - July 20 : -Implement RESTful integration API for Sending mail. This should be done using POST operation of HTTP_Document_API. -This will implement : POST /database_name/ HTTP/1.0 . -Test and debug implementation of Sending mail API. July 21 - July 30 : -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 . Here mail_id will be used to identify a particular unique Email Content. -Test and debug implementation of Deleting mail API. The time line specified above is somewhat adjustable. If i can complete the above mentioned integrations before time, I would proceed with the following API’s integration in order: -Inline Attachments -Multiple Attachments -Stand Alone Attachments -ETags/Caching 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> <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 -1 year experience in web development using PHP,HTML,JavaScript,Postgres,MySQL -Java -Currently developing Chat Client into the Intranet Portal of institute using ejabberd. Also trying to learn Erlang for the same. -C++ -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.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 ).Java applications are built using Struts MVC framework for Java. 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>
--------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org