History[]
Food! at the end of the Amsterdam hackathon
This App helps people out organising a diner.
Your sitting together with some friends and are talking about cooking some home made food, but what to prepare? Everybody is complaining about what they don't want to eat and nobody wants cook...
With our app you can decide better! Everyone fills in their (optional) diet, allgery, favorite cuisine and max 3 ingredients that they don't like. Because you are sitting together you can use NFC to beam your preferences to a friend in the group. You can beam with as many people as you like to form the group of people and everyones phone will automatically update. Once the group is complete, someone will click the "Pick a Chef" button to search a recipe that matches the preferences and to select a chef amongst the group that has to prepare the mail :)
If you have a smartwatch, you can sit back and relax and look at the watch to see how many people are in the group and who will be selected as a chef.
Screenshots[]
The Creators[]
Hugo Visser (Developer)
Ilja Smoltsak (Developer
Gregor Doornbosch (Designer)
Technical Stuff[]
App
We pass the ingredient preferences through NFC to each device. So the receiving device knows of the preferences of all persons / devices that the sending device has seen. We also sync this up to a server to synchronize all clients using push notifications. We integrate with the yummly.com api to search for actual recipies. The original "Amsterdam" version would always advice you to eat some fries ;)
The Smartwatch integration is a separate app that catches broadcasts from the main app. We've also integrated some haptics on the beam screen which is triggered when the animation runs.
Backend
We have a python backend running on app engine. When users start the app, they can input their name and preferences. This gets sent to the server, along with a Google Cloud Messaging id. When users use their phone to beam (or 'kiss'), they send the information for this kiss to the server. The server aggregates all this information to compile a group. Imagine 6 people at a table, A, B, C at one end, and D, E and F at the other.
Possible beam actions could be:
A+B, B+C (ABC are in 1 group)
D+E, E+F (DEF are in 1 group)
Now A and D beam, their groups get combined into one.
Whenever two people beam, the group could get bigger, and the server sends a Cloud Message to all people involved, asking them to query the server for the updated group. This allows the app to show in realtime how the group grows. Someone at the table could beam once, and see updates rolling in while the others are busy beaming.
When someone sees that everyone is in the group (time to "Pick a chef"), he can push the button. The server will then randomly pick one of the participants, decide on a recipe (depending on people's food preferences) and send a new message to all devices, informing them who is the chef, and what he or she will cook.