Our Story
After doing some market research, we figured out that there was a lack of a food application that could scan in a barcode and/or a picture of the nutritional table on the back of food products to allow the user to see how the intake of said product would affect their daily amount of calories, proteins, carbohydrates, fats and sugar. Later functionality would probably include vitamins and minerals too. We also intended to display a weekly dashboard that showed the variation in the amounts of nutrients in the form of a line chart. However, as developing a mobile app would be too platform specific, we decided to first build a website where we could submit pictures of barcodes and nutritional tables to be read in as file input and based on user choice could be added to their daily nutritional intake. To this end, we decided to cross-integrate html and javascript as the front end and python as the back end for our project, using flask to connect the three. We used the pyzbar package for reading the barcode, and OpenFoodFacts API for finding nutritional information about each barcode. We faced issues when converting the barcode image with the right format - our code would convert the barcode into a predominantly European market format (EAN 13)by prefixing an additional zero, so we had to perform string splitting to get our desired American market format (UPC-A). Users can sign up and their login information gets stored in MongoDB Atlas. The program then can cross-reference credentials during login from the database. If the user does not exist or password is incorrect, login is not supposed to happen. If a user successfully logins, they’ll be able to go to the Dashboard and Profile tab. If not, clicking on the Dashboard and Profile tabs would just take you to the home page. Once logged in, the user should be able to add an item by uploading a barcode image into the website, which would then read that barcode, and find the nutritional information and add that information towards the user's daily intake, if the user decides to consume that item. Right now, this functionality is still in development.
We utilized code for our barcode reader from: https://www.geeksforgeeks.org/how-to-make-a-barcode-reader-in-python/ and code for our image-to-text reader from: https://pdf.wondershare.com/ocr/extracting-text-from-image-python.html
and further code from: https://www.w3schools.com/ https://stackexchange.com/ https://shoelace.style/
What's next for NomNomNavigator
Recommendations for what to eat based on the daily total (would require more advanced querying, additional computation).
Log in or sign up for Devpost to join the conversation.