Claudio Cherubino's blog Life of a Googler

9Mar/110

Dissecting the Google Developer Advocate Team page

One of the side projects I worked on at the end of last year is the Google Developer Advocate Team page, a web application that provides bios for all members of my team and allows to track the public events we are going to attend.

We'll probably end up open-sourcing the code but I've already got questions about the technologies adopted so I decided to write this post to explain some of the design choices.

The application is written in Java and runs on App Engine, which provides scalability and simple deployment and administration.

One of the main requirements when designing the application was that it had to seamlessly integrate into our existing workflow in order to be as easy as possible for Google advocates to insert their events. Internally we use Google Calendar to track our trips and speaking opportunities so it was straightforward to use the Calendar Data API to fetch data from a shared calendar.

A cron job periodically checks that calendar, parses new events to extract the relevant info (date, time, location, speakers, products, description) and updates the Datastore using JDO.

Advocates' profiles are stored in a Google Spreadsheet which we can internally update using a simple web form. The public page uses the Spreadsheets Data API to get the relevant pieces of information and display them.

The Google Developer Events Calendar page embeds a Google Map using JavaScript and uses the Geocoding API to map event locations to geographical coordinates that can be pinned to the map or searched for.

Want to see your face in the Google Developer Advocates page? We are hiring!