Inspiration
Cooking is a shared passion of ours and we enjoy making new recipes that we find on social media, but I usually run into a few key roadblocks. The first is that I'll save the recipe to a folder on the app and end up never making it since it's out of sight, out of mind. The second is even when I go through the folder to find it, I end up realizing I don't have the right ingredients to make it. The third problem is that if I have the energy to go buy, the right ingredients, I end up with a bunch of stuff I end up never using for any other recipe. This really frustrated me and since I figured it's a problem most young cooking enthusiasts also face, I decided to pitch a solution for this nuisance in my life to my teammates.
What it does
Our app takes video URLs from popular social media platforms such as Instagram and uses AI to convert the videos into a text recipe. These recipes are stored on the app on the "Recipes" page. Our pantry allows you to keep track of what ingredients you have in your kitchen, either by scanning the ingredient barcode or entering it manually. Our smart grocery list uses AI to recommend you groceries to purchase on your next shopping trip, based off of the recipes you have saved and the ingredients you have in your pantry.
How we built it
For the front end, we used React.js to build the layout, with some design inspiration from Vercel v0. In the back end, we used Django to set up the server and routing, with SQLite as the database. We used the Google Gemini API to power our AI features. To process the video files and transcribe them to recipes, we used FFmpeg.
Challenges we ran into
We had a hard time with the barcode scanner not displaying the camera video stream onto the webpage. We also had some trouble working around browser security features like CORS, which we fixed by adding some middleware. Another issue was installing FFmpeg and getting it integrated into our project. We had a lot of other minor issues, but these were some of the main ones.
Accomplishments that we're proud of
Our team synergy was very good, with everyone being split cleanly into their roles and being able to bring them together in the end with minimal logical or version control errors. Our project was very organized, and we have a well-functioning backend combined with an aesthetically pleasing frontend. Also, the video to text feature is something we didn't have that much experience with, so I'm glad we were able to get that working.
What we learned
We learned a lot about integrating Gemini API best practices for our backend processes to run smoothly, as well as processing audio files and converting them to text. We also learned a lot about how to have a clean GitHub workflow to avoid version control errors and project layout. Lastly, we found a balance between functionality and presentation, implementing a realistic amount of features in the time frame while ensuring our presentation will run smoothly.
What's next for reciPal
Although we didn't have time, we would have loved to implement a chatbot named Spork that would help the user with any questions they have. We also would like to get user authentication working, so that each user can have a personalized experience. Another feature we wanted to add was updating the grocery list page to reflect any changes you make to your pantry.
Log in or sign up for Devpost to join the conversation.