Inspiration
The biggest worry for a college student is wondering what to have for breakfast, lunch, and dinner. We just do not have time to think about that on top of all our schoolwork. So we thought about what the ultimate solution to this problem would be. Combining our skillsets in machine learning, and web development, we made a cuisine recommender just based on a picture or a list of your ingredients.
What it does
MFoods is a cuisine recommender application based on the ingredients you have. You can manually input the ingredients you have or you can take a picture of it from which the machine learning code will determine the type of food from an in-house trained model. Either through manual input or through an uploaded picture, the list of ingredients will be sent to Spooncular API and return the top 5 best cuisine recommendations based on the ingredients you have. You would be able to look at the recipe and the necessary ingredients to make that cuisine.
How we built it
MFoods was built using Javascript, HTML/CSS for the front-end and Python for the machine learning (back-end). Javascript was mainly used to call the Spoonacular API whenever a list of ingredients was entered and Python was used to train and code the ML to recognize different types of food from a picture, no API was used and all the programming and training for the ML was done from scratch. HTML/CSS was used to make the overall UI and display all the ingredient and recipe information in an ordered fashion.
Challenges we ran into
The two biggest challenges we ran into were training the model and connecting the machine learning to the front end. Often we would get an upward trend in the accuracy of the model but after another test, the model would dip in accuracy because of overtraining and finding a balance between the size of the training set and the test set was really important. The problem with connecting the ML to our front end was that when we tried to upload the image from the frontend to the backend, the image would "disappear" and figuring out how the image was being sent was a big problem.
Accomplishments that we're proud of
The biggest accomplishment is our in-house trained machine learning program that could determine foods based on pictures. We were able to train an ML model to differentiate between different categories of food. Another accomplishment that we are proud of is that all of us discovered and gained a new skill set from this hackathon.
What we learned
We learned how to train a whole ML model using Python and connect it to front-end using javascript and HMTL. Another topic we learned was front-end web development building index.html/js and styles.css from scratch instead of using frameworks like React.
What's next for MFoods
Upcoming updates for MFoods include the ability to have preferences in the type of cuisine you get recommended and a better-trained machine learning program.

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