A phrase well-known among college freshman is the freshman-15. When students switch from a controlled eating environment where they know exactly what they are eating to college, where what they are left at the mercy of the whims of their school's dining, students lose the ability to make an educated decision on their diet. This causes things ranging from weight-gain to severe allergic reactions. On a similar note, people with diet restrictions due to religious or health reasons find it very time consuming to order from a standard restaurant menu.

What it does

This app recreates a restaurant menu by drawing the menu items over the camera view in real time. Each menu item includes the name of the food, calories, grams of fat, and grams of carbs. These items are drawn over the menu in real time. Each item that does not fit the user's diet preferences (vegetarian, gluten-free, kosher, etc) is drawn in a red box. All items that do are drawn in a blue box. Of all the blue menu items, the healthiest one (based on the user's diet preferences) is marked.

How I built it

I used Android Studio/Java for the UI and logic. I used JSON Object requests to a nutritionix API to get nutrition facts. And I used the Google Firebase ML Kit, as well as Amazon Comprehend to get text information. In another activity, I use Amazon Polly to read out information.

Challenges I ran into

This biggest challenge that I ran into was multithreading. I had to make JSON requests in real time, while updating the UI. Fortunately, I found a Fusion 360 engineer to debug my code for hours on end.

Accomplishments that I'm proud of

I'm proud of how I used multi-threading to get accurate caloric/dietary info on all foods.

What I learned

I learned how to use Multithreading to make JSON Requests asynchronously in Android.

What's next for MenuScanner

Definitely the Play Store.

Share this project: