[
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]