VITAE — Hackathon Submission

Inspiration

Most nutrition apps are built by teams in the US or Europe, for users in the US or Europe. Suggest avocado toast for breakfast and quinoa bowls for lunch — foods that are expensive, imported, or simply unavailable in South India, West Africa, or rural Southeast Asia. We wanted to build something genuinely inclusive: a health app that meets people where they actually are, with the food they can actually buy, on the budget they actually have.

What it does

VITAE is a worldwide nutrition and fitness app that generates personalized meal plans and exercise schedules to help users reach their optimal BMI. What makes it different:

  • Regional food intelligence — recommends foods actually available in your city and country, with prices adjusted for local purchasing power
  • Budget-aware meal planning — users set a weekly food budget and every recommendation stays within it
  • Allergen safety — covers all 14 EU/FDA/FSSAI allergens with a hard block for true allergies and a soft filter for intolerances
  • Ethnicity-aware BMI — applies WHO Asian-adjusted thresholds for 17 Asian countries instead of the global standard
  • Exercise with medical awareness — checks for chronic conditions, injuries, and contraindications before suggesting any movement; exercise difficulty scales from beginner to advanced with one-tap step up/down
  • Combined daily schedule — meal times and exercise slots are planned together into a single day view

How we built it

The entire stack is free and open source with no AI API costs:

Database: 44-table PostgreSQL schema on Supabase covering foods, recipes, exercises, allergens, BMI standards, pricing, availability, medical conditions, and user profiles.

Food data sourced from four official government/UN databases: USDA Foundation Foods, IFCT 2017 (India, NIN Hyderabad), Australia AFCD, and FAO/INFOODS BioFoodComp — totaling 16,278 foods across 56 countries.

Recipe database built from INDB (1,014 Indian recipes, Gates Foundation), USDA FNDDS (5,262 Western dishes), and 51 hand-built regional recipes covering Chinese, Korean, Japanese, SE Asian, African, Latin American, and Middle Eastern cuisines — 6,327 recipes total with full micronutrient data per serving.

Pricing uses a three-layer model: FAO Food Price Index as the global anchor, World Bank PPP conversion factors per country, and community overrides — giving 911,272 price estimates across all food-country pairs.

Exercise library sourced from the Ainsworth Compendium of Physical Activities (the WHO/ACSM standard) — 58 exercises across 12 movement patterns, each with easy/medium/hard progressions.

Recommendation engine is pure rule-based Python — no ML, no API keys. Allergen filter → availability filter → budget filter → nutrition scoring → substitution engine (40% nutrition match, 35% culinary role, 25% cost).

Frontend is three HTML pages — landing, dashboard, login — with a dark/coral theme, Playfair Display + DM Sans typography, Lottie exercise animations, and scroll-reveal interactions.

Challenges we ran into

  • No global recipe database exists. Every existing open-access recipe dataset is either US-focused or lacks nutritional data. We had to build regional cuisine coverage ourselves by calculating nutrition from ingredients against our own food database.
  • Pricing data is fragmented. No single free source has retail grocery prices globally. We designed a multi-source triangulation model that gracefully degrades when national data is unavailable.
  • Python 3.14 and Supabase compatibility. Python 3.14 had a pip installation bug and the supabase Python client had dependency conflicts. We worked around these by using raw HTTP requests to the Supabase REST API throughout.
  • Batch insert key mismatches. Supabase's REST API rejects batches where rows have inconsistent keys. Every import script needed explicit null-padding for optional fields before batching.
  • IFCT npm package API. The ifct2017 package's API changed between versions — we eventually bypassed it entirely and read the raw CSV directly from the node_modules folder.

Accomplishments that we're proud of

  • 51/51 verification checks passing before moving to the engine layer — every table, every data source, every progression chain verified
  • Building a genuinely global food database from four official government sources that most apps completely ignore
  • Full micronutrient tracking across all 6,327 recipes — calcium, iron, vitamin C, vitamin A, folate, sodium, potassium, zinc — not just macros
  • The substitution engine design — mapping expensive or unavailable "superfood" ingredients to locally available nutritional equivalents is the core of what makes VITAE different from everything else
  • Zero ongoing cost — the entire production stack (Supabase free tier, Vercel, open-source data) runs at ₹0/month

What we learned

  • Official government food databases (USDA, IFCT, AFCD, FAO) are far more comprehensive than most developers realize — and they're free
  • Data cleaning and schema design is genuinely 60% of the work in a data-intensive app; the algorithm layer builds quickly once the foundation is solid
  • Regional food availability is a product problem as much as a data problem — you need human judgment to decide what "unavailable" means in a city-tier context
  • The WHO Asian BMI standard exists and matters — using the global standard for South and East Asian users produces meaningfully wrong health assessments

What's next for VITAE

  • Week 2 engine — BMI calculator, TDEE formula, full recommendation engine, meal plan generator, and exercise schedule builder
  • Week 3 — connecting the frontend to live Supabase data, onboarding flow, Lottie exercise animations, adaptive schedule logic
  • Week 4 — testing, polish, and public launch
  • V2 features — photo-based body composition analysis (inspired by apps like TrackBod), ML model trained on user feedback to improve recommendations over time, mobile app, community recipe submissions with moderation queue

Built With

  • bmi-classification
  • chartjs
  • community-price-reports
  • cormorant-garamond
  • countries
  • cuisine-mapping
  • daily-schedules
  • dm-sans
  • elevenlabs
  • exercise-adaptive
  • exercises
  • fao-data
  • fastapi
  • filmora
  • food-allergens
  • food-availability
  • food-nutrition
  • food-prices-country
  • food-submissions
  • food-substitution
  • foods
  • google-fonts
  • google-fonts-cdn
  • harris-benedict
  • health-calculator
  • javascript
  • jsdelivr
  • libreoffice
  • meal-plans
  • meal-scoring
  • medical-conditions
  • postgresql
  • powershell
  • ppp-factors
  • pptxgenjs
  • price-engine
  • price-estimation
  • program-generator
  • python
  • python-dotenv
  • react-icons
  • recipe-ingredients
  • recipes
  • recommendation-engine
  • requests
  • sharp
  • sql
  • supabase
  • supabase-auth
  • supabase-dashboard
  • supabase-database
  • supabase-js
  • supabase-py
  • user-allergens
  • user-dietary-restrictions
  • user-food-overrides
  • user-profiles
  • user-progress
  • uvicorn
  • vscode
  • who-bmi
Share this project:

Updates