Inspiration
Dining hall menus provide many options and detailed nutrition facts but turning that information into decisions is still a manual process. Students who have specific nutrition goals such as increasing protein intake or managing calories often need to scan multiple dishes, compare nutrition labels, and mentally assemble a balanced meal.
Dishcision was inspired by the need to remove that manual step by transforming raw nutrition data and large dining menus into clear, personalized meal recommendations that students can act on quickly.
What it does
Dishcision is a mobile app that personalizes meal options using the UMass dining menu and the user’s inputs. Users select their preferred dining hall, nutrition goals (such as high protein), and restrictions like allergens or specific diets. The app generates realistic meal combinations and provides estimated calories, protein, carbs, and fats. This helps students quickly choose meals that match their goals without manually analyzing the menu.
How we built it
Dishcision was built as a mobile-first application with an AI-powered recommendation pipeline that combines structured dining data with semantic retrieval.
Tech stack:
Frontend: React Native for a cross-platform iOS and Android mobile experience
Backend: Node.js/Express API for data processing, preference handling, and recommendation logic
Database: PostgreSQL for structured menu, nutrition, and user preference data
AI layer: OpenAI LLM with a retrieval-augmented generation (RAG) pipeline to generate grounded meal suggestions
Embeddings & retrieval: OpenAI embeddings to represent dishes and nutrition context, with FAISS for fast similarity search over menu items
Data pipeline: Python scripts for menu scraping, cleaning, normalization, and nutrition parsing
We first structured dining menu and nutrition data so dishes could be filtered by dining hall, meal period, and dietary constraints. Each dish is embedded into a vector space, allowing the system to retrieve nutritionally relevant items based on a user’s goals.
The retrieved context is then passed to the LLM, which generates realistic meal combinations, explains trade-offs, and summarizes macros. This ensures recommendations remain grounded in real dining availability while still being personalized.
Challenges we ran into
A challenge we ran into was data inconsistency between serving sizes, naming conventions, and nutrition fields. Significant preprocessing was needed before recommendations were reliable. Another challenge was keeping AI suggestions grounded in real availability. The system had to ensure recommendations only used dishes from the selected dining hall and meal period. Designing meal combinations that felt realistic (rather than random dish lists) also required iteration on grouping logic and prompts.
Accomplishments that we're proud of
We created a working mobile experience that turns a large dining menu into a small set of personalized meal decisions. The recommendations are context-aware, nutritionally meaningful, and constrained to real dining hall data. We’re also proud of building an extensible architecture where new goals, diets, and campuses can be added without redesigning the system.
What we learned
We learned that effective AI personalization depends heavily on structured data and constraint design. RAG proved useful not just for answering questions, but for supporting everyday decision-making workflows. We also learned the importance of UX in recommendation systems, reducing cognitive load is often more valuable than adding more features.
What's next for Dishcision
Next, we want Dishcision to support learning from user behavior, enabling smarter recommendations over time and weekly meal planning instead of single-meal suggestions. We plan to integrate nutrition tracking, favorites, and real-time dining availability. Long term, Dishcision can expand beyond UMass to other campuses and food environments, evolving into a broader platform for personalized food decision support.
Log in or sign up for Devpost to join the conversation.