Project Info
This project did not submit a demo video on Devpost.
Inspiration
Our inspiration for Grocery Tracker is that feeling when you realize you've forgotten the lettuce in the fridge for more than just a couple of weeks and by now, it's definitely gone bad.
What it does
Grocery Tracker solves this problem by keeping a list of all your groceries with a countdown of the expiration date of each item with just a quick picture of your receipt! Grocery Tracker also generates recipes with your grocery list items for inspiration to get use of all your ingredients!
How we built it
We used React Native and Flask to build a mobile app that can take pictures of receipts and display grocery lists and recipes! With Google Gemini generative AI, grounded in Google Search, we were able to identify food items from receipts, generate the estimated shelf life for each item, and find recipe inspiration!
Challenges we ran into
The most difficult part of the project was getting our React Native front end to communicate with the Flask backend which handled communication with the Google Gemini script. Communicating with the backend was difficult because of the Flask app configuration required for our specific project and the changes in various versions of Flask and React Native made it harder to find helpful resources. Additionally, the asynchronous functions in React Native that were used for communicating with the backend Flask App were difficult to use. However, we did not give up and built a fully functional app, learning more about app development and generative AI along the way!
Accomplishments we're proud of
We’re proud of our ability to persevere and create a functional app to the best of our abilities given the limited time we had. At certain points, we felt like giving up and cutting corners when we faced bugs that we didn't understand while working on the project until 5 am, but we refused to do either. As a result, we created an app we are proud of, an app that utilizes AI to solve the problem of food waste, and an app that we want to continue developing in the future!
What we learned
We learned how generative AI has improved in recent developments with technologies such as Gemini's grounding and the RAG technique. Generative AI's ability to 'hallucinate' answers is a concerning limiting factor for its application and we saw firsthand how new developments can reduce this concern! We also gained a ton of experience using Native React and Flask for our full-stack application! Additionally, we learned skills just as important as these tools such as taking a brainstormed project idea and starting the development process to create a real product, how to be patient despite (very frustrating) bugs, and how to utilize the tools we have to create something amazing!
What's next
In the short term, we want to improve Grocery Tracker's UI to make it more attractive and accessible for users. For the long term, we want to continue experimenting with developing generative AI models and techniques to improve the accuracy and add features for Grocery Tracker including an idea to generate shopping lists based on missing ingredients in recipes that users want to use and prioritizing recipe generation for grocery items that are about to go bad!
Grocery Tracker provides a simple, fast solution to keeping track of all your groceries!
With just a picture of your receipts, Grocery Tracker will identify your food items and list them with a countdown of their expected shelf life using Gemini's Generative AI Grounded with Google Search.
After adding some items to the grocery list, Grocery Tracker can generate example recipes using the ingredients in your list!
These features are implemented in a React Native App with Flask for the backend (The actual backend is in a folder named 'backend' in the GroceryTracker folder).
Analysis
View
Metric
- 8
- 2
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- JavaScriptIn code
- PythonIn code
- ReactIn code
- TypeScriptIn code
- FlaskClaimed
- Google GeminiClaimed
4 of 6 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
55 KB
Source files
33
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
jparkk04/grocery-tracker
54 files · 4.9 MB · @ 4855499
Structure
Interface
21 files · 39%Screens, components and styles rendered to the user.
Application logic
8 files · 15%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript74%
- Python18%
- Markdown5%
- JavaScript4%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
GroceryTracker/package.json
npm · 31- @expo/vector-icons
- @react-native-async-storage/async-storage
- @react-navigation/native
- axios
- expo
- expo-constants
- expo-font
- expo-image
- expo-image-picker
- expo-linking
- expo-router
- expo-splash-screen
- expo-status-bar
- expo-system-ui
- expo-web-browser
- react
- react-dom
- react-native
- +13 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.