240 likes | 425 Views
VENUE FINDER. This application provide up to date information of locations where particular music events are taking place on an specific date. The application has been designed to be extremely easy to use. VENUE FINDER. THE GOOGLE CLOUD.
E N D
This application provide up to date information of locations where particular music events are taking place on an specific date. The application has been designed to be extremely easy to use VENUE FINDER
The project is a mashup that has been developed in Python, one of the as the development languages for Google App Engine webapp framework. It is using RESTful web services from: Last FM that provide a JSON or and XML feed, which is later displayed on a Google Map using Django templates. THE APP
Music Remix was initially used as a an alternate version of a song. Mashup brings together elements of two or more songs, creating a new musical composition combining two or more songs. Web 2.0 Mashup is an application that combines data from disparate sources. MASHUP
Last FM:(geo.getEvents) gets all events in a specific location by country or city name. Does not require authentication and the only required parameter is api_key. XML feed translated into a JSON format with the format=json parameters Google Map uses URL requests to access geocoding, directions, elevation, places information from client applications and manipulate the results in JSON or XML. THE WEB SERVICES
main.py def post(self): venue = self.request.get('venue') artist = self.request.get('artist') logging.info('Searching for venue ='+venue) if venue == '' or artist == '': doRender( self, 'search.htm', {'error' : 'Please specify a city and an artist'} ) else: liGeoLoc = query_artist(venue, artist) xLoc=(liGeoLoc[0])['geo:lat'] yLoc=(liGeoLoc[0])['geo:long'] WEB SERVICES: LAST FM
main.py def query_artist(venue, artist): ArtistList = {} url = "http://ws.audioscrobbler.com/2.0/?format=json&method=geo.getevents&location=%s&api_key=b25b959554ed76058ac220b7b2e0a026" % venue venueResult = parseJSON(url) LiGeoLoc = [] for diEvent in venueResult['events']['event']: if diEvent['title'].lower().find(artist.lower()) != -1: liGeoLoc.append(diEvent['venue']['location']['geo:point']) return liGeoLoc WEB SERVICES: LAST FM
_base.htm $(document).ready(function() { $('#map').jmap('init', { mapCenter:[53.347268,-6.259205], mapShowjMapIcon: false, mapZoom: 12, mapEnableScaleControl: true, mapControlSize: 'large' }); $('#map').jmap('addMarker', { pointLatLng:[{{xLoc}}, {{yLoc}}], }); WEB SERVICES: GOOGLE MAP
Clouds alternative of Google App Engine would be other plaftorms such us Amazon EC2 or Windows Azure. App Engine provides a restricted runtime environment but it also offers a runtime environment that scales indefinitely, and will scale as big as you want it to. Azure provides a slightly less constrained environment, which lets you write a wider array of apps, but requires you to write more code Amazon EC2 provides the ultimate do-it-yourself solution. They provide the hardware, and the storage, and not much else. CLOUD ALTERNATIVES
THANKS Ricardo José Flores Galán 10205403