Flight Historian is a personal flight tracking website, allowing me to map and analyze all flights I’ve taken. Flights can be viewed all together, or analyzed by airline, aircraft, airport, route, class, or tail number.
- Allows a user to keep track of every aspect of their commercial flight history
- Provides detailed data about individual flights
- Provides aggregate, sortable data about collections of flights
- Flights can be filtered by airline, airport, route, class, or tail number
- Shows maps of all flights, or all flights that meet a specific criteria
- Exports maps into GPX or KML format
- Stores and parses boarding pass barcode data for each flight
- Automatically creates new flights in the database from emailed digital boarding pass data or scanned paper boarding pass barcode (BCBP) data, supplemented by FlightAware FlightXML lookups
|Languages & Frameworks||
In 2009, I was promoted to a job with frequent travel. Soon thereafter, I started keeping track of all the places I’d been.
My first attempt at keeping track of my travel was to create a simple heat map of the United States, with each state colored depending on how recently I’d visited.
I kept track of the date of the most recent visit to each state in an Excel spreadsheet, and wrote a function to give me an RGB color based on today’s date and the date of the last visit. I would then manually recolor the states using an image editor. This worked, but it was labor intensive – every time I took a trip, I would have to recolor dozens of states.
I began to search for software that would generate a colored map of the states from an array of state colors. Before I found any, though, I discovered the Great Circle Mapper.
The Great Circle mapper allows the user to put in a string of airport pairs, and generates a map of great circle routes. (For example,
DAY-DFW-PHX,PHX-ORD-DAY generates this map.) Tracking flights was more interesting to me than tracking states, so I went back through my travel receipts, wrote up a string of all of my flights, and saved it in a text file. Updating was relatively simple; I just had to type some more text at the end of my text file and copy and paste it into the Great Circle Mapper.
It worked for a while, but things gradually got more complicated. The Great Circle Mapper normally automatically zooms the map to include all of the airports in the user’s flight string. Most of my flights were in the contiguous United States, but a few flights to Europe forced the map to be zoomed out, which made the US map difficult to see as I filled in more of the map with flights. Fortunately, the Great Circle Mapper allows the user to designate that the map should ignore a particular flight when figuring out its zoom by prepending it with
o:noext. (For example,
CMH-ORD,o:noext,ORD-FRA,o:noext,FRA-EWR,EWR-CMH generates this map.) This let me flag all flights that left the continental US so that the map would remain focused on the US, and I could see the details of all those routes. But I also wanted to be able to see my world flights, so I ended up having to maintain two text files – one for within the continental US, and one for the world.
Then, in 2012, I started tracking the aircraft family, tail number, and what class I sat in for all of my flights, and the data got more complicated. Now, a simple pair of text files was no longer good enough; I also had to keep a spreadsheet of all of the extra information about my flights. For good measure, I went back through my travel receipts again to get the past three years of aircraft family data.
All this extra data let me do some fancy things, like make maps of all my trips on a particular airline or type of airplane, but it was a lot of extra work. I’d have to use filters in Excel, type up the routes and put them in the Great Circle Mapper, all to get a series of maps that would only be good until I took my next flight. I had a lot of data to manage.
At the same time, I’d been teaching myself Ruby on Rails by rewriting my old PHP website. Static pages weren’t particularly difficult to write, so I needed something more complex to work on.
Just as I’d used my EBDB project to teach myself PHP and MySQL back in 2004, I decided to create a flight log database website to teach myself Ruby on Rails. I started work on this flight log in 2012, and launched the site in April 2013.
|27 Apr 2013||1-0||/projects/flight-historian/version/1-0|
|24 Oct 2013||1-1||/projects/flight-historian/version/1-1|
|27 Oct 2014||1-2||/projects/flight-historian/version/1-2|
|8 Feb 2015||1-3||/projects/flight-historian/version/1-3|
|31 Jan 2016||2-0||/projects/flight-historian/version/2-0|
|29 Apr 2017||2-1||/projects/flight-historian/version/2-1|
|15 Mar 2018||2-2||/projects/flight-historian/version/2-2|
|30 Apr 2019||2-3||/projects/flight-historian/version/2-3|
- Thanks to Dan Bogard for reviewing the original specifications.
- Thanks to Amy Dobyns for helping with beta testing and data entry.