Inspiration

Being frugal students, we all wanted to create an app that would tell us what kind of food we could find around us based on a budget that we set. And so that’s exactly what we made!

What it does

You give us a price that you want to spend and the radius that you are willing to walk or drive to a restaurant; then voila! We give you suggestions based on what you can get in that price in different restaurants by providing all the menu items with price and calculated tax and tips! We keep the user history (the food items they chose) and by doing so we open the door to crowdsourcing massive amounts of user data and as well as the opportunity for machine learning so that we can give better suggestions for the foods that the user likes the most! But we are not gonna stop here! Our goal is to implement the following in the future for this app:

  • We can connect the app to delivery systems to get the food for you!
  • Inform you about the food deals, coupons, and discounts near you

How we built it

Back-end

We have both an iOS and Android app that authenticates users via Facebook OAuth and stores user eating history in the Firebase database. We also made a REST server that conducts API calls (using Docker, Python and nginx) to amalgamate data from our targeted APIs and refine them for front-end use.

iOS

Authentication using Facebook's OAuth with Firebase. Create UI using native iOS UI elements. Send API calls to Soheil’s backend server using json via HTTP. Using Google Map SDK to display geo location information. Using firebase to store user data on cloud and capability of updating to multiple devices in real time.

Android

The android application is implemented with a great deal of material design while utilizing Firebase for OAuth and database purposes. The application utilizes HTTP POST/GET requests to retrieve data from our in-house backend server, uses the Google Maps API and SDK to display nearby restaurant information. The Android application also prompts the user for a rating of the visited stores based on how full they are; our goal was to compile a system that would incentive foodplaces to produce the highest “food per dollar” rating possible.

Challenges we ran into

Back-end

  • Finding APIs to get menu items is really hard at least for Canada.
  • An unknown API kept continuously pinging our server and used up a lot of our bandwith

iOS

  • First time using OAuth and Firebase
  • Creating Tutorial page

Android

  • Implementing modern material design with deprecated/legacy Maps APIs and other various legacy code was a challenge
  • Designing Firebase schema and generating structure for our API calls was very important

Accomplishments that we're proud of

A solid app for both Android and iOS that WORKS!

Back-end

  • Dedicated server (VPS) on DigitalOcean!

iOS

  • Cool looking iOS animations and real time data update
  • Nicely working location features
  • Getting latest data from server

What we learned

Back-end

  • How to use Docker
  • How to setup VPS
  • How to use nginx

iOS

  • How to use Firebase
  • How to OAuth works

Android

  • How to utilize modern Android layouts such as the Coordinator, Appbar, and Collapsible Toolbar Layout
  • Learned how to optimize applications when communicating with several different servers at once

What's next for How Much

  • If we get a chance we all wanted to work on it and hopefully publish the app.
  • We were thinking to make it open source so everyone can contribute to the app.
Share this project:
×

Updates