The GP Finder App was created by one half of the Cyber-Duck team as part of the Spring Hackathon, hosted on Google Campus in London. "Team WCL" (wireless connection lost!) designed and created a responsive web application which helps users locate their most convenient GP Surgeries to them based on travel time and selected preferred transport methods.

We built a responsive web application to help people find their nearest GP surgeries. The results are displayed in list form and on a map are based on the user’s journey times from their location and their preferred method of transport. Within the 30 hours we dealt with numerous challenges including importing a national list of GP surgeries from a CSV file into a database (MongoDB) whilst reading and writing geographical queries within. The geographical data that was offered for each GP surgery was using a coordinates system based on Eastings and Northings, the team had to convert this to longitude and latitudinal readings in order to make the elements easier to position on Google maps and use the travel time API data. We also had to deal with the challenge of plotting GP surgeries onto Google maps and getting the travel time API for iGeolise working. The final challenge was to ensure that the app was fully responsive using HTML5.

Our team of 3 also created a 2D index of longitude / latitude for geospatial queries; this was to increase the speed of the queries providing the users with super-fast search. Instead of sending data requests for all the GPs in the UK for every query, the GPs were shortlisted to those within 30 miles of the users starting point, limiting the amount of points sent to the Travel Time API.

TECHNOLOGIES USED:

  • Laravel 3
  • MongoDB
  • Twitter Bootstrap
  • Travel Time from iGeolise
  •  iGeolise Travel Time Library by Ben Speakman
  • Google Maps
  • Data supplied from Data.gov.uk as a .csv (comma separated value)
  • Imported to Mongo via a Laravel Artisan Task

How the app works

The interface was designed to ask the user for their starting point and travel parameters including postcode, the maximum duration of their desired commuting time and preferred transport method (walking, driving, bus, train, all). The interface can even cater for issues like peak traffic and public transport timetables.

The application then converted the postcode into Lat/Long using the Travel Time API. It shortlists GP surgeries that lie within 30 miles of the starting point from MongoDB. The application then finds the areas which can be reached by the users within the timeframe as an array of locations from the Travel Time API. The most convenient surgeries within the reachable area to the user are displayed on Google Maps using a polygon overlay. Each accessible surgery is then displayed on Google Maps using customised location markers. To help accessibility and those that cannot see the map, the app can provide an HTML results output text box.

We ensured the web application was optimised for viewing across all devices by producing a fully responsive web app; the team used Twitter Bootstrap and Font Awesome, with 2 CSS break-points.

Result

Together, we built a fully functional responsive application that can be used to help people find their most convenient GP surgeries. The app is unique in that the results are based on journey time and convenience (including live traffic data) as opposed to just distance. This same format can be used to find other local amenities and services. 

Team WCL
Team WCL worked relentlessly to produce a fully functional app

Roadmap

We're very excited about the app and is hoping to approach the NHS about getting them involved. Further improvements include the ability for users to find other local healthcare services such as dentists and opticians and adding contact details and opening hours to GP surgeries within the app. We will also be registering a domain name (gpsurgeryfinder.co.uk) for the web app and promoting it.

GPFinder

The GP Finder gives you all the information you need to navigate and find your most convenient GP surgery.