[ 
https://issues.apache.org/jira/browse/MAILBOX-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13017795#comment-13017795
 ] 

WANG Xing commented on MAILBOX-45:
----------------------------------

Hello everyone,

I want to apply to this gsoc2011 project, and I have written a proposal. Here I 
will attach my proposal.

Proposal Title: Design and Implement Mailbox with NoSQL Storage

Student Name: WANG Xing

Student E-mail: wx DOT wangxiaozhu AT gmail.com

Organization/Project: Apache Software Foundation

Assigned Mentor: rdonkin AT apache DOT org 

 

Proposal Abstract: 

The Apache James Project delivers a rich set of open source modules and 
libraries, written in Java, related to Internet mail communication which build 
into an advanced enterprise mail server.

NoSQL is a term standing for “Not Only SQL”. It is a movement grouping all 
efforts which intend to provide alternative to the standard relational 
databases for storing and processing data. Main characteristics of NoSQL are: 
eventually consistent / BASE (not ACID), schema-free, highly scalable, and 
simple API.

This projects aims at producing as many NoSQL database storage component as 
possible for mail storage. Suitable RESTful API should be designed to provide 
clear and practical interfaces.

 

Detailed Description: 

Key Points

There are some key points that I think I should keep in mind when developing 
this project:

1.       Be fully prepared. Before developing the components, I should read the 
user/developer documents of Apache James Project to understand how it works. I 
should also study the usage of various NoSQL Databases.

2.       Obey the rules. To join in an open source community I should obey the 
rules of it. There are some guidelines to follow, including the code standards, 
naming conventions, testing conventions, and so on. This information can be 
found at http://james.apache.org/guidelines.html. Existing source code of 
Apache James Project should be studied so that the new code can be consistent 
with the existing code.

3.       Fully tested. Unit tests and integration test should be done 
comprehensively.

4.       Fully documented. Documents should be comprehensive and clear enough 
to make sure other developers can easily understand the architecture of the 
code and do modifications to it.

5.       Communications. Keep active communications to the community.

 

Deliverables

1.         An suitable RESTful integration APIUnit tests of Java classes.

2.         3~6 NoSQL targets.

3.         A client application as a test framework.

4.         A test report.

5.         User documents and developer documents.

Timeline

April 25 ~ May 20

1.       Make contacts with the mentor.

2.       Read the user documents and developer documents of Apache James 
Project.

3.       Read the source code of Apache James Project briefly to know the code 
conventions, and the architecture.

4.       Try to use different kinds of NoSQL databases and read the documents 
of them.

5.       Choose the appropriate NoSQL databases to use.

6.       Set up the development environment.

7.       Set up the test framework. Make a rough test plan.

8.       Make detailed design document.

May 21 ~ July 10

Coding and testing. Finish 1~2 database storage components. It depends on the 
development progress. Write related user documents and developer documents.

July 11

Mid-term evaluation

July 12 ~ August 14

Continue coding and testing. Finish 2~4 database storage components. Write 
related user documents and developer documents.

August 15 ~ August 21

Improve the code, tests, and documents.

August 22

Final evaluation.


Additional Information:

Biography

I’m Wang Xing from Nanjing University, China. I’m in my third year of the 
undergraduate study. I am familiar with Java development, including the Struts2 
+ Spring + Hibernate frameworks. QR Marks the Spot is a website that my 
teammates and I developed, and you can visit it from here: 
http://173.255.212.167/my_qrms/

I have strong interest in distributed systems. And I am now working on a 
national project in a research team of the CS department of my school. This 
project is about making a cloud system that can provide services of various 
data mining tasks. Because of these, I am very interested in cloud computing 
and NoSQL databases. I hope this experience in Google Summer of Code and Apache 
James project can be an opportunity for me to learn NoSQL technologies and a 
start of joining in an open source community.

> [gsoc2011] Design and Implement Mailbox with NoSQL Storage
> ----------------------------------------------------------
>
>                 Key: MAILBOX-45
>                 URL: https://issues.apache.org/jira/browse/MAILBOX-45
>             Project: James Mailbox
>          Issue Type: New Feature
>            Reporter: Eric Charles
>            Assignee: Norman Maurer
>              Labels: gsoc2011
>
> Context: The mailbox subproject (http://james.apache.org/mailbox/) supports 
> maildir, SQL database (via JPA) and Java Content Repository (JCR) as 
> technology for mail storage. This flexibility is achieved thanks to a API 
> design that abstracts mail storage from the mail protocols.
> Task: NoSQL storage (for example CouchDB or Cassandra) has great potential 
> for mail storage. Design and develop an suitable RESTful integration API and 
> implementations for as many NoSQL targets as possible in the time.
> Mentor: rdonkin at apache dot org
> Complexity: easy 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to