enroute web service on heroku!

Recently I pushed a development version of the enroute web service to heroku! Enroute is an idea born of several road trips: we wanted something that would tell us not what’s around us right now, or just near our destination, but what’s on the way.

While the concept is quite simple, the execution was, as is typical, a bit more difficult. After playing with a number of the relevant technologies out there, it became clear that the proof-of-concept app would have to interface with and/or provide three underlying services:

  • Mapping and directions to generate a path along which to search
  • “Boxing,” or decomposing the route into boxes within which one may search
  • Venue searching within those boxes

 

Architectural Notes

After investigating the available APIs and technologies, I chose to implement the web service in a manner that could be indifferent as to the map and directions provider as well as the underlying venue provider. Moreover, I decided that the web service should provide only boxing and venue search services, and not the map and directions.  Thus, the proof-of-concept app obtains its map and directions information (as well as the majority of its user interface) on the client side in a browser, independently of the enroute web service.

The web service is implemented as a Python 3.4 flask web application. (I will not justify the choice of Python 3 here; rather, I intend to compose an additional post on the subject.) Currently, it provides  two endpoints (“/boxer” and “/venues”) which must be called in sequence, so I hope in the near future to combine them into one stateless endpoint and provide a truly RESTful web service.

The front end is entirely in HTML, CSS, and JavaScript.  After attempting to use MapQuest, I went back to Google for maps and directions. However, it should be possible to implement a front end using entirely open data and APIs.

 

Screenshot

enroute screenshot

Links

Possibly live app (this is a development server, so it may go up and down)

Source code

 

Joe

Related Posts

LED Mirror at Square Design

This past Fall I had the pleasure of working with the folks at Square Design, a custom design and fabrication business in lovely Gowanus, Brooklyn. In the course of that project, I programmed a series of NeoPixel strips to light in patterns evoking (as opposed to simulating) rainfall. That project was so much fun that they decided […]

Read More

Video Preview and Facial Recognition in Swift, Part 2: Saving a Photo with Overlays

This post continues my summary of lessons learned in implementing SwiftSquareCam, a Swift version of Apple’s SquareCam demo project. As described in my prior post, the original Objective-C code provided a number of core features: – taking input from either the front or back cameras, if both are present, and providing the user with a switch to toggle between the two; – displaying a live video preview […]

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *