Inspiration
Inspiration
A year ago I built a project that generated recipes from typed-in ingredients using AI. It worked, but it still asked people to remember and type everything themselves — which is the opposite of how people cook in real life.
The bigger problem behind that friction is avoidable food waste. Households throw food away because they forget what is already in the fridge, then buy more or default to takeaway. That waste costs families money and adds unnecessary environmental impact. Busy people, students, shift workers, anyone who opens the fridge and thinks “nothing to cook” , feel it most.
For a computer science coursework project that required a sensing component, I wanted to close that gap where the decision actually happens: the kitchen. The “sensor” became the phone’s optical camera. Instead of typing a shopping list, you take a photo of what you already own. That idea became FridgeLens an app that sees what’s in the fridge and turns it into dinner you can cook tonight.
The social goal is simple: help people use food they already paid for, waste less, and skip another unnecessary shop or takeaway. FridgeLens is meant to meet people in the kitchen, with the device they already have.
What it does
FridgeLens helps you cook from what’s already in your fridge.
- Snap a photo of your fridge or ingredients
- AI detects the food items in the image
- Review and edit the ingredient list (add, remove, fix mistakes)
- Generate recipes matched to what you have, with cuisine-style options
- Save history so past recipes aren’t lost
- Sign in and optionally upgrade to Premium for unlimited recipe generations
How we built it
FridgeLens is a mobile + API product:
- App: Expo / React Native (iOS and Android)
- Sensing: phone camera photo → ingredient detection with a fine-tuned YOLOv8 model (plus a vision fallback for harder fridge photos)
- Recipes: AI generates meals from the detected (and user-edited) ingredients
- Backend: FastAPI API with PostgreSQL for users, usage limits, and recipe history
- Product layer: Firebase auth, Premium subscriptions, and App Store release The key design choice was a human-in-the-loop step: users can fix the ingredient list before generating a recipe, so imperfect detection still leads to a useful dinner.
Challenges we ran into
Detection in the real world — fridges are messy, occluded, and badly lit. Generic models weren’t enough; we needed fridge-focused training, confidence tuning, and a vision fallback. Going from coursework demo → real product — auth, history, usage limits, subscriptions, privacy policy, and App Store / Play review rules. App Store rejection (and fix) — Apple required clear subscription Terms/Privacy links and in-app account deletion. We shipped both and got approved. Production infrastructure — YOLO + PyTorch are heavy; we moved off fragile hosting onto a budget VPS setup and fixed env/database issues in prod.
Accomplishments that we're proud of
Shipped a real iOS app on the App Store, not just a prototype End-to-end loop: photo → detect → edit → recipe → history Survived App Store review (subscriptions + account deletion) Built a full stack: mobile, ML detection, recipe AI, auth, payments, production API
What we learned
Sensing isn’t only fancy hardware — a phone camera is a powerful, ubiquitous sensor when the UX is right Users need a human-in-the-loop step (edit ingredients); pure auto-detection isn’t enough Shipping means compliance, payments, and infra — not just the model Small TikTok tests teach faster than waiting for perfect marketing Solo building forces prioritisation: ship the core loop first, then polish
What's next for FridgeLens
What's next for FridgeLens Finish Google Play production release Improve detection accuracy and multi-image fridge scans Better recipe quality (servings, dietary prefs, spice pantry) Grow users via TikTok + micro-creator collabs Learn from real usage: which cuisines, failure cases, and retention patterns matter most
Built With
- expo.io
- fastapi
- firebase
- postgresql
- revenuecat
- yolov8
Log in or sign up for Devpost to join the conversation.