Inspiration
As students, we’ve seen how often food goes to waste simply because it’s hard to tell what’s still usable. Whether through campus resources like RIT FoodShare or local donation efforts such as Flower City Pickers, decisions about produce freshness are usually made quickly and based on limited guidance.
We built freshfind to help people feel more confident when making fast, real-world sorting decisions, offering AI-backed insights and explanations that align with how produce is already categorized as good, going bad, or bad.
What it does
freshfind is an AI-powered produce freshness checker. Volunteers (or anyone) can upload a photo of a fruit or vegetable and receive an instant freshness verdict:
GOOD — safe for consumption and redistribution GOING BAD — borderline; use discretion when consuming BAD — not suitable for redistribution UNSURE — unclear, use your judgement
Each scan includes a confidence score (c∈[0,1]), and a natural language explanation generated by Google Gemini, describing the visual indicators used to reach the verdict. Scans are logged to a history table so you can track what's been inputted over time.
How we built it
Frontend: Next.js 15 + Tailwind CSS v4 AI: Google Gemini for natural language explanation generation Backend: Next.js API route Database & Storage: Supabase for scan history persistence and image storage Typography: Fraunces + DM Sans
Challenges we ran into
Handling uncertainty in visual assessments and avoiding overconfident AI decisions. Ensuring consistent, structured AI outputs suitable for real-time use. Balancing flexibility across many produce types with food safety concerns. Coordinating parallel frontend, backend, and AI development under time constraints.
Accomplishments that we're proud of
Building an end-to-end system in a short timeframe, from photo upload to AI reasoning to persistent storage. Designing a hybrid AI decision pipeline that separates model predictions from human-interpretable verdicts. Prioritizing responsible AI by explicitly handling uncertainty rather than forcing confident answers. Grounding the project in real donation workflows and food safety guidelines. Creating an accessible, clean interface that non-technical users can comfortably use.
What we learned
How to design AI systems that respect uncertainty instead of forcing answers. The importance of clear interfaces and communication when working across roles. How grounding a project in real community needs improves both design and impact. For some of us, this was our first hackathon, and we learned how to quickly turn an idea into a working product as a team.
What's next for FreshFind
Database: Live Supabase integration. Mobile: mobile compatibility for on-site sorting and quick photo capture. Expanded produce model: coverage and refined thresholds for different produce items. Grade mapping: automatically suggest classification based on verdict + produce type, matches with Flower City Pickers' actual sorting workflow.
Built With
- css
- javascript
- next.js
- supabase
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.