One Bus Away Trip Planner


This was one of my first projects in HCDE for an Interactive Systems Design Class.  We learned Python programming language and work with APIs.  I created a Trip Planner using the Google Maps and One Bus Away APIs.  Our focus was on the functional aspect of the tool, not the visual presentation.


Individual project, I was the developer and designer.  Our deliverable was a functional implementation of the two APIs, in this case a web based public transportation trip planner for Seattle, Washington.


Python programming, Systems design, API libraries, Sketching, Virtual Machines.


Google AppEngine, HTML, CSS, Eclipse IDE, VMWare.

The Class

HCDE 310 Interactive systems design and technology provided opportunities to identify and build interactive systems to solve problems in human centered design and engineering. The goal of the class was to specify, design, build, and justify design solutions in terms of user experience and technical design choices using basic Python programming and APIs.

The Project

This was my first HCDE course after being accepted into the department.  The course objective was to identify technological design opportunities, turn our ideas into actual designs and then create interactive prototypes.  This course is a foundation course for our program and provides the opportunity to learn basic prototyping skills that we will use in later classes.  Starting at the brainstorming process, we developed several paper prototypes of potential projects and sought feedback from our peers.

For my final project I created a mashup using API data from Google Directions and One Bus Away.  I am a novice at using public transportation. This project was inspired by my continued frustration at trying to figure out which bus to take and the limitations of One Bus Away (OBA) at the time. The OBA application was an excellent resource for bus data, but it was only helpful when I was familiar with the routes, which was limited for a novice bus rider like myself.

310 project planning 2310 project planning 2 1

Identifying the design opportunity and developing a plan was the first part of the assignment.

Screen Shot 2014-03-14 at 5.18.42 PM

Tentative development plan:

Week 1

  1. Create HTML interface to retrieve the user’s input data (current location and destination)
  2.  Write basic Python application for the Google App Engine environment for the directions and transit and traffic data.
  3. Connect to each of the apis and determine the data that is received and how to access it

Week 2

  1. Process the data to display the fastest route available.
    1. Determine what information I get back from Google and provide directions for the shortest trip.
    2. Create a table for the route sequence, segment duration, and scheduled bus

Week 3

  1. Enhance the HTML and CSS on the results to make it more reader friendly
  2. Learn how to generate a printable document and email the document

Time Permitting

  1. Generate the route displayed on a map and include in the email link and printable document.

I eventually learned that my project was incredibly ambitious for the timeline of the project.  The project would have been more successful if I had collaborated with another student to divide and conquer the workload.  If I had the experience to do over again, that would be my choice.  The Google Directions dictionary turned out to be extremely complicated to decipher and utilize. This delayed the project by about 5 days.  Once I was able to access the data in the Google Directions api, I was able to determine which data corresponded and retrieve the needed data from One Bus Away.  The project delay forced me to abandon my plan of incorporating a map into the final design, and was a valuable learning lesson in developing a realistic development plan.

The finished product was a text based trip planner shown in the images below. The trip planner has not been updated since it’s creation, but if you want to test it click here.  Google is in the process of shutting down their App Engine, so access to this project may no longer be available.

Screen Shot 2014-03-14 at 6.43.18 PMScreen Shot 2014-03-14 at 6.43.58 PMScreen Shot 2014-03-14 at 6.44.18 PM