Inspiration

PurFood's origins lies within calorie tracking struggles that we and our friends faced. It was easy to overeat at the dining halls and inputting caloric information to tracking apps was tedious since the Purdue food options did not exist in these apps. maintaining healthy diets while at our university. Adequate nutrition is crucial for well-being, and it is often difficult to maintain given the everyday hassles of college life. We aim to provide the Purdue student population with precise, actionable insights into daily dining court menus, making tailored meal recommendations to each student in order to make nutrition accessible to all.

PurFood's Aim

PurFood is an AI-powered nutrition planning platform capable of adapting to the constantly changing menus of Purdue's various dining courts. Here, students can set their dietary goals, preferences, and restrictions, after which PurFood analyzes all the menus for the day and creates optimized meal plans that help its users reach their personalized diet goals. Users can review calories, macro-nutrients, and customizable meal suggestions for each court, allowing for students to both easily get their ideal meal plans (with room to satisfy cravings) and more time to focus on other aspects of life. Additionally, users can save meal plans for future use, as well as look at their diet heal history to keep track of their progress toward long-term health and fitness goals.

How We Built it

At the core of PurFood are JavaScript programs that contain both Purdue's dining API and our menu scrapers, allowing us to gather detailed and up-to-date ingredient data at the start of every meal period. This data is then input to our Gemini-powered recommendation engine which optimizes meal plans around the data given to us by our users about their personal preferences, goals, and restrictions. We created effective input flows, thoughtful user preference handling, and a database system to store information and meal history. With our intuitive, user-friendly GUI, dietary logic (that makes use of the Mifflin-St Jeor equation for caloric calculations), and smooth data parsing, PurFood offers a personalized experience that streamlines the meal planning process.

Challenges we ran into

None of us went into this project as experienced UI/UX designers, so building a clean and functional user interface and onboarding experience tested our learning prowess. Dining APIs were difficult to work with as well, especially because of their inconsistency. They challenged us to develop our own scraping solutions and to make our product able to keep up to date with menu changes. We faced hours of errors and dead ends with scraping, until we realized Purdue Menus has a GraphQL API. Nutritional data formats were difficult to handle and standardize, and having to retrofit AI logic onto imperfect menu inputs was very frustrating. This was worsened by the added complexity of user authentication and session control. We also had to learn to better prioritize, shelving extra features (like live wait time tracking) in order to ensure our base product would be the best it could be.

Accomplishments That We're Proud of

For most of us, PurFood was our first collaborative project at this sort of scale and impact. Having to handle novel technology, integrate different systems into a (functional) larger system, and overcoming difficulties (bugs, server errors, etc.) was very rewarding, albeit stressful. We feel proud of integrating Gemini into PurFood-as both an input from users and an output given back to them. We are also proud of our UI design that embraces Purdue's colors while keeping a sleek, modern feel. Seeing all of our hard work coalesce into a product that not only demonstrated our skills and grit but also could have a positive real-world impact validated every hour of effort spent.

What We Learned

From this experience, we've not just learned new technical skills (like scraping dynamic data sets, handling nuanced API authentication, and integrating AI). We've also learned how to better build consensus, divide up complex tasks, and push through confusion and frustration. There were many times of tension, tiredness, and worry (especially when facing hordes of errors for hours). However, as a team, we decided to blend our roles a bit, allowing us to help each other out more and solve common issues. We also came to understand the price of managing time well, as we unfortunately had to cut some features (like the aforementioned live wait time tracking). The most important lesson, however, was learning how to persevere through team conflicts and quickly pivot to productivity.

What's Next for PurFood

Going forward, we hope to implement more features into PurFood, both cut and completely new. We also think that PurFood could be expanded to other on-campus dining options (like Sushi Boss, 1bowl, and Petes'Za) and maybe onto other Purdue campuses. Users at Purdue also don't just dine at dining halls: snacks from 3rd Street Market, food from Harrison Grill, and the PMU are just some of the places Purdue students love. We want users to be able to manually add foods to their tracker with implementation of common foods like Oreos having their nutrition info relayed from a database. Since PurFood is fitness oriented, we believe that functionalities with the CoRec (Purdue Recreation/Gym Center) can elevate PurFood (like using location and a simple notification question asking about waiting for a machine to give estimated wait/busy times at the gym to app users) Lastly, linking PurFood to work out and activity platforms like Fitbit could turn it into a holistic wellness application, tracking calorie intake and output for a smarter and more helpful campus nutrition assistant.

Share this project:

Updates