Inspiration
One day after a workout, we were trying to figure out what to eat for dinner. We scrolled through the Purdue dining app, trying to cross-reference menus from five different dining courts to find a meal that was high in protein but didn't blow out our calorie budget for the day. It was a frustrating, 20-minute process, and we realized that every student trying to be healthy on campus faces this same problem every single day. We knew there had to be a smarter way than a clunky app and a mental calculator.
What it does
OptiMeal is a mobile application that acts as your personal AI nutritionist for Purdue's campus. It eliminates the daily decision fatigue of what to eat. After a quick onboarding where a user inputs their physical stats, fitness goals (lose, maintain, or gain muscle), and any dietary restrictions or allergies, the app generates a complete, optimized meal plan for the entire day. It tells you exactly what to eat for breakfast, lunch, and dinner, and which dining court to get it from, ensuring you can meet your health targets without the guesswork.
How we built it
We built this as a full-stack mobile application. The frontend is a React Native app built with Expo, using NativeWind for clean and rapid styling. This allowed us to create a polished, cross-platform user experience. For the backend, we chose a Python and FastAPI stack for its speed, with a PostgreSQL database to store the nutritional data. Our first major task was building a data pipeline. We created a scraper using Playwright to handle the modern, JavaScript-heavy Purdue dining website, successfully extracting the full menu and nutritional information for every food item. The core of our app is an algorithm that selects the optimal combination of one breakfast, one lunch, and one dinner considering all dining courts to best match the user's daily calorie and macro targets.
Challenges We Faced
Our biggest challenge was integrating our frontend with the backend API, which required careful coordination to make sure the data models matched correctly. We also ran into our fair share of late-night Git merge conflicts. And, of course, the constant battle against sleep was a challenge in itself. Accomplishments that we're proud of We are proud to have built a complete, functional, end-to-end application in a single weekend. Building our custom optimization algorithm to provide genuinely smart and realistic meal plans was a major technical achievement. We're also proud of the final, polished UI of the mobile app, which feels fast, intuitive, and is something we would all genuinely use.
What's next for OptiMeal
Our vision is for OptiMeal to become an essential tool for student wellness. Our immediate next step is to add consideration for subjective preferences for food in users such as a dislike for certain types of food categories. After that, we plan to add features for off-campus students, like a grocery list generator based on their meal plan. Ultimately, we aim to scale OptiMeal to other universities, as every campus with a dining plan faces this problem.
Built With
- expo.io
- fastapi
- javascript
- nativewind
- playwright
- postgresql
- python
- react
- reactnative
- typescript
Log in or sign up for Devpost to join the conversation.