Inspiration

I travel to Chicago a lot for work. The President spends his fair share of time here as well. When he comes to town, flights are delayed, the roads are closed, and it generally can stink if you get caught up in the areas the President is visiting.

Based on these experiences, I was inspired to write an app based on open data that would allow me to see where and when the President (or Vice President) is traveling, and if the alert me as soon as possible if he is traveling to my town. That way, I can plan my week to avoid getting caught up in the mess.

How it works

Location Based Alerts. When you run the app, it asks for permission to access your coarse city-level location. If you agree to share your general location with BOAlert, when the BOAlert Back-End Database gets information that indicates the President is going to travel to where you are, you are sent a push notification with the details.

BOAlert Back-End Database. The BOAlert application draws its data from the BOAlert back-end server. The server, obtains its data from three sources:

  1. A presidential schedule is posted to whitehouse.gov on most days. See https://www.whitehouse.gov/schedule/complete. Unfortunately, but it is typically posted half way through the day. Simply put, it is not sufficient to know ahead of time where the President or Vice President will be, but it can be helpful.
  2. The FAA VIP Temporary Flight Restriction Database. See http://tfr.faa.gov/tfr2/list.jsp.
  3. PoliticalPartyTime.org's Open Database of Political Fundraising Events. See, e.g., http://politicalpartytime.org/calendar/. The President loves to raise money for his party, so the thought was to mash this open data up with the government-provided open data to get even further (but less certain) information about where the President may travel, and also to see the correlation between Democratic fundraising events and the President's travel choices.

All three of the above data-sets are monitored and refreshed by the BOAlert Back-End.

BOAlert App Data Browser. The BOAlert application provides access to the relevant upcoming events that have been processed by the BOAlert Back-End Database.

  1. Table View. The table view shows a chronological listing information collected from official government data sources (whitehouse.gov and faa.gov). If any of the events are nearby, the cell color will change from blue to red to let you know that you need to pay attention on that day at that time.
  2. Map View. The map view provides a geographic display of the official government data sources (whitehouse.gov and faa.gov) on a map (using red pins), and the political fund-raising event information (politicalpartytime.org) (using purple pins). The map view also attempts to guess the general areas and roads that may be closed down for the President's motorcade. For example, when the President travels, the government shuts down airspace in the shapes of inverted cones in the general areas the President will be. By analyzing where the bottom of the cone is, BOAlert determines the parts of cities the President will likely be visiting. By ordering these geographic points chronologically, we can see what the typical driving route would be and assume that the president will take the typical driving route to get from point to point.

Challenges I ran into

  • Debugging JavaScript code that is running in the cloud on another computer is always fun.
  • Apple push notification setup could be more streamlined.

What I learned

I became more familiar with Parse CloudCode, how to scrape webpages using JavaScript, and various APIs including Google geocoding and reverse geocoding APIs.

Changes from Prior Version

  • More Data! The prior version of the application only showed one data set (derived from data provided by the FAA) in both the table view and map view. For this jam I added an additional dataset from PoliticalPartyTime.org that is shown along side the data derived from the FAA.

  • Improved Map View. The map view has much better annotations, and shows data from multiple data sets.

Share this project:
×

Updates