At the 2018 Hackathon at the University of Arizona, three undergraduates—Sidharth (Sid) Kulkarni, Alexander (Sasha) Yurowkin, and Alexander (Alex) Shearer—began developing an app called OdySearch. It was inspired by a basic problem the team wanted to solve for themselves: how to book travel on a budget with ease, efficiency, and flexibility.
“Finding flights on a budget manually can be mentally draining,” says Kulkarni. “Since it’s a mechanical process, why not make a computer do it?”
Improving access to no-frill getaways
For many students, summer trips or international travel options can seem quite limited, or even impossible for financial reasons. And far-flung locales, such as European destinations, are often beyond consideration. But as Yurowkin explains, his team was determined to find some solutions. “While planning our respective summer travels to Europe, we each spent many hours planning and laying out trip paths through various cities to maximize the number of places we were able to see, but to minimize cost,” he says. “We wanted to create a tool that could automate this process, and make it easier to find cheaper travel while keeping as many parameters flexible to allow for more options.”
“We seem to be the only product offering a service that bases travel options not on exact dates and parameters, but with numerous options for users,” says Yurowkin. “I’m very excited by the success of our algorithm in finding these flights.” Initially, the team was unsure whether the project was even viable—for instance, the ability to complete a travel search successfully with more than four stops, costing less than $850, and including a trans-Atlantic round-trip.
Yet they’ve done it, “it’s incredibly exciting,” he says. “We’re hoping this opens up the possibility of travel and exploration to many people who previously did not think it was within their budget.”
“I’m very excited by the success of our algorithm in finding these flights.”Alexander Yurowkin, Arizona State University
Technology as a problem-solver
The problem of finding cheap flights in the sea of potential options is a real-world version of the popular traveling salesman problem. This problem is infamous for being very computationally intense. To add another challenge to the mix, the team had just 36 hours to develop a working prototype at HackArizona.
With the given constraints, they decided to run a greedy algorithm on a 16 vCPU, Google Compute Engine virtual machine (VM) instance. Each time a request was sent to their server, they queried an API used to find flights. Then they trimmed the colossal dataset to make it more manageable, and ran their algorithm on the dataset.
“[GCP] is relatively easy to use, and relatively inexpensive”Sidharth Kulkarni, Arizona State University
Since the hackathon, the team has had much more time to work on their project. They developed a mobile front-end using Flutter, Google’s free mobile SDK (software development kit) for building native iOS and Android apps from a single code-base. The team has also worked on optimizing their algorithm for efficient computation, and designed their code to take advantage of the more lean and scalable App Engine Flexible Environment. App Engine provides automatic and fully managed horizontal scaling, allowing the team to serve multiple users at the same time.
Building toward the future
These days, the OdySearch team is working on “improving the functionality and aesthetics of the application,” Yurowkin explains, “as well as developing a plan that would allow us to release the app as a free public tool, without requiring any continued investment on our end.” Apart from the prototype they’ve created, he says, they have “an excellent backend system” to perform the searches.
“Finding inexpensive flights is hard,” says Shearer. “Many people I showed this project to did not know it was possible to find flights for such inexpensive prices. I hope this excites others into exploring the world around them, and enjoying its beauty.”