Map your macros to the menu
Our inspiration
One of our team members works as an online fitness coach and has noticed that often when people are craving fast food, their macros just go out the window. But it doesnt have to be this way. You can eat fast food and still hit your macros. That's where our project MAP (Macro Aware Picks) comes in. Right now, every fast food place's nutrition info is in some PDF buried somewhere, and doing the math by hand across a few menus just to find something that fits is annoying. So we built something where you put in your numbers and it tells you what you should order
What it does
You give Macro Aware Picks a calorie and protein target and (optionally) pick a restaurant, and it ranks real menu items by how well they match. You can also filter by:
- price
- category
- dietary tags
- search by name
plus quick filters like "High Protein" or "Under 400 kcal." It doesn't just show single items, it'll also suggest combos (like a burger + a side) when pairing two things gets you closer to your target than any one thing on its own
How we built it
Flask API on the backend, sitting on a JSON menu dataset with calories, protein, carbs, fat, price, and tags per item. The matching logic scores every item on how close it gets to your macros, blends that with a text-relevance score if you searched for something, and sorts by that combined score. Bundles work the same way, we generate combos of 2-3 items per restaurant, score them like regular items, then trim it down so you're not just seeing five versions of the same pairing. The frontend's just HTML/CSS/vanilla JS, no framework. One form that expands into an "Advanced Search" section for people who want to dig into ranges and dietary filters.
Challenges
Getting the ranking to feel right took way more tweaking than we expected because a mediocre match could beat a great one just because of how sorting worked, so we ended up building a tiered relevance cutoff instead
What we learned
Scoring systems can be really finicky, it can seem correct when you're writing it but then the output just feels so wrong
What's next
- Adding more of the most popular restaurants
- Favouriting and comparing meal options
- Scraping nutrition information in real time
Log in or sign up for Devpost to join the conversation.