Inspiration

We were inspired by the importance that health has for people today. Many are trying to cut down on sugar intake, or meet their protein goals for the gym, but it is hard to always choose the right option or know if there is something better. Since we have these problems a lot, and realize others do too, we realized an app that could do that work for us would be very useful. By having an app that will track nutrition and suggest items for you, you can direct that focus on your goals instead.

What it does

Allows users to scan their products and the app will find the product name and display the nutrition facts and image of the item for them. The app also finds healthier alternatives to product scanned, and then generates an organized, clear list of better options for the user to choose from.

How we built it

Android Studio and Kotlin: We utilized Android Studio for mobile app development so that there was a convenient way for people to use our product. By making it an app, it incentivizes them to use it more frequently and be able to choose options that are best for them.

Barcode Lookup API: We used the Barcode Lookup API to search for the product the user inputted and then return the list of nutrition facts to them so it was clear what they could gain from this item.

Firebase ML Kit: We implemented the preview screen using the CameraX library, and utilized the ImageAnalysis feature to analyze the screen on a per-frame basis. Additionally, We integrated the Firebase ML Kit library to retrieve information from barcodes as soon as they are recognized on the screen.

OpenAI: We then used the product name to ask ChatGPT to recommend a range of better options for the user to choose from based on their goals. This allows for a more targeted experience, and allows the user more freedom.

Challenges we ran into

Integration of Barcode Lookup API: Using the Barcode Lookup API was a bit difficult because they only allow a limited number of lookups per user. This meant we had a very limited number of testing opportunities. However, we were able to optimize the app and work around this hurdle by carefully tracking the code step by step.

Chatbot Interaction and Integration: Using OpenAI was challenging as well because ChatGPT would list out a lot of details and analysis that we did not want to display for the sake of organization. Since it was irrelevant information, we had to finetune the process and format the responses to give us the information we needed. It also returned the wrong product recommendations, so we had to train it with the correct prompts and information to give accurate and helpful results.

User Interface Design: Creating the UI was also a bit difficult because we needed a clear idea of what layout we wanted in order to keep the app simple and not get cluttered. We were able to learn the functions of Android studio to properly see our changes to create a pleasant user experience.

Accomplishments that we're proud of

Successful Recommendations: Being able to format all of the features correctly and run smoothly took a lot of finetuning, but it was possible and came together to run very smoothly at the end. Even though we had problems with the APIs, when we were able to use them properly, it was satisfying to see the end result.

User-Friendly Design: We had a basic template for a long time because we were focusing on the implementation and logic of the features. This looked dull throughout the process, so when we decided on a design and color scheme, we put a lot of thought into what would be most aesthetically pleasing. Designing the logo for the front page also included a personal touch.

What we learned

We learned a lot about Android Studio. It was a steep learning curve, but it was worth it to be able to create a more convenient mobile app to use. Using Android Studio meant we had to learn the design elements on it too, which was hard because we were only used to CSS styling before. For our more experienced Android Studio member, we learned about working collaboratively on a mobile app and dealing with merge conflicts and git branches while optimizing. All of the struggles gave us a lot of experience with the IDE.

What's next for NutriScan

Some more features we could add to NutriScan would be a progress bar and more involved goal tracking. Right now we have the tools for it, since we have access to the numbers in the nutrition labels, but because of time constraints, we were not able to fully integrate that feature. In the future, users would be able to see more specifically what they are trying to accomplish, as well as how far they have completed their goals.

Built With

Share this project:

Updates