*** Dino icon adapted from Facebook: https://www.facebook.com/

Inspiration

We've all been tasked to co-ordinate a group food order at least once in our lives. However, the process always ends up being extremely tedious and time-consuming. One eventually has to go around manually collating the orders. Worst still, when that has been completed, the problem is further compounded when one has to repeat the group order all over again over the phone to the restaurant selected.

What it does

Dino is a Telegram bot makes group ordering simple, seamless and secure. It is able to automate the collation of group orders and sent the selected restaurant the entire group order quickly just by typing in a few key action commands on Dino. With Dino, the person in charge of placing the group order can now sit back and relax instead of having to constantly worry about chasing people for their orders. In addition, Dino allows everyone in the group chat to view their total order cost in a snapshot; rather than having to constantly refer back and forth to the menu to check the prices of the items ordered.

How I built it

Dino was built using a Java client for the Telegram Bots API. We used IBM Watson to synthesize text to speech for automatic food ordering, and Nexmo Voice API to programmatically initiate calls to restaurant owners.

Challenges I ran into

This is our first time trying to use the IBM Watson and Nexmo APIs. These APIs had vastly different requirements for making HTTP requests, so that confused us a lot. While building the call initiation using Nexmo API, we also realized that we would have to make an additional HTTP POST request to obtain the data for text to speech. Since the data was computed in memory, it didn't make sense to make an extra HTTP request. Hence, we substituted it with IBM Watson, which is more flexible in that it can directly convert a JSON input.

Accomplishments that I'm proud of

Given that we are only a small team of 3, we are really happy that we were able to build an application that we believe will bring great value to groups of family and friends in less than 24 hours. Especially since we ourselves also face the problems that Dino can now solve every day! Also -- people always say Java is legacy and an overkill at hackathons, but we did it anyway.

What I learned

While we faced multiple difficulties in getting both APIs to work, we did learn a lot about web sockets and making HTTP requests. We also learnt about the different types of authentication for making API calls.

What's next for Dino

We want to improve the ease of menu loading. Instead of manually inputting menus into our database, we want to be able to scrape any menu based on an URL. We also want to look into improving the seamlessness of the ordering process. We would also want to incorporate automatic payment options from Dino and look into building it across other popular messenger platforms such as Slack.

Share this project:

Updates