Inspiration

As a student at Truman State who frequently eats at Dining Halls, I know the struggle firsthand. You're trying to hit your nutrition goals, whether you're bulking, cutting, or just eating healthy, but you're standing in the dining hall with no idea if what's available today can actually support that. Generic meal planning apps tell you what to eat in theory, but they have no idea what's on the menu today. That frustration inspired TruPlate.

What it does

TruPlate lets students enter their nutrition goals (calories, protein, fat, carbs, fiber) and select a meal period. It automatically fetches the live Ryle Dining Hall menu, then uses AI to design an optimal meal combination from only what's actually available that day. It also respects dietary preferences like vegetarian, vegan, gluten-free, and more.

How we built it

  • Fetched and parsed live menu data from the Ryle Dining Hall website by extracting the embedded JSON state from the page HTML
  • Built a Node.js + Express backend to serve the menu data and handle AI requests
  • Used Groq's free AI API with Llama 3.3 to generate personalized meal recommendations
  • Built the frontend with vanilla HTML, CSS, and JavaScript

Challenges we ran into

The biggest challenge was getting live menu data. The Ryle website loads its menu dynamically with JavaScript, making traditional scraping unreliable. I discovered that the full menu data, including complete nutrition info, was embedded directly in the page HTML as a preloaded JSON state, which I could extract cleanly. That was a big breakthrough moment.

Accomplishments that we're proud of

As a beginner, creating a fully working full-stack app in one day is something I'm really proud of. Getting live menu data without any manual input, building my first Node.js backend, deploying a full-stack app for the first time, and seeing the AI recommend a real meal from today's actual Ryle menu, all in one hackathon, feels like a huge personal win.

What we learned

  • How to extract structured data from JavaScript-heavy websites
  • How to integrate AI APIs into a real web application
  • How to build and run a Node.js backend server
  • How to scope a project realistically under time pressure
  • How to deploy a full-stack app for the first time

    What's next for TruPlate

  • Fully deploy it into a full, functional app

  • Weekly meal planning across multiple days

  • Allergen filtering using the built-in allergen data from the menu

  • A mobile-friendly version so students can use it while standing in line

Share this project:

Updates