There are so many ideas that I have for my current Alpha Alpha of HEA++. Here are some of them. For those of you who haven't heard about HEA++, you can read all about it here. There are a lot of features that I would love to add in the near future, so here's a decent roadmap of things that I think would be useful.

Basic Functionality that needs to work

  • Right now I am using geopy to do spacial queries, to find stops nearby. I'm doing a basic search for stops within a tenth of a mile of your current location. This works most of the time, when you're near a few stops, but not when your phone guestimates incorrectly, or you're far from stops. I'd like to expand the search automatically when less than X stops aren't found. Also, when presenting spacial results, I'd like to show your distance to them in a measurement of feet or even cooler, block. (Stop 2088 is 2 blocks away)

  • Expanding on geo based things, I'd also like to find stops near a landmark and make that stuff more forgiving to users. My search code is so fragile right now, King and Keeaumoku fails, but King Keeaumoku works fine. I need to eliminate certain words from the query, but is there some standard way to do that? A do-not-search list? I'd also like to enter a location, like Roosevelt High School and find bus stops near it, complete with the aforementioned functionality like "Stop X is 200 feet / 2 blocks from you".

  • I need to capture your location more accurately thru the browser. One of my biggest reasons for building a browser based app was so that it would work cross-plaform. Fortunately, modern smartphones (iPhone/Android) allow geolocation thru the browser, but the stuff that I am doing right now isn't very accurate. When loading Google on my phone, the GPS icon appears in my status-bar and Google ends up showing me an incredibly accurate position. With my method (which as far as I can tell, is identical) I believe that the phone is either giving it's last known (cached) location, or just triangulating using the cell tower. Documentation for this stuff is pretty limited... so I need to research it more.*

Added Functionality, that would be nice

  • Using the HTML5 datastore to save frequently visited stops to your device. I think this is the greatest enhancement that can be made to HEA, and would make using it much easier. A lot of my GPS enhancements help with foreign stops, when you're in the middle of Waipahu and trying to get back home to town. Simply being able to "Star" a bus stop is what I had in mind.

  • Expanding the save-to-browser favorite stops to a "cloud-sync'd" solution, so that your favorite stops are persistent from mobile to desktop. If I'm in a hurry to leave home, I'll look on my laptop, so having the same favorite stops in both locations would be nice. This introduces the need for an account, so I'm exploring ways to make that painless...

  • Accounts based on your phone number and a pin number. Simply enter your phone number and a desired pin, and an SMS message is sent to you confirming your account.

  • Full SMS-powered interface - This will be useful for those of us without modern devices with a web browser. A simple command-based interface will let you query a stop based on code, intersection, or as mentioned above, landmark. A list of stops will be returned for the query, where you can text back a number for the one you want. Then you receive an SMS with upcoming buses. Favorite stops will work as well, letting you text f:1 to get your first favorite stop, or something. f:1:4 might return only the route 4 buses for that stop.

Fun Stuff

  • I'm planning on engineering some kind of tag and QR code (here is a QR code for my favorite bus stop) combination to attach to every single bus stop pole. Right now TheBus is doing a decent job labeling stops, but I want to take it a step further with a QR code that you can scan real quickly to open your browser to the listing of buses coming. Android handsets use QR codes quite a lot (notice that there is a QR code on that page), and a reader called RedLaser exists for the iPhone. It would obviously be a link to my version of the site, and have some descriptive information on the back explaining what it is.

Extra Reading*

Here are some resources that I used for doing the browser-based location: