Project Info
This project did not submit a demo video on Devpost.
Inspiration
We are Muslim students at UC Berkeley who have noticed the dining hall websites lack functional support for students with dietary restrictions. It is difficult for students who want to eat a halal, vegetarian, or vegan diet to filter the dining hall menus for options they can eat. We decided to make a dynamic website that displays different menus for those with different dietary restrictions.
What it does
BearGrub accesses the UC Berkeley dining halls' websites and stores the ingredients of each meal item. It then reviews each meal and determines which are vegan, vegetarian, or halal. The website then presents three separate menus, one for each dietary restriction that comes with the food items available under that restriction.
How we built it
We built the website using Next.js and used Flask to connect it to our backend Python script. Our Python script accesses the university's .xml dining hall menu files, sorts items based on labels built-in to the .xml file (such as vegan), and runs the ingredients of the remaining items through a GPT model to determine if they are halal.
Challenges we ran into
As beginner hackers, this was the first full-stack project we had worked on. We repeatedly ran into issues when connecting the various pieces of our projects, especially with Flask, but eventually resolved them. Additionally, we had no experience using React.js, so developing the BearGrub website was a challenging learning experience.
Accomplishments we're proud of
We take pride in our website's ability to provide an easy, one-stop shop for individuals with dietary restrictions since our UI makes it very simple for someone to identify all possible meals they can eat in each dining hall. We are also proud of our integration of AI into the backend of our website and the prompt engineering applied to make it work consistently, running seamlessly and ensuring accurate categorization of meal items.
What we learned
The most valuable skill our team gained from this process is the development and management of a full stack. Understanding the connections between the backend, databases, and front end of our website taught us valuable skills applicable to many future projects. Additionally, we learned to integrate LLM API into our projects.
What's next
The next steps are to deploy BearGrub to a public server and integrate a chatbot that can be given queries about the Cal Dining menus and the data collected through our backend processes.
This project did not link a GitHub repository.
Analysis
No indexed repository for this project, so there are no commit stats to show.
Technology
- FlaskUnchecked
- JavaScriptUnchecked
- Next.jsUnchecked
- OpenAIUnchecked
- PythonUnchecked
- ReactUnchecked
- Tailwind CSSUnchecked
- TypeScriptUnchecked
No repository was indexed for this project, so these Devpost claims have not been checked against code.
AI coding agents
No repository was indexed, so agent usage could not be checked.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
No repository was indexed, so there is no codebase to measure.
This project did not link a GitHub repository, so there is nothing to diagram.
This project did not link a GitHub repository, so its feature claims have not been checked against code.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.