Inspiration

In our busy lives, many of us forget to eat, overeat, or eat just enough- but not necessarily with a well-balanced composition of food groups. Researching precise nutrition values can be a hassle - so we set out to make an app that helps people too busy with their careers to balance their diets.

What it does

A user is able to, at any time in the day, bring up a meal and take photos of the food items they eat. The app, using a Google Vision API (calling to Google Cloud) then confirms the identity of the food item(s) and cross-references the food with the MyFitnessPal API to receive detailed nutrition information. This data is then aggregated with the meal timestamp into a MongoDB database and displayed on the Caloric calendar.

How we built it

We built a front-end in Node.js and React, which connects to a MongoDB backend via ExpressJS and Mongoose that stores the user's data (and eating habits). The front-end additionally contains all the external API calls to Google Vision API and MyFitnessPal. We also have Twilio integration to send messages to users about their diet data, which we plan to extend in our next steps.

Challenges we ran into

Mostly npm dependency conflicts!

Accomplishments that we're proud of

We integrated many services, namely Google Vision API. This integration brings a new perspective on diet-tracking and tailoring-it doesn't have to be a laborious process for users-we make it easy and simple for users. Our integrations with MongoDB also make the user experience fast and seamless- their data is quickly available and calorie counting is a fast and responsive experience. Moreover, we take advantage of tools the user already has- their own device's cameras!

What we learned

We learned about the differences of making API calls from the front- and back-ends, namely where that data can get routed, and which cases are better for the user experience. We also learned about the power of using React in the browser-a much more powerful paradigm than simple html generation.

What's next for Caloric

Integrating InterSystems to get health-data of a particular user, and then tailor health analytics and suggestions so that a user can see ways that they can improve their diet, depending on their goals and needs.

Built With

Share this project:

Updates