[development] Call for action: Drupalize Google's SoC Mentors App

Angela Byron drupal-devel at webchick.net
Sat Mar 29 02:08:24 UTC 2008


(Larry, I cc'ed you because dmitri said you'd done this before and 
thought it would be a good idea ;))

So as those who've participated in Summer of Code as a mentor before 
know, the web app that Google provides for ranking/reviewing 
applications is a little bit ... suboptimal. The view of applications it 
provides isn't sortable, it's not possible to see when applications are 
updated, or when new comments have been posted, or... And unfortunately, 
the person on Google's side of things who's in charge of making 
incremental improvements is out on medical leave, so the tool we have is 
about all we're going to get.

This is a great opportunity for Drupal to shine, however. With Views, 
CCK, VotingAPI, and a couple other add-on modules, it'd be possible to 
whip up a very comparable web app, only with tons more features such as 
  a "new" indicator, the ability to sort applications by last updated 
time, the ability to tag applications, etc. And if we did this with 
something like Organic Groups, we could potentially build infrastructure 
for all 175 open source mentoring organizations to use Drupal, plus take 
some much-needed weight off the Google admins who are busy with other 
organizational things. Nice way to build positive relationships in the 
open source community.

Functionality is as follows (rough outline):
- "Organization" node type (Organic group); one for each of the orgs 
listed @ http://code.google.com/soc/2008/
- User import of list of Organization Members 
(http://code.google.com/soc/2008/drupal/mentors.html) -- I think only 
admins can see this screen.
- "Application" node type with fields for (starred ones are the 
important ones):
    - Title*
    - Student*
    - Student Email*
    - Student Major
    - Student Degree
    - Student Graduation (year)
    - Student Home Page
    - Student Blog
    - Student IM
    - Assigned mentor (userreference)*
    - Abstract*
    - Description*
- Probably a "Tags" vocab on that application node type as well, so 
people can group them.
- A View that displays a list of applications with columns for sorting 
by things like "last updated time", "title", "student", and "assigned 
mentor"
- The ability to vote on applications and display a score. In the Google 
app, this will be basically a +1/-1, or a +4 ("I want to mentor") or a 
-10 ("Ineligible"). Maybe those last two could be flags instead and we 
could just use Vote Up/Down module?
- The web app has both private and public comments. Not sure how we 
could do this in Drupal off-hand.
- A bunch of data import crap to synchronize stuff between Drupal and 
Google.

This is the tricky part: sucking in (and ideally, synchronizing) data 
between Google's app and the Drupal side. For example, when I post a 
comment on Drupal, it ought to show up in the Google app and vice-versa. 
  When an application is updated on Google's side, it ought to update it 
on Drupal's side as well. But at a minimum, we basically would need to 
"screen scrape" information off Google's end and suck in applications as 
nodes.

I was pointed in IRC at dataminerapi, which looks awesome. However, I 
won't have time this weekend to monkey with this at all, and ideally we 
need a solution built by *Monday*. :\ Dmitri's offered to pick up the 
ball and run with it.

a) Anyone have time to help him with that?
b) Can anyone give us some advice on how to do the 
screen-scraping/synching? Have some sample code? etc.?

-Angie


More information about the development mailing list