We have always had a difficult time selecting what to drink. So we thought that we should build a chatbot that helps us pick the right drink in our budget depending on how we are currently feeling.
What it does
In a single iteration, the bot asks for your budget, current location (you will have to give telegram access to your location) and a present photo of you which you can take through the app. The photo is then sent to a server and processed to identify your current mood/emotion based on your facial features. We then use a database of alcohols to suggest the best drink for you based on studies and also give you directions to the nearest pub based on your location.
How we built it
The emotion detection is done on a Microsoft Azure server using the FaceAPI. The closest cheapest pubs are identified using the Google Maps API. The database of alcohols was combined using data classification and generalisation based on a list of drinks available across pubs in Scotland and online articles (https://www.worldsbestbars.com/17-alcoholic-drinks-to-fit-your-every-mood/) that suggest the best drinks for a given mood. The app is running on Heroku.
Challenges we ran into
The biggest challenge was compiling the database of alcohols because nothing was available easily online. We also had some difficulty integrating all the APIs together to run coherently.
Accomplishments that we're proud of
Building a working piece of software that helps users select the best alcohol for them in less than 10 hours. We feel that the problems we are solving through this bot are varied considering the amount of alcohol consumed across Britain everyday.
Edit: Alcommender won best overall hack!
What we learned
Building bots, using various APIs, time management, efficient version control, data classification and labelling.
What's next for Alcommender
We did not get access to the Tesco API in time for this hackathon. We feel that we can expand this to all sorts of food items from Tesco. We also feel that we can use machine learning to get preferences from the user based on types of alcohol/alcohol content. Furthermore, the recognition can be expanded to various more features (after getting permission from the user to use their data) like gender, ethnicity and consumption habits.