Inspiration
All three of us are active athletes, and two of us have dietary restrictions — I (Jeffrey) am allergic to nuts, and Rishu is Hindu, and therefore can't eat pork and beef. Because of this, it has always been difficult to plan our meals and macros for our goals (cut, maintain, and bulk), especially ahead of time.
The current Purdue Menus app has a "filtering" function for certain foods, but it's difficult to locate, has unfriendly UI, and includes a very limited list, leaving out many dietary restrictions, such as a Kosher diet, Islamic dietary laws, and Hindu dietary laws.
With BoilerFuel, Purdue students now have an easy way to plan meals, track macros, and get personalized recommendations on what they should eat and where. The filtering function within BoilerFuel has a Tinder-like swipe function, making it easy and fun for users to input allergies or any other restrictions. Additionally, there's a text box where users can input any food they want to filter out, and the app builds a meal plan for the user that includes macros, serving sizes, and location. The dining hall ranking system allows users to factor in personal "wants" as well, such as user convenience.
What it does
BoilerFuel is a meal planning app for Purdue Students. It is connected to the Purdue Menus API to allow for specific meals that are available at the dining halls. Boiler Fuel will suggest meals for the day, based on a custom-built Calorie and Macro Calculator that returns target calories, fat, protein, and carbohydrates for the day, and filters out any foods that conflict with the user's dietary restrictions. This ensures that Boiler Fuel will not only recommend healthy meals, but it also recommends meals that the user can be sure they can eat.
How we built it
BoilerFuel is built using Flutter and Firebase.
In the backend, there is a serverless function that runs once a day, retrieving all meals from each dining court and extracting nutrition information for each meal. It then stores all meals in a Firestore Database.
The front-end takes user input on age, weight, height, gender, and eating goal and plugs it into a custom-built Calorie and Macro Calculator that returns target calories, fat, protein, and carbohydrates for the day. Then, using the user's dietary restrictions and target calories, fat, protein, and carbohydrates for the day, BoilerFuel prompts Gemini to create a meal that includes food that complies with their dietary restrictions and is available at one of the dining halls.
Challenges we ran into
No API Documentation - The Purdue Menus API had no documentation on what the API endpoints were or the headers required. Requiring us to create our own documentation while creating BoilerFuel
API Didn't Provide Nutrition Information - The Purdue Menus API didn't return the nutrition information for the food, so we had to look at the network activity on the Purdue Menu's website to find the API that the website was using
Accomplishments that we're proud of
- Fully functional meal planning app that is connected to the Purdue Menu's API in less than 24 hours
- Boiler Fuel is downloadable on the App Store and Google Play Store
- Boiler Fuel's UI/UX is clean, seamless, and intuitive
What we learned
- Key Design Principles with Flutter
- Ways to discover API's from websites' network activity
- Integrating Gemini Results with Flutter Frontend
- Good Collaborative Coding Practices using Git
What's next for Boiler Fuel
- Personalized Meal For You Page: View other people's meals who have similar preferences
- Off-Campus Dining + On The Go: Include meals based on off-campus dining and On the Go stores
- Dining Dollar Distribution Planning: Based on Meal Plan, plan meals that require Dining Dollars to ensure good use of dining dollars
- Long-term Meal Prepping: Prep meals for a week instead of just one day
- Meal Favorites: Meals can be favorited, and users will be notified when the meal becomes available again
Log in or sign up for Devpost to join the conversation.