Google Summer of Code proposal

Subject

Simple Social Networking for Roller blog server

Subject ID

roller-activities

Author

Vivien Barousse

Email

barousse.vivien@gmail.com, vivien.barousse@supinfo.com

IM

barousse.vivien@gmail.com (MSN, GTalk)

Project title

Simple Social Networking for Roller blog server

Project description

The goal of this project is to enable Twitter-like Activities (aka status messages) with following, followers, optional 140-character text limit into the Roller blog server.

The second aim would be the integration other micro-blogging features, such as rating system, channels and friends circles.

Project details

This project will present the following objectives :

1. Allow the user to display status messages

This could be done in two diferents ways :

Once the data stored, the second step will be the creation of theme and template macros to dislay status messages into roller blog's pages :

The user will also need a new Manager to update his status.

2. Allow the user to follow other bloggers' status updates

This can be done by a join table, containing both the followers and the followed.

The manager should be updated to allow the user adding bloggers in the "friend-list", and new themes/macros should be created to access this data :

3. Rating system

(Original idea : Dyagilev Aleksey on dev@roller.apache.org mailing list here)

According to original Dyagilev's mind, "The more followers you have the higher you are in rating.".

Following this idea, this can be represented into the Manager with a "Popular peoples" panel, showing x firsts peoples ordered by followers count.

This could also be done by creating new themes/macros to access this list into any page.

4. Channels

(Original idea : Dyagilev Aleksey on dev@roller.apache.org mailing list here)

This feature should allow people to post updates into channels.

Channels can be represented as blogs, and channels members as blog authors. In this case, all updates posted into this channel will appear into this blog.

5. Circles

(Original idea : Dyagilev Aleksey on dev@roller.apache.org mailing list here)

This feature may help people finding acquaintances.

This feature could be implemented into the status updates manager.

This can be represented like Facebook does, with a "People you may know" panel. This peoples could be :

All these results can be ordered by rates, according to the "Rating system".

The panel could be represented with concentric circles, with you in the middle, your following in the first circle, the following of your following in the second, and continuing, according to the Dyagilev's idea.

Deliverables

Project schedule

April 14 - May 25

According to the Google Summer of Code time line, this month is dedicated to "Community Bonding Period".

My personal goal is to get familiar with Roller development. I already used to develop applications with Struts, so I will go deeper into Roller's code to be ready to work on this project as soon as possible.

May 26 - June 30

During this first part of active work, I plan to work on basics of Roller Activities project.

The aim of this first month will be the integration of basics features, such as Updates and Following/Followers.

July 1 - July 14

July 14 is corresponding to the middle of the Google Summer of Code program.

These two weeks will be dedicated to the rating system implementation.

July 15 - July 31

During this period, I plan to implement the "Channel" feature.

August 1 - August 11

At last, this ten last days of active work will be dedicated for the "Circle" feature implementation.

August 11 - August 18

Google's suggested "pencils down" period. Test deeply every piece of the project, and correct bugs. Writing user documentation.

About me

I'm currently a 19 years-old student at SUPINFO, the International institute of information technology, in France. Thanks to a particular program in my school, I'm also a trainer and I give some recitation to other students in Java technologies (including Struts framework).

This is the first time I contribute to an open-source project, but I'm very interested in open-source development. I already used Roller to deploy some blogs, and I enjoy contributing to a project I already used.

I already does some projects for my school, using Java programming language and Java EE frameworks (including JSP, Taglibs, Struts, JSF and EJB).