Inspiration
SnackMood was inspired by a simple idea: What if checking how healthy your snack is could feel fun, spooky, and interactive? I wanted to combine OCR, nutrition analysis, and a playful Halloween aesthetic to make food-scoring enjoyable instead of boring. The challenge was turning raw ingredient text into meaningful health insight and giving users a cute spooky verdict at the end.
What it does
SnackMood lets users upload a food label image and instantly generates: Extracted ingredients using Google Vision OCR A health-based score (0–100) A spooky verdict: Healthy Hero, Focus Phantom, Energy Vampire, or Sugar Demon Top concerns (sugar, sodium, additives, oils) Personalized suggestions Animated Halloween visuals + spooky sound effects It makes nutrition analysis fun, fast, and entertaining.
How we built it
Frontend (Vite + React): Image upload interface Animated spooky UI with ghosts + sound effects Fetches OCR + score from backend Fully responsive design Backend (Express): /api/upload → processes image with Google Vision API /api/analyze → custom scoring logic using nutrition + ingredient heuristics Handles additives, oils, sugar levels, and nutritional bonuses Built With Kiro: Vibe-coding sessions to generate UI, scoring logic, and Express routes Specs to define exact API structures and OCR pipeline Hooks to automate boilerplate validation and response formatting Steering docs to enforce consistent, clean, production-ready code MCP to write/update files directly in the repo during development
Challenges we ran into
OCR parsing inconsistencies: real labels vary a lot, requiring robust text handling Backend 502 errors on Render: caused by missing credential files + wrong environment variable setup Frontend/Backend sync issues: ensuring correct API URLs and environment variable handling across Vercel + Render Balancing fun + accuracy: merging serious nutrition scoring with a spooky UI required iterative design
Accomplishments that we're proud of
Built a fully working full-stack OCR nutrition analyzer Seamlessly integrated Google Vision OCR with Express Created a spooky, animated UI that actually makes nutrition fun Developed a deterministic scoring system from scratch Used Kiro end-to-end: specs, hooks, steering, and vibe coding Successfully deployed on Vercel
What we learned
How to integrate OCR into real-world workflows Handling file uploads with Multer + memory buffers Building production-ready Express APIs Debugging cloud deployment issues ( Vercel) Writing deterministic specs for AI-assisted development Using Kiro hooks + steering to improve code quality and consistency
What's next for Snackmood
Barcode scanning using the device camera More advanced ML-based nutrition scoring Saving user snack history + trends A “Healthy Alternatives” recommendation section A mini spooky game while OCR is processing Full mobile app version (React Native)
Built With
- css
- express.js
- github
- kiro
- multer
- ocr
- react
- vercel
Log in or sign up for Devpost to join the conversation.