Inspiration
Coming into college, it was definitely a change to have complete free will over my diet. Given all the dessert options, something I would never usually get at home, it's easy to want to eat a diet that may not meet all your nutrient goals. It's also very common to take more than you need and as a result, a lot of food goes to waste. While there is nothing wrong with eating enjoyment, we do not want to contribute to food waste either. We decided to develop this project to build optimal meal plans for the user.
What it does
CruzFeeds starts with asking you the dining hall you are going too. After selecting this, you are then asked to input your dietary restrictions. The user then inputs their age/weight/sex/height as well as weight goal (gain/loss/maintain) to calculate their optimal caloric goal in this meal, OR they can skip this and go directly to choosing breakfast, lunch, or dinner. Finally, the meal plans are displayed.
How we built it
We utilized Flask for the back-end. All of our python code is in one file called app.py. We didn't use a specific framework for our front-end, and coded some html / css files that we put in a templates folder, which are rendered in app.py.
Challenges we ran into
We ran into many challenges during the process of making this. For starters, we are all beginners and this is our first Hackathon, so we weren't too familiar with working through GitHub and much of the front-end coding.
Our original plan was to use web scraping or utilize some API to get the dining hall info individually, which would then be formatted into a .csv file. We would then use pandas to get the data from this file. However, we couldn't find this API and couldn't figure out how to web scrape. We decided to simply manually take the data of one day and use it for a demo, and in the future, add the capabilities to do so such that we can consider different dining halls on different days.
Another issue we ran into was the filtration process of the meal generation. It mostly works for the case when you skip inputting personal details, however if you input it, the filtration doesn't work based on the dietary restrictions. This was a huge issue we ran into, and we couldn't quite figure it out in time. We want to improve on this in the future.
Accomplishments that we're proud of
We are very happy with our front-end, especially as beginners. We feel that it runs smoothly and for our first application, it runs pretty well. While there are many big issues that we still want to deal with, we feel satisfied with our progress for first-timers.
What we learned
We learned a lot more about how to use GitHub for collaboration, front-end coding, and a basic process of using a web framework.
What's next for CruzFeeds
As we mentioned in our challenges, we have a lot to work on. We want to look into web scraping, and since there is a Slug Dining Hall app that displays the meal plans, the API definitely exists somewhere.
We also want to ensure that the filtration process works to generate only meal plans that fit to the dietary needs.
Log in or sign up for Devpost to join the conversation.