What it does
Uses street view and google places to find local restaurants for you to collect from, then finds images from the reviews and determines what food you will be delivering. You then gotta click about a lot to get to the location. There's a minimap showing a top down view too.
How I built it
CLIENT: Built using Angular/Typescript Google street view API to navigate around, and place markers at the collection and delivery locations. Google maps API for the top-down minimap, keeps updated with the streetview Fires off AJAX requests to our server to ask for orders and update the leadboard Google sign in - You can sign in via google and submit your score to the leaderboard
SERVER: Backend server built on Python Flask with endpoints to return a restaurant and a destination residence. Google places API to find local restaurants Clarifai image recognition API - we get the review images from the google places reviews, and pass them through the 'General' recognition model, then use an image which has a high probability of being 'Food'. This is shown to the user as the food that they are delivering. We have a local cache (as a SQL database) which caches the restaurant image result, to save time if the same restaurant comes up again (the image recognition API is kinda slow)
Challenges I ran into
Getting the google street view showing the markers in the right place was a pain. We had various problems getting the google APIs setup (the console is rather confusing). We wanted to use a SQL server in Google Cloud platform and spent like an hour trying to get it working and configured and ultimately gave up and used a local DB. We wanted to be able to identify the food more specifically, but the Clarifai 'Food' image recognition type was too specific and would list out all the ingredients of the food (eg tomato, cheese) instead of just 'pizza' :(
Accomplishments that I'm proud of
Getting the image recognition working, we think its kinda cool how it's able to work out what images have food in.
What I learned
Lewis had never used angular before ("I'm now a full stack dev!!!").
What's next for DeliverooSim
It's coming out on Xbox One and PS4 next month.