Dmitri Gaskin wrote:
(I also cc'd you, Matt ;))
So another tricky thing - there are two types of comments - public comments and private comments.
There is a distinction because public comments are student-visible, and private comments, and edits may only be made after a public comment is posted.
And FYI this app is only for mentors and administrators.
Yep. Don't get too hung up on those details though; we can always refine and improve this tool over time once it's written. :) The main thing is to make it so any mentoring organization can login to this Drupal site, and access an admin panel that's a nice sortable table view of all their apps, synchronized with Google. Everything else is icing on the cake.
On Mar 28, 2008, at 7:08 PM, Angela Byron wrote:
(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