******************************* ******************************* ***Ben Centra - Assignment 3*** ******************************* ******************************* ********* *Concept* ********* Groupie is a concert lookup tool, primarily powered by the Last.Fm API. You give Groupie an artist, and it will find a list of all known concerts featuring the artist, map them, and provide various details about the event. *********** *APIs Used* *********** 1) Last.Fm API (http://www.last.fm/api) - Used for concert lookups and data gathering, both for artists and events. 2) Google Maps API (https://developers.google.com/maps/documentation/javascript/) - Used for plotting concert locations. 3) Twitter API (https://dev.twitter.com/docs/api) - Used for additional artist information in the form of fan tweets. ***************** *Sample Workflow* ***************** Search -> makeArtistQuery() -> parseArtistXML() -> makeEventsQuery() -> parseEventXML() -> addMarkers() -> displayEventInfo() *********************** *Function Descriptions* *********************** makeArtistQuery(), makeEventQuery() - make a call to the Last.Fm API for info about/events for the given artist. Returns XML result. makeTwitterQuery() - make a call to the Twitter API for tweets containing the artist's name. Returns JSON result. parseArtistXML(), parseEventXML(), parseTwitterJSON() - parse the results from the respective queries, stores the important data as JSON objects. addMarkers(), placeMarker() - Add markers to the map for each event by latitude and longitude. Also sets the content for each event's info window. displayEventInfo(), displayArtistInfo() - Display the complete event or artist information using the stored JSON objects. ******* *Notes* ******* - I implemented session storage, both for convenience of repeated searches and as a tool to pass data between functions. - I did not get any "advanced work" in, as I finished this last minute after a weekend out of town. - The Twitter API may seem just thrown in at the last second, but it wasn't. I could just get almost all my needed information from the Last.Fm API alone.