Inspiration

Every "healthy meal" recommendation ignores one huge variable: taste. A low-sodium spinach bowl is medically correct — but to a 78-year-old whose life was built around Sichuan cooking, it's not food, it's an obligation. So when we saw Qloo's 250M+ entity taste graph, we realized the real problem: not nutritional appropriateness, but cultural appropriateness.

TasteCare answers: "healthy food this person would actually love" — grounded not in a generic diet list, but in the specific cultural tastes that made their favorite dishes their favorites.

What it does

Type a simple ask — "i wanna see a film" — and TasteCare:

  1. Resolves your cultural anchors from your taste profile (e.g. Scandals of Classic Hollywood · book · 59% match, Tea · music · 89% match).
  2. Queries Qloo's taste graph for nearest-neighbor entities in the target domain (books, films, dining, music…), ranked by Qloo popularity.
  3. Explains the match — every pick shows its Qloo profile blurb and confidence, proving this isn't an LLM making things up.
  4. Respects health constraints (low-sodium, diabetes, allergies…) as filters on top of taste.

How we built it

  • Frontend: React + Vite SPA, senior-friendly large text, one-tap scenario buttons (meal / book / film), optional voice input.
  • Backend: FastAPI, with a Qloo integration service (search, recommend, cross-domain, cultural-fit, taste-profile endpoints under /api/v1).
  • Voice: local faster-whisper tiny.en (int8) for offline STT, with native browser Web Speech API fallback — mic audio never touches Google.
  • Deployment: single-domain — the built SPA is served from apps/server/static by FastAPI, so frontend + API share one URL, no CORS, no second platform.

Challenges we faced

  • Qloo entity resolution is noisy across languages/domains: a simple "tea" can resolve to a band, a drink, or a place — we validate with domain + match score before trusting it.
  • Cross-domain matching (dining → books) is weaker than same-domain: the graph's nearest neighbors are naturally most confident inside one domain, so we show match percentages transparently instead of hiding the uncertainty.
  • China-network deployment: Vercel's edge was unreachable, so we moved to a single-container FastAPI deploy that serves both UI and API — no CDN hop, one URL, one cold-start.

What we learned

  • Taste is a graph problem, not a classification problem. Similarity lives in latent cultural space, and "people who love X also love Y" generalizes across entirely different domains.
  • Confidence transparency beats fake polish: showing 59% vs 97% Qloo match earns more trust from judges than a confident-sounding wrong answer.
  • Health + culture isn't a compromise — it's a filtration problem: taste graph first, constraint filters second.

Try it

Public demo: https://tastecare-d690c.containers.snapdeploy.app

⚠️ TasteCare is a hackathon prototype for demonstration only — not medical software. Verify health-related suggestions independently.

Built With

Share this project:

Updates

Submission history