Inspiration
One of our team members has Celiac Disease and stated that it is difficult to find products and restaurants that specify if an item is gluten-free. Not knowing whether a product is gluten-free can be life-threatening for people who have gluten dietary restrictions. Based on our research, there is no current system that searches both restaurant menu items and grocery store products for ingredients that contain gluten.
What it does
This application connects to a database built from USDA data that has ingredient information of over a million branded products and from uploaded menu items from different restaurants (specifically Red Robin, Daniel's, and Rock 'N' Roll Sushi). The user can search by product, meaning they can enter a specific keyword to find all products in the database that match and can select a specific item to see if the product is gluten-free, may contain gluten, or is not gluten free. The user can also search by restaurant, where they enter a specific restaurant and the app then returns menu items that are gluten-free or have a gluten-free option.
How we built it
Within Eclipse, the JBDC driver was used to connect Java to pgAdmin4 in order to send SQL queries to the PostgreSQL database. This database was created using pgAdmin4 with .csv files extracted from public files on websites such as Nutritionix and USDA FoodData Central. The front-end is mocked up on Figma so for this version, users can use the application through the terminal. Through this, users can choose if they want to search by keyword and search by restaurant.
From USDA FoodData Central, we downloaded two databases and combined them using query calls in the PostgreSQL database manager. One database had the name and brand of the food along with an ID, and the other had the same ID but with an ingredient list of each product. Merging them gave us access to a single table with everything we needed for our system.
Challenges we ran into
We originally built a React Native interface for our front-end, however, due lack of time, we had trouble creating our own API to connect it to our database. This forced us to pivot, instead creating a terminal-based project with a front-end mocked up with Figma.
We also planned to use public Nutritionix and USDA FoodData Central APIs to search for ingredient data. We did a lot of research on incorporating RESTful API calls, even attending the REST workshop; however, we found that neither API returned the data we needed. We were only able to access nutrition information. Instead, we created a database and downloaded the data to a csv file that we uploaded to pgAdmin4.
Accomplishments that we're proud of
We are proud of our ability to adapt and restructure our software architecture after struggling to integrate the front-end and back-end. Furthermore, our product is currently usable for this dataset and can have a tangible impact in its' current iteration. It can be used to determine if an item if gluten-free since it uses a real-world dataset pulled from a reliable government source. This is extremely beneficial to the Celiac Disease or gluten allergy community since it has greater capabilities than other software to the best of our knowledge.
What we learned
We learned how to use Java in order to run SQL queries to pgAdmin4, specifically through a JBDC driver. We also learned about integrating APIs, RESTful APIs, creating HTTP requests, Java libraries such as Spring Boot, and how these can all be integrated with a backend in Java and a react native front-end.
What's next for Glutten
In the future, we plan to integrate our front-end application, creating our own API to communicate between React Native and our database, so that Glutten does not just run in the terminal. By completing more research, we also hope find applicable public RESTful APIs so we can access real-time updated data. We also hope to implement more restaurant data, with features to search by an item, return gluten-free restaurants, etc. Additionally, we plan to include other data such as makeup or hygiene products to determine if they are also gluten-free.
Log in or sign up for Devpost to join the conversation.