Google Summer of Code proposal
Subject |
Simple Social Networking for Roller blog server |
Subject ID |
roller-activities |
Author |
Vivien Barousse |
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 :
- Setting up a new table, containing status messages entries
Using the already-existing blog-entries table, "using a different category scheme so that they can be omitted from standard blog feeds." (proposed here http://wiki.apache.org/general/SummerOfCode2008#roller-activities)
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 :
- Last status update
- List of status updates
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 :
- List of following
- List of followers
- Following status updates
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 :
- People which are following you
- People your followers are following
- People your following are following
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
- Blog template macros to update status, to display activities, friends activities, people you are following, people following you.
- A new Manager to configure bloggers you are following and Twitter account.
- Panels into Manager, for social networking features.
- Appropriate technical documentation.
- User documentation, to help bloggers setting up activities on their blogs.
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).