Inspiration
As people who love to eat delicious food, we thought it would be a cool idea to create a website that could allow us to reexperience some of our most favorite dishes. A bonus we thought that this website would be able to provide us was naming some unfamiliar foods from other cultures that we may have no idea the name for.
What it does
Recipic is a website where users can upload images of food to get recipes of it. To access the website, you must first register or log in. After successfully logging in, you will be redirected to a page where you are able to upload an image. A trained machine learning algorithm will then classify the image and pull up recipes with nutritional facts using API requests.
How we built it
We built Recipic using a variety of tools. To create our log in, we used a MYSQL database which would securely store the usernames and passwords of registered users, which would be matched upon once a user attempted to log into the website. The machine learning model was made by using Teachable by Google to train on data gained from Kaggle, an online database of data for machine learning programmers. After training the model, we used ML5 and P5 to implement the model in JavaScript, which was the code our website mostly ran in. After the machine learning model classified the food, we used server API requests to Edamame, a provider of nutritional data and analytics. The website was coded in HTML, CSS, and JavaScript. Some of the images shown on the website is from Unsplash, a free image database. The intro slides were created on Google Slides using the shapes and text features provided.
Challenges we ran into
One challenge we ran into was attempting to create a MYSQL database for a localhost. It was our first time attempting to use MYSQL on a localhost, and it took us extremely long to finally figure out how to get the server connected without restrictions. Another challenge we had was attempting to use Teachable to train the data. The training data was over 5 GB in size, and we had to limit the amount of data we used to make sure the Teachable website did not crash. We were unsuccessful sometimes as the website would sometimes stop and we would have to restart training and uploading our training data. We ran into small challenges throughout the coding experience as we were fairly unfamiliar with coding websites and could get barely any sleep in order to make sure we could finish our project.
Accomplishments that we're proud of
There are many accomplishments that we are proud of, but three stand out the most to us. The first one was being able to successfully create a log-in authentication feature. The second was being successfully making API requests that would return data to the website. Finally, we are overall pleased with how the UI looked after the website was complete.
What we learned
The entire coding journey was a learning experience as we struggled and learned how to use tools such as MySQL, Teachable, and making API requests. We also learned that we should also be more open when trying to work with new things. We tended to be focused on one solution that would sometimes not work and spend lots of time wasted trying to implement that one solution even though in the end we implemented a different one.
What's next for Recipic
There is a lot planned for Recipic. The first is getting the website onto a public domain. We will also try to create more interactivity with profile settings on the website such as font size, color themes, and even dietary restrictions. We are thinking of creating options where people can check off any allergies or dietary restrictions that may apply to them so that the recipes that are pulled from the API match their requests. We also want to move on from Teachable and code a machine learning model in a .php or .json file that is not trained on the Internet. This will ensure that we are able to get more training labels and data for our machine learning algorithm.
Log in or sign up for Devpost to join the conversation.