Annoying Beer Guy
Find him in the Ionic cloud App preview, APP ID "88b25342".
Everyone's met the annoying beer guy. He heard you like Dogfishhead 60 minute and decided to tell you about 43 other IPAs you should try. He heard you like an Irish red and told you all about how Irish reds are really sort of derivative and not consumed by serious beer drinkers. He knows how to pronounce cicerone. The goal was to take the knowledge that annoying beer guys often have and put it to good use, filtering available beers to things that suit users' tastes.
What it does
Using information from BreweryDB and Delivery.com, the backend service lets users filter over a variety of beer characteristics, like hoppiness (IBUs) and booziness (ABV). It then returns a list of beers that fit those characteristics from BreweryDB and links users to Delivery.com for beers in that list that are available for delivery near them.
How we built it
Elliot and Matt took front-end responsibilities, and Haseeb and I handled backend. We have a sqlalchemy database supporting subscription information, a variety of calls to external APIs getting us beer information, and an Ionic app on the front-end for cross-platform deployment. We deployed the back-end on IBM Bluemix and the front-end to the Ionic cloud.
Challenges we ran into
First, BreweryDB and Delivery.com have had no development in the same direction. That made extraction of basic features of beers like their names difficult. Fuzzy string matching in some cases is hilariously off, partly because of the number of similar words that appear in beer names.
Second, data about people's beer preferences are widely unavailable. This challenge meant that predictive approaches were nearly impossible.
Third, none of us are deployment experts. A lot of time was spent cycling through services to find a tutorial that worked with minimal extra effort so we could focus on the parts we were good at.
Accomplishments that we're proud of
We have a product that works (to some extent)! We also did a good job over the course of the weekend discussing challenges we were having and when we should reprioritize.
What we learned
Some of us learned deployment and dependency management across several settings. Others of us added experience and intuition about Angular2 and Ionic.
What's next for Annoying Beer Guy
Fuzzy string matching needs to improve, and we also need better integration with Delivery.com and creating orders instead of linking to pages with beers on them.