Often times, people have no idea what ingredients are in their food and the web definition is usually too complicated for easy comprehension. In the simplest of food packages like a bag of chips, the ingredient list might contain a dozen confusing compounds that are foreign to people. We wanted to create a project that would be able to provide helpful information quickly and easily for users, whether for people who want a more health-conscious lifestyle by making them more informed about their diet or even just people who are curious about what makes up the food they consume daily.
What is IngreDex?
Ingredex is a health conscious app that recognizes and identifies ingredients from a food product’s nutrition label and draws a comprehensive description of those ingredients from our database. First, the user snaps a picture of the nutrition label, then the app will display the ingredients detected along with their corresponding descriptions.
How We Built It
We used Google Cloud Vision API’s optical character recognition (OCR) to extract text from the label. We have the names and descriptions of all the ingredients that we accept in a SQLite database which is queried when the picture is taken. The backend is built with node, and the front end is built with react.
Challenges That We Ran Into
None of the members of the team had any experience with node, SQLite, Google Cloud Vision, or React Native. It was a challenge to learn while working with all these unfamiliar tools.
Accomplishments That We Are Proud Of
The app worked as intended despite all the challenges and we created a database with 140+ items/ingredients.
For lack of a good existing database, we manually put a bunch of ingredients for the demo. In the future, we wish to either find a good database that meets our goals, with entries that accomplish the goal of advising the user on the health qualities of an ingredient rather than just a description.
Aside from this, the only other big issue is that the app requires an exact match to display data, so often times it will miss some of the ingredients. This can be solved by finding the closest entry to the ingredient found rather than querying for the exact match.
Node, React Native, Expo, SQLite, Optical Character Recognition (OCR) Google Cloud API, Adobe Photoshop