BCFlights - A Regional Flight Search Engine for British Columbia
Get notified about new posts on MatthewHall.com
Powered by Publish Perks
All my favorite projects start off as problems I run into in my life. GrowlerFill started when I wanted to find somewhere to fill up beer growlers. Ferries App for BC Ferries was scheduled when I lived on Vancouver Island and took the ferry every week or two.
A few months ago, I was visiting Vancouver Island and was trying to book a flight from the Comox area back to Vancouver for my partner. There are many different ways to fly from Vancouver Island to Vancouver. Floatplanes, planes, and helicopters from various airfields and floatplane bases. Some of them are available in travel search engines, like Google Flights. Still, most are only available on their own websites.
When I wanted to go through all my options, I had to open up multiple different booking websites and check various different routes. Then cross reference 5 or 6 other tabs for pricing and times. Suffice it to say, it was a hassle.
This gave birth to the simply named BCFlights.com, a one-stop solution for regional flights within British Columbia.
I started by compiling a list of all BC’s regional airlines. It was a much longer list than I expected! Then started putting it all together and seeing how I could get the data needed to offer travel information.
Data
I went through the different airlines and looked at how they loaded their route and scheduling data on their websites. Air Canada and WestJet were accessible — they’re available through all the standard commercial systems for flight search.
There are two major systems for flights inside BC — Intelisys and Blue Sky Booking. Between the two, they cover most of the BC airlines.
I started off digging into Blue Sky Booking. It turned out to be much more of a pain in the ass than I was expecting. Route data is offered in a nice clean API, but scheduling, on the other hand… No API is being used, just website rendering with hideous tables and a very unreliable URL structure. It’s been a while since I wrote any complex scraping code, but here we are.
Intelisys, on the other hand, was a dream to deal with. APIs are everywhere! Was quick to write one universal implementation that works for both airlines that use it. The only hiccup is that I still haven’t figured out how to get my price calculation to always be correct. As a result, mysterious discounts that just don’t make sense are being applied.
The rest are a fun mix of unique solutions. One airline uses Squarespace bookings, another Accuity Scheduling, and a few seem to be using their own custom in-house solutions built on WordPress. You’ve got to start somewhere!
Frontend
It’s hard for me to believe now, but 5 years ago, I was a full-stack web developer who implemented designs and helped create them. So it’s safe to say that I’ve gotten very rusty in the last 5 years.
I started picking up a website template for a hotel and flight reservation system and was immediately overwhelmed. I spent too many hours trying to force everything to work the way I wanted it to.
Eventually, I realized this wasn’t worth the effort. The template had 100s of features I would never touch. So I chucked it all out and started with basic, simple markup. Function over form!
Future
For now, BC Flights completely covers my personal needs. I’m mostly flying to Nanaimo or Victoria from Vancouver, and I’ve covered all those routes. It’s great to open up one page to quickly compare all available flights and their prices.
Right now, there are no affiliate programs or monetization in place. This seems like a natural addition one day. This could be combined with a slick website booking system, similar to what Google Flights offers.
Monitoring and notifying of local flight deals is another natural expansion. Automating this tracking and sending out emails when there is deals for your regular routes would be very helpful.
Some basics are also missing, such as picking roundtrip flights or even knowing if a route is possible. In addition, many airlines list ways they never or rarely fly, which pollutes my data.
Something else you think I should do? Let me know!
Part of my 2022 Year of Projects
This post is part of my 2022 Year of Projects! You can read about the project, my takeways, or check out the other posts below.- January - A Crypto Skeptic makes an NFT
- February - Building a Ski Resort API
- March - Prototyping a Disc Golf Pannier Bag
- April - Unlimited Sparkling Water from the Tap
- May - Scraping Last Minute Film Festival Tickets
- June - Adding YouTube Subscriptions to Plex
- July - Adding Post Thumbnails and Having Fun with DALL-E 2
- August - BCFlights - A Regional Flight Search Engine for British Columbia
- September - Manufacturing a Disc Golf Pannier Bag
- October - Disc Dispatch — Disc Golf Event Newsletter
- November - Designing Christmas Cards with Generative AI
- December - Publish Perks - Super Powers for your Jamstack Blog
Get notified about new posts on MatthewHall.com
Powered by Publish Perks