Web Development Blog

Building mashups for the society (Mashup Australia) – Part I

When someone says “mashup”, 90% of people in the room think of google map. And true enough, when we participated in the Mashup Australia contest, all three mashups/apps that we built make use of google map. Now lets hear about our experiences in building mashups for the Mashup Australia contest.

The first mashup that we built is Centrelink Offices Near You. It’s an iPhone web application which makes use of the Geolocation API to find out nearby Centrelink offices. Geolocation is supported by iPhone Safari browser and therefore, it allows users to provide their location to web applications accessed via the browser.

What is special about this app?
The overall goal of this app is not different to many other apps that are already available – find places close to your current location (be it offices, schools, cafes, stores, public toilets, bus stops, etc). However, the beauty of this app is that rather than having to tell the app where you are by entering your postcode or an address, it automatically detects your current location using the built-in Geolocation capabilities. This is also very handy when you are on the go but you don’t necessarily know where you are. We wanted to build an app that is not already in the market, and one that will showcase what new technologies could bring without impacting the overall goal. We also wanted to support the Government 2.0 Taskforce initiative and show just why open access to Australian government data and information are good for the country’s economy, society and consumers.

Technologies we use

Google Map API
We use Google Map API 3 for map integration. This is the first time we use the JavaScript API because it is designed to load fast, and therefore works well on Javascript-enabled mobile devices such as Android and iPhone. It also supports User Agent detection which we use in our app to detect whether the user is using iPhone or not. Check out demo gallery to learn more about the functionalities the API offers.

iUI Framework
To obtain the look and feel of a native iPhone app for our web app, we use iUI: iPhone User Interface Framework. We have used iUI for all our iPhone web applications and it’s pretty good. Just a few negatives that we noticed with iUI framework are that it invalidates your markup because it uses a proprietary attribute selected="selected" on div elements and form input elements look quite out of place on any browsers other than Safari. Other than that, it’s very easy-to-use, dynamic and has a lot of examples on the web.

LAMP Environment
We use LAMP environment which consists of Linux, Apache Web server, MySQL database and PHP Server-side language. The high-level architecture is pretty simple; a MySQL database that contains data about centrelink offices in the country with geo-location information, a web application in PHP that queries the database for centrelink offices close to a specified geo-location, and a RESTful web service that returns an HTML result onto your mobile phone. The RESTful web service also returns data in KML format for using it in another application, eg: Google Earth.

Using the exact same code and technologies used in this application, we applied it to another dataset (Medicare Offices in Australia) to demonstrate the reusability and adaptability of the concept and code. The end result is Medicare Offices Near You, the 2nd entry we submitted for Mashup Australia.

Part II will talk about Google Map + Flickr + Wikipedia mashup that we built, called Historic Australia – Interactive Photos Map.

If you like our apps, you can vote for us at the Mashup Australia website: Centrelink Offices Near You, Medicare Offices Near You and Historic Australia – Interactive Photos Map.

3 thoughts on “Building mashups for the society (Mashup Australia) – Part I

  1. Chi Cheng: I have come across iwebkit before, but have not used it. Would you recommend it?

    Nice app you have got there. What sever-side language are you using?

  2. @eisabai:
    I don’t use server script at all, I use client-side database for information storage and offline cache for speeding up.

    In fact, these UI frameworks are ready for simple apps. :( None of them support fixed position bars. :(

Comments are closed.