Inspiration Bricks
College students have a lot on their plates. They have classes, extracurriculars, clubs and homework to juggle, and on top of that they have to make sure they have time to eat. For students living on campus, in dorms especially, meeting daily nutritional requirements can be challenging without access to groceries or a proper cooking space. That's why we came up with nutRITion, an interactive web application that creates food suggestions based on the available food options on-campus.
What it does
The way it works is simple. Users enter dietary restrictions, requirements, and dining locations into the web page, and a generative AI is used to find breakfasts, lunches, dinners and snacks that adhere to these constraints. The AI is able to do this by tapping into a database of every food meal item that is sold on campus and its nutrition information, derived from the website FD Meal Planner. nutRITion is easy to pull up after a class or practice so that students don't have to waste their time worrying about what they should eat to fit their nutritional goals.
How we built it
- Made a scraping file that requests all nutritional information available from fdmealplanner and saves it to a data CSV
- Backend utility written in Python for managing meal and allergen data in a PostgreSQL database. It provides methods for creating tables, adding new meals, loading bulk data from the CSV, retrieving data, and deleting meals.
- A Flask API acts as a bridge between the React front end and the Ollama API and generates a query based on a mix of pre-defined prompt engineering, the user comments, and nutritional information that was trimmed down queried to avoid allergens, undesired locations, etc.
- Our frontend is done with React NextJS. This interacts with the backend service via a RESTful Python API which calls out to our PostgreSQL. The meal plan is generated based on the user input as well as any additional comments provided, and the UI displays the generated meal plan, along with handling loading states and errors.
Challenges we ran into
- CSV loading issues occurred due to the sheer input size
- Input issues with UI (NextJS does not like to allow multiple selections in a Select tag)
- Our server got infected with a bitcoin miner :(
Accomplishments that we're proud of
- Being able to access + index 40,000+ menu items on RIT campus
- Full Llama integration for best meal planning
What we learned
Software development takes a lot of time! We did very well on keeping our project scope limited which helped us avoid a last-minute crunch.
What's next for nutRITion
A better AI model could produce better recommendations and combined with a more pruned database could result in even faster queries. We could also continuously fetch menu items as the days/weeks go on.

Log in or sign up for Devpost to join the conversation.