Inspiration We noticed that most people have no idea what's actually in their food. Calorie counting apps are tedious - you have to manually search every ingredient, every meal. We asked: what if you could just point your camera at your plate and instantly know exactly what you're eating? That question became Nutrico. What it does Nutrico is an AI-powered nutrition tracker that analyzes your meal from a single photo. Point your camera at any food, hit capture, and within seconds Gemini AI identifies the dish, estimates calories, rates the meal's healthiness out of 10, and gives a personalized health suggestion. The results are then cross-referenced against the USDA FoodData Central database to return verified protein, carbs, fat, and fiber values. The app also includes a BMI calculator that generates personalized nutrition targets based on your goals, and a user profile that tracks your daily intake. Challenges we ran into The biggest challenge was the Gemini API token quota. Free tier limits hit fast when you're testing repeatedly, so we had to be strategic - we engineered one single well-structured prompt that returns everything we need in one call rather than making multiple requests. Getting OpenCV to reliably capture a stable camera frame on Windows was also tricky; the MSMF driver needs several warm-up frames before producing a usable image, which required retry logic and deliberate delays. Connecting two separate frontends (React and plain HTML) into one cohesive product flow also took more thought than expected. Accomplishments that we're proud of We're proud that the AI actually works end-to-end - real camera capture, real Gemini analysis, real USDA nutrition data, all in one click. No mocked data, no hardcoded responses. We're also proud of the design consistency across all pages and the small details like the confetti animation when you eat a healthy meal, the animated macro bars, and the live BMI arc gauge. For most of us this was our first time building a full-stack Java + React application under hackathon pressure. What we learned We learned that prompt engineering matters enormously - the structure of how you ask Gemini a question directly determines whether you can reliably parse the response. We also learned how to integrate a computer vision library into a Spring Boot service, how to chain two external APIs together efficiently, and how important it is to design for the demo — a clean user flow from login → scan → results tells a better story than ten disconnected features.

What's next for Nutrico Barcode scanner using ZXing.js for packaged food products "What's in my fridge?" mode - photograph your fridge and get a recipe from whatever ingredients are visible Mobile PWA so users can install and use Nutrico directly from their phone camera User authentication and a real database to persist meal logs across sessions Deeper USDA integration including micronutrients, vitamins, and allergen detection

Share this project:

Updates