It’s been a long week working with BuddyPress and the tools around it. As I wrote in some previous posts, my 3rd task is to create a community system that integrates the people involved in GNOME and shows what is being done in the project in real time.
I’m using BuddyPress — a full featured WordPress-based social network system that supports members, activities and groups — to handle all the things together.
Activities and profiles
To do so, I’m making the activities timeline of each user be a big stream of things done in GNOME services. For example, every time I commit something to a GNOME git repository, an item will be added to my profile telling about this commit. The same will happen with bugs, translations etc.
Each user will have a profile with the activities done in the project, some bio text with fields like “where I live” and “where I am right now”, his/her friends and groups.
Keeping the geolocation of each user will allow us to know if lapo is real where in the world are the GNOME participants, instead of using some archaic method.
Also, we aim to have in the home page a featured map with balloons
popping up in real time showing what is happening in the community right
now.
Groups
Once the main GNOME.org website will be available in several languages, there is no point keeping subdomains like br.gnome.org with outdated translated content. With groups in the Community website, users will be able to interact each other and post news.
What’s the status of this?
Since last week I’ve been working hard on planning the features of the Community website, along with the BuddyPress theme. The theme itself is keeping me busier than I though, and I’m going to spend more days on it until I get something decent.
I also spent a lot of time studying BuddyPress and some GNOME systems like BugZilla and Damned Lies in order to know how to get fetch generated data.
How to get activity data
In order to fill the profiles with the activities done in GNOME systems, we’ll need specific code for each system.
For BugZilla, there is XMLRPC communication support. I need to study it a bit deeper, but if I’m not wrong it’s not hard to get all the recent actions so I can execute a script getting it regularly.
For Damned Lies, I can get a feed of actions (like this), but only if I specify a language or a module. Hacking it to provide a global feed of actions (and informing the user email in the feed) would solve the case (Stéphane Raimbault, I’m looking at you :)).
For git, I can use server-side post-receive hook or parse cgit feeds (like this). Still need to study this.
There are some not-very-clear parts, like how to handle received activity of users without registered accounts to the Community website. Maybe we should just ignore it :).
⁂
For this week I’m planning to have something really done regarding the theme and get the geolocation support for users functional.
I’d love to hear some feedback regarding this. Thanks! :)