Inspiration

Restaurants, grocers, and suppliers throw away thousands of pounds of perfectly good sealed food every day, not because it's unsafe, but because no efficient channel exists to move it. We wanted to turn an expiration date from a death sentence into a bidding signal.

What it does

It allows Restaurants and Grocery stores to auction off their products that won't be sold before the expiration date for a lower price. This reduces food waste while also benefiting people who are looking to buy cheap ingredients. Customers can place bids on products until a product is either bought out or the auction ends.

How we built it

Next.js 15 App Router with TypeScript and Tailwind v4, Drizzle ORM on Postgres, and NextAuth Google sign-in split into separate consumer and business roles. Shared shell components (SidebarShell, SectionCard, AuctionCard, AuctionCountdown) compose every page. Sellers use a listing composer with three-photo capture and OCR expiry detection; shoppers browse, bid, and claim wins with pickup codes.

Challenges we ran into

One challenge we ran into was struggling with Google Vision OCR to work properly with our application. It wasn't the best at extracting expiration dates due to the low quality and pixelated expiration dates.

Accomplishments that we're proud of

An accomplishment we are proud of is being able to create a UI that made sure both the sellers and buyers were accounted for.

What we learned

We learned how to balance the satisfaction of two different clients at the same time. We learned how to integrate the Gemini API and Google Vision OCR in projects. We also learned how to use different UI prototyping tools, such as Figma, to create well-thought-out designs.

What's next for Ratatouille

We want to integrate a model that can give suggestions to restaurants and grocery stores on how to manage their inventory. It would use information, such as whether or not a product is consistently not sold, to give suggestions on what and what not to buy,

Built With

Share this project:

Updates