Captain

Inspiration

As a new driver, I don't have that sense of where everything is that comes with being an experience driver. As a result, I generally end up driving back and forth across town due to my poor planning. Captain aims to change that, but does much more than just make the shortest path between multiple destinations possible.

What it does

Captain helps you get around more efficiently by avoiding long lines when stores are least busy and computing the most direct route between multiple destinations to find the most optimal time to visit each location.

How I built it

I started with a lot of testing Friday night and describing algorithms on paper. One of the tests I started in PHP became the current live version of Captain. The frontend was written in the usual HTML, CSS, JavaScript, and jQuery. I used an open-source Material Design framework to help with the frontend design.

Challenges I ran into

Working with and making use of the data for the most part required a lot of thinking and planning. One specific time this proved difficult was when I was trying to incorporate the "popular times" data in order to determine when the line in the store would be the shortest. Eventually, I saw that the actual numbers of visitors for each period of time was not important, but rather the ratio between each period of time was important. Additionally, I was able to convince myself that the scale did not matter in this case, as the ratio can be scaled infinitely larged and still retain the same proportions.

Accomplishments that I'm proud of

Working with the Uber API, getting an Apache web server up and running on Linode with a .CO domain, calculating barycentric coordinates in order to factor in the arrangement of destinations on a map (direct paths).

What I learned

I learned how to deal with data gathered and give appropriate weighting to each factor (and set of data) in order to come up with the most accurate score for sorting the destinations into an order.

What's next for Captain

Definitely more factors for sorting the results (orders you can go to the destinations in).