-
-
This is the sign in or create account page.
-
The user can choose their goals
-
Second part of onboarding, the user stats
-
Our app calculates the TDEE (Total daily energy expenditure) and calculates caloric intake based on that
-
The final app starting page
-
The search tab lets the user to check the nutritional values of every item in that day's menu, allowing them to be more health-conscious
-
Our workout page shows the user multiple exercises that they can do in the gym for the betterment of their health
-
This is the mobile friendly UI. Our platform works on both desktop and mobiles, allowing the user to use it wherever they want
-
The final page -- profile -- shows the user weekly nutrition tracking, caloric intake and the option to sign out
Inspiration
As a Penn State student passionate about fitness, I constantly struggled with one simple question: what should I eat at the dining hall today? Whether the goal was building muscle or losing weight, there was no easy way to know which menu items actually supported those goals. The nutritional information existed on the Penn State dining website, but making sense of it in the context of a personal fitness goal was entirely manual and time-consuming. Apart from personal reasons, the opportunity to create something like this was just right there. Penn State is one of the top athletic universities in the country; thousands of students are involved in varsity sports, club teams, and campus gyms every single day. Many people I know actively try to consume more protein, less fat, and follow the usual guidelines for staying healthy. However, because of the vague nutritional information available online about the menus, people don't realise what they are actually eating, which might affect their goals. This is a problem that many of my friends have experienced. That's why we launched Healthier@PSU. Healthier@PSU was built to give every Penn State student a smarter, more intentional relationship with the food already available to them on campus.
What it does
Healthier@PSU is a nutrition and fitness companion built specifically for Penn State students. It scrapes live menu data from Penn State's dining halls daily and presents each item with its full nutritional breakdown. Users input their height, weight, age, and fitness goal: cutting, bulking, or maintaining. The app calculates their personalized TDEE (Total Daily Energy Expenditure) and daily calorie target. From there, they can explore menu items filtered to their goals, track their macro and calorie intake throughout the day, view a weekly nutrition history, and explore the nutritional content of individual food items if they'd like! The app also includes a vast set of exercises for specific muscle groups, in case the user would like to take their fitness a step further and see some workouts they could follow to be even healthier!
How we built it
Healthier@PSU is a full-stack web app with a Next.js 14 frontend (TypeScript, Tailwind CSS, Framer Motion) deployed on Netlify, and a FastAPI Python backend deployed on Render. The backend scrapes Penn State's live dining hall menus from absecom.psu.edu using BeautifulSoup, separating Breakfast, Lunch, and Dinner meal periods to enforce accurate meal planning. Meal plans are generated by filtering scraped items against the user's calorie goal and macronutrient targets. Exercise recommendations are powered by the ExerciseDB API (proxied through our backend to keep the API key secure), with per-target disk caching to avoid redundant API calls. User profiles, including goal (bulking/cutting/maintaining), calorie targets, and preferences, are stored locally with localStorage for a fast, auth-light experience.
Challenges we ran into
Scraping menus.psu.edu required careful parsing of inconsistent HTML structures across different dining locations and menu categories. Ensuring the nutritional data mapped correctly to each item, especially across different dining halls that format their data differently, took significant effort to get right. We also ran into some issues with the third-party ExerciseDB API, which required us to build fallback handling so the rest of the app continued functioning seamlessly during the demo.
Accomplishments that we're proud of
Built a real-time meal planner that respects actual PSU dining hall schedules: Breakfast items only appear at Breakfast, Lunch at Lunch, etc.
- Designed a fully responsive Penn State themed UI that feels native on both mobile and desktop, with animated macro rings, progress bars, and smooth transitions.
- Created a personalized workout tab with goal-specific splits (Push/Pull/Legs for bulking, circuit-style for cutting) and live exercise GIFs, all toggled at onboarding.
- Zero paid auth infrastructure: profiles, goals, and preferences persist entirely via localStorage, keeping the app fast and deployable for free.
What we learned
We learned how to build and structure a full-stack application under time pressure, how to work around unreliable third-party APIs, and how much thoughtful UI design can elevate a project's appeal. We also deepened our understanding of nutrition science; TDEE formulas, macro ratios for different fitness goals, and how meaningfully small changes in daily eating habits compound over time.
What's next for Healthier@PSU
The core idea of Healthier@PSU can be used for any university. As long as a university publishes its dining menus online, Healthier@PSU can be adapted for that campus. The next step is abstracting the scraping layer so any university's dining site can be plugged in with minimal configuration. We also want to add meal recommendations powered by an LLM, because that'd make it even more interactive and engaging and could actually turn into an app that students would use daily.
PLEASE NOTE THAT THE BACKEND WILL TAKE AROUND 30 SECONDS TO START UP BECAUSE IT SPINS DOWN DUE TO INACTIVITY AFTER 15 MINUTES
Built With
- beautiful-soup
- framermotion
- json
- netlify
- next.js
- python
- rapidapi
- render
- served-via-uvicorn-with-pydantic-for-data-validation.-exercise-data-is-pulled-from-the-exercisedb-api-through-rapidapi.-the-app-is-deployed-on-netlify-(frontend)-and-render-(backend)
- typescript
- with-next.js-14-(app-router)-on-the-frontend-and-fastapi-on-the-backend.-the-ui-is-styled-with-tailwind-css-and-animated-using-framer-motion.-the-backend-scrapes-penn-state's-dining-services-site-using-beautifulsoup4
Log in or sign up for Devpost to join the conversation.