Our logo for Foodify
Registration page, where company owners can register their restaurants or other food providal servers
Menu scan - one of the features that makes the creation of a virtual shop an extremely simple process
Delivery services - once the complete Menu is uploaded, the next big step is delivering the dishes to people ordering thgem remotely.
Scheduled pickup - a rather less popular feature that almost all modern restaurant's have - it's like preordering food that you can pick up!
Table reservation tool - something that is a must have on an official restaurant e-commerce shop.
An inbuilt picture taing application that stores the menu pictures in the Foodify gallery.
Gallery - this is where the pictures can be reviewed and where the Google Vision can give a short summary on what it sees in the pictures.
A confirmation screen for a created online shop. From here on now everything can be managed from Shopify platform normally.
The Shopify shop can also be managed and configured from the Foodify platform itself.
Even long before the hackathon took place, multiple members of our team had interest in e-commerce. The simplicity and popularity of it, really makes one wonder why it's not used by everyone yet!? Upon seeing that Shopify was one of the hackathon sponsors we were very keen to work together with the Shopify team and give them our thoughts and ideas, and learn more about how the Shopify platform works. A couple of talks with the sponsors later we found out that the companies missing out on the fun of e-commerce the most were restaurants, cafes and other type of food businesses. To help them experience the joys and simplicity of e-commerce, we tried to come up with the most intuitive and simple Shopify application that could help business owners launch their online-shops as fast as possible with as little tech-knowledge as possible!
What it does
For complete tech beginners, we made an extra smartphone application that makes the process of launching an online shop even easier - we provide a tool that allows restaurant owners to photograph their Menu and just with the help of a couple of pictures our app creates a complete online shop with additional features like online seat reservation or delivery system. For more advanced users, we leave the possibility to customise every little detail, from adding or removing specific dishes from the online menu, to adjusting prices of dishes when ordering online vs when ordering in-person. This type of simplicity does not sacrifice functionality which makes this app extremely attractive for both, owners looking for quick and elegant solutions and owners who want to have complete control over their online shop.
How we built it
The smartphone application is a simple WebApp which makes it usable on both iOS and Android devices. The WebApp is hosted on our servers programmed in Python with the help of Flask framework. The server takes the images made with the phone and forwards them to our Google Cloud Vision API which then returns all the text that is visible on the menu. Our algorithm then parses the text assigning one price per dish and grouping relevant dishes into categories and then finalizes the procedure by sending all the instructions to Shopify using Shopify API. That then creates a fully fledged e-Shop that can then be further customized by the business owner or launched directly for those who are already happy with the final result.
Challenges we ran into
Even as a team of five highly experienced people, we ran into challenges that taught us all something new: For me (Mantas) making sure the mobile application communicates with both Google Cloud Vision API and Shopify was a tough challenge, as the application was meant as a standalone mobile server at first. Only after a general team meeting did we come up with a solution that completely changed our project structure and made my task easier by adding an external server into the equation. As such the mobile app does not have to process any data on it's own - that task is now processed on the server.
For Sang, programming the aforementioned server was not an easy task either - security measures on campus network did not make debugging on the local network easy and once the server was hosted on Google Cloud, we ran into a whole new set of dependency-related problems that took quite some time to solve one by one.
For Filip who was working on the OCR and Google services from the start, developing an intelligent algorithm that successfully builds meaningful sentences out of single words on the menu and assigns prices to the correct dishes turned out to be more work than any of us would've predicted. Services like Google Cloud Vision API merely tell the position of every single word that can be located in the image, which is far from enough to create a fully fledged online dish menu. The output has to be heavily pre-processed before it can be touched by the Shopify API and making it work just right was a huge challenge on it's own.
As for Mario and Eva, they took on the hardest part of the development - the Shopify API. To fully understand and utilise a brand new API overnight definitely took a lot of brain- and willpower, however the successfully working final project is a good indication of the progress they made and the API proficiency level they have achieved.
Accomplishments that we're proud of
Every one of us is quite happy that we've overcome the challenges we have faced, however as a team we're really proud of the final project that we have managed to make in this short amount of time. On top of being proud of what has already been made, we're proud of the expandable nature of our idea, that would allow us to improve our application for multiple years to come.
What we learned
Aside from the obvious things like Shopify API which was a new thing for all of us, we had to brush up our knowledge on OCR, Google Cloud services and most importantly team management! Good teamwork and team management is something you can always get better at, and I'm sure all of us learned a thing or two!
What's next for Foodify
With a little more time on our hand we could get feedback from real Restaurants with ideas and real improvement suggestions so that we can make sure the application is as high quality as possible already on release. The time constraint also did force us to some suboptimal frameworks (like Flask over Django) that should generally be avoided when working on such a much-promising project like this. On top of that, as much work should go into creative but simple advertisement strategies that would make sure the Foodify app gets the recognition that it deserves. From advertising on Shopify app store to advertising directly to restaurant owners - more users would directly result in more feedback which would further allow us to improve and stabilize the app even quicker.