Differences between revisions 1 and 2
Revision 1 as of 2009-04-02 08:35:48
Size: 5754
Editor: ip565deb98
Revision 2 as of 2009-09-20 23:35:29
Size: 5754
Editor: localhost
Comment: converted to 1.6 markup
No differences found!



Add Twitter like activities to Roller, allowing users to follow each others activities and be followed on their own. Implement Shindig into Roller, enabling users to authenticate using the OpenSocial API.


Floris Marc Arden Erich

Student e-mail

florisjuh [AT] gmail [DOT] com

Student Major

Currently studying Computer Science at the Hogeschool van Arnhem en Nijmegen (HAN University of Applied Science).

Student Degree

None achieved yet

Student Graduation

Non achieved yet


The Apache Software Foundation - Roller

Assigned Mentor


Add an activities system into roller implementing a "publish-subscribe" approach to make users able to follow other users and be followed themselves. Implement Shindig to support the OpenSocial API. Consider adding a mobile interface for the activities system so users can update their activities "on the move".

Detailed Description

In this project I will be implementing a Twitter like social networking system in Roller. Twitter is a service which allows users to use "micro blogging" to publish short pieces of information (Twitter limit: 140 characters) to the Internet. You may be followed by others, which means others will be able to see all the updates you add to the system. You are able to follow others as well, meaning you will be able to get a digest of all the updates your friends make. Considering the 140 character limit, Twitter-like systems are also perfectly suitable to be used to chat user to user in public. In twitter this is done by addressing a user using an @ tag.

While implementing Twitter like activities into Roller, I will be keeping close track on the changes and updates made to Twitter itself, considering Twitter is the Role model for the Twitter like activity system in Roller.

Next to implementing Twitter like activities into Roller, I will also be incorporating Shindig, to implement the OpenSocial API into Roller. This should make it easier for users to interact with Roller.

Draft timeline

Note: I hope to use an agile approach to development, for more information regarding this, please visit www.agilemanifesto.org.

Week 1

  • Establish a product backlog consisting of all the features to be added
  • Explore the Roller codebase and get it to compile on my system
  • Consider which changes are needed to the data model of Roller to incorporate Twitter like activities

Week 2-7

  • Start implementing Twitter like activities
  • Keep in touch with the community to maintain the product backlog
  • Implement the OpenSocial API using Shindig

Week 8-10

  • Refactoring code based on community and mentor feedback
  • Add a mobile interface to the activities system

Where's testing, deployment, design?

Using a Scrum like approach, all these steps will be executed on weekly base. This means every week of development, a new version of the software will be released, which is aimed to be of much higher quality than a regular nightly build.

Additional Information about me

Studying Computer Science at the HAN University of Applied Sciene, Arnhem, The Netherlands. Currently enrolled in my second year, which consits of two semesters. At the HAN, every semester, except for those in the freshman year, consists of two courses (running simantaniously for nine weeks) and one project (fulltime for nine weeks).

I'm currently following the semester “Making high Performance Networking Applications”, which consists of two courses: Network Programming and Operating Systems. In the course Network Programming students get teached on various basics of networking such as protocols, as well as writing networking applications in C, such as servers. The course Operating Systems teaches students how to use specific functions of operating systems in their applications. Some of the subjects featured are using forks, threads, system I/O and dealing with shared resources.

My previous semester was “Developing Distributed Object Oriented Applications”, which consisted of two courses, the first being Engineer an OO Application, in which I learned various aspects of “Developing by Design”, centered around designing software using UML. The second course was Developing Distributed Applications, which centered around using Java EE and various tools in order to develop applications using threads and grids. In the project for this semester I worked together with four other students on creating a server application which purpose is to provide route calculations. Another team worked on a client application which used Wifi networks to calculate a position and allowed the user to navigate inside a building.

During the freshman year students were teached the basics of programming using Java SE, as well as a limited amount of SQL, VBScript, PHP and Robotics.

I have been observing Open Source developments for some time now, however until now I have not had the oportunity, or well, courage, to dive into a project.

I'm very comfortable writing in Java, in which, I think it's safe to say, I have a good amount of knowledge of both the SE and EE editions. I have written a lot of PHP, however this is not one of my favorite languages because I dislike not having a compiler and the weak type system. I have plenty of experience with C, because years ago I used to be a follower of a mod for a video game written in C, in which I always studied the patch files posted on Trac, and now I am following a semester which uses a lot of C code. I'm not really fond of C either, because I prefer Object Oriented programming paradigms.

SoC2009/FlorisErich-Roller-SocialProposal (last edited 2009-09-20 23:35:29 by localhost)