Asset credits to Alicia Bao
Inspiration
Waking up in the morning as a college student is stressful, you have work due, showers to get, and places to be. One thing on that list that doesn't need to be is figuring out where you are going to eat that day. Our inspiration came from the tedious nature of opening the dining hall menu multiple times each day, which we wanted to automate.
What it does
LennyMenny simply asks users for their favorite menu items and then provides them with daily text message reminders each day. We accomplished this by first collecting user data from a website using HTML and Flask, then sending the data to a database where it is pulled each day via an Azure function. When it is pulled, the UNC dining hall menu website is scraped and the menu items, along with certain tags such as if they are vegan, are returned to a filtering script to send text messages.
How we built it
- HTML, CSS, and JavaScript was used to display the front-end website
- Flask was used as a backend to transfer the form data to a database
- CosmosDB was used to store user data online for daily text message distribution
- NodeJS Axios Cheerio Packages were used to web scrape the UNC dining hall website
- Twillio was used to send text message alerts
- Azure functions for timed text messages and storing and retrieving data from the database
Challenges we ran into
The largest issue we ran into was with web scraping. The challenge was having to filter by Vegan, Gluten Free, and Vegetarian items, which are stored as classes in the HTML, and getting the class tags required converting HTML into a string and searching through that string to find if the class was there or not.
Another challenge we faced was with creating a drop-down selection menu. We figured it out by consulting with the mentors, who guided us through JavaScript implementation to move tags from an unselected drop-down to a selected list. This in turn created a new issue of reading the selected tags. We now needed to use JavaScript to read the items in the selected list and send it to the Flask for management.
Accomplishments we're proud of
We are proud of creating a finished product that combines technologies from across the entire spectrum. Specifically, we are proud of how web scraping can automatically update the menu items in the database as each day's menu changes.
What we learned
We learned a lot. For many of us, this was the first time that we programmed in JavaScript. It was also our group's first time working with web scraping, flask, APIs, and databases.
What's next for LennyMenny
In the future, we would like the favorites selection drop-down to include all possible menu items, scraped off of the dining hall website so that users can select any item they may like instead of our pre-defined options.




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