https://github.com/Joshua-mb/shiny-barnacle

FreshStart: Building with Empathy at the Table

Created by Grant Clark, Joshua Mburu, Wahbo Sharif, and Josue Flores Sanchez

Inspiration

Food insecurity affects over 1 in 10 households in Minnesota, yet the experience of accessing food shelf resources is often fragmented and stressful. People don't always know what's available before making a trip, and once home, turning a random collection of donated items into an actual meal can feel overwhelming.

We wanted to change that. FreshStart was inspired by a simple question: what if technology could meet people where they are — at home, with what they have — and help them cook with confidence? We wanted to build something that didn't feel charitable or clinical, but genuinely useful and dignifying.

What We Built

FreshStart is a mobile app with three core features:

  • Pantry Scanner — users scan items at home using their camera for instant ingredient recognition
  • Live Food Shelf Inventory — browse what's available at local food shelves before making a trip
  • AI Recipe Engine — receive meal suggestions generated from the intersection of what you have and what's nearby

The core matching logic prioritizes recipes that maximize ingredient overlap, minimizing waste. If a user has $n$ pantry items and a food shelf carries $m$ additional ingredients, the engine surfaces recipes satisfying:

$$\text{score}(r) = \frac{|\text{ingredients}(r) \cap (P \cup S)|}{|\text{ingredients}(r)|}$$

where $P$ is the user's pantry set and $S$ is the local food shelf inventory — essentially a coverage ratio rewarding recipes you can actually finish.

How We Built It

We built FreshStart as a working prototype using React Native for the cross-platform mobile interface, a Node.js/Express backend, and PostgreSQL for inventory data. The AI recipe layer integrates the Claude API to generate contextual, ingredient-aware meal suggestions. For barcode and label scanning, we used device camera APIs paired with an ingredient lookup service.

The food shelf inventory layer was designed as a mock-but-scalable data model, structured so real shelves could push live updates through a simple dashboard — making the system deployable across Twin Cities food resource networks.

Challenges

The biggest challenge was data dignity — designing an experience that never signals to a user that they're in a scarcity situation. Every UI decision, from copy to color, went through that lens.

On the technical side, ingredient normalization was harder than expected. "Pinto beans," "canned beans," and a barcode for Goya Pinto Beans all need to resolve to the same node in the recipe graph. Building a fuzzy matching layer that handled real-world label noise took significant iteration.

Built With

Share this project:

Updates