Planificación nutricional de precisión.
Un recetario verificado de 32.330 recetas auditadas con corrección de macros, dietas clínicas y personalización por cocina, alergias y habilidad culinaria — servido en menos de 2 segundos y respaldado por un generador con IA como red de seguridad.
Arquitectura del sistema
FitAlaCarte genera los planes a partir de un recetario verificado de 32.330 recetas (meal_templates)
previamente auditadas, en lugar de pedir cada plan a un modelo de lenguaje en tiempo real. El resultado: planes coherentes en menos de 2 segundos,
reproducibles y sin variabilidad entre generaciones. El generador con IA se conserva como red de seguridad para combinaciones extremas.
El slotter filtra el recetario por cocina, dieta, alergias, país y habilidad, y arma la semana. Cubre >99% de las solicitudes.
Si el recetario no ofrece suficientes candidatos, entra el generador con IA (protegido, validado con millones de pruebas).
Ambas vías pasan por normalización de nombres, coherencia de macros y redondeo de cantidades antes de mostrarse.
solicitud → MealPoolService.tryGeneratePlan() (recetario primero, <2 s)
└─ miss → MealPlanGeneratorService.generate() (IA, protegido, ~140-180 s)
ambas → sanitizeStoredPlan → _validateAndFix → _normalizeFoodNames → _enforceMacroCoherence
Cálculo de requerimientos energéticos
El gasto se calcula con la ecuación de Mifflin-St Jeor —recomendada por la Academy of Nutrition and Dietetics por su precisión en población general— multiplicada por un factor de actividad y ajustada al objetivo terapéutico.
Hombres: TMB = 10 × peso(kg) + 6.25 × altura(cm) − 5 × edad + 5
Mujeres: TMB = 10 × peso(kg) + 6.25 × altura(cm) − 5 × edad − 161
GET (TDEE) = TMB × factor de actividad × ajuste por objetivo
| Actividad | Factor |
|---|---|
| Sedentario | × 1.2 |
| Ligero (1-3 días) | × 1.375 |
| Moderado (3-5 días) | × 1.55 |
| Activo (6-7 días) | × 1.725 |
| Muy activo | × 1.9 |
| Objetivo | Ajuste sobre GET |
|---|---|
| Perder grasa | × 0.80 (−20%) |
| Mantenimiento | × 1.00 |
| Fuerza | × 1.05 (+5%) |
| Ganancia muscular | × 1.10 (+10%) |
| Resistencia | × 1.00 |
TDEE dinámico por datos de salud
Cuando el usuario conecta Apple Health / Health Connect, el factor de actividad se recalibra con la energía activa real de los últimos 7 días
(inferActivityFromHealth), y se ofrece un margen calórico del día limitado a ±30%.
Distribución de macronutrientes
La proteína se prescribe por peso corporal (g/kg) para preservar masa magra; la grasa se fija como porcentaje del total y los carbohidratos ocupan el resto, con un piso de seguridad de 50 g/día.
| Objetivo | Proteína | Grasa | Carbohidratos |
|---|---|---|---|
| Perder grasa | mín(2.2 g/kg, 35% kcal) | 30% | resto |
| Ganancia muscular | 2.0 g/kg | 25% | resto |
| Fuerza | 2.0 g/kg | 25% | resto |
| Mantenimiento | 1.8 g/kg | 25% | resto |
| Resistencia | 1.6 g/kg | 20% | resto |
Ejemplo práctico
Usuario: hombre, 80 kg, 175 cm, 30 años, entrena 4 días/semana (moderado), objetivo ganancia muscular.
GET = 1.749 × 1.55 = 2.711 kcal
Objetivo (+10%) = ≈ 2.982 kcal
Proteína 2.0 g/kg = 160 g · Grasa 25% = ≈ 83 g · Carbohidratos = ≈ 399 g
Corrección nutricional post-generación
El sistema no confía ciegamente en los valores que produce la IA. Una base interna de ~900 alimentos, con macros derivados de la USDA FoodData Central, recalcula cada plato según la cantidad real especificada, en 5 idiomas.
Motor de corrección
- 1 Identifica cada alimento por nombre (ES/EN/PT/FR/IT).
- 2 Busca coincidencia por food_key con match por palabra completa (no substring).
- 3 Calcula macros reales según la cantidad indicada.
- 4 Recalcula totales:
calorías = P×4 + C×4 + G×9, comida = Σ alimentos.
USDA: pechuga = 31 g/100 g → 200 × 31/100 = 62 g proteína → corregido
edit_note Macros prescritos por el profesional
El nutriólogo puede sobrescribir los macros calculados automáticamente e imponer su propia prescripción: calorías objetivo y gramos de proteína, carbohidratos y grasa. A partir de ese momento, esos valores se convierten en la fuente de verdad del plan.
- check El recetario selecciona porciones y platos para acercarse a los objetivos definidos por el profesional, no a los del cálculo interno.
- check La corrección nutricional y la coherencia de macros se aplican en torno a la prescripción, manteniendo cada día dentro del rango indicado.
- check Las exclusiones, dietas clínicas y preferencias de cocina del paciente se respetan simultáneamente, sin desviar los totales prescritos.
Exclusiones alimentarias
41 exclusiones disponibles, cada una con todas sus variantes en 5 idiomas y tolerancia cero, protegidas por tres capas independientes.
Instrucción a la IA
Cada exclusión incluye sus variantes en 5 idiomas con énfasis de tolerancia cero.
Filtro post-generación
Un algoritmo escanea cada ingrediente contra keywords multilingües y elimina coincidencias. El recetario descarta plantillas cuyo exclusion_key se cruce con las alergias.
Restricciones lógicas
Se impiden combinaciones contradictorias (ej. pescatariano + sin pescado) con aviso al usuario.
Dietas especiales y clínicas
Cada plantilla lleva dietary_flags derivados de sus ingredientes (vegano, vegetariano, pescatariano, sin gluten, sin lactosa), y encima operan protocolos clínicos.
| Dieta | Auto-excluye | Permite / prioriza |
|---|---|---|
| Pescatariano | Carne roja, pollo, pavo, cordero | Pescado, mariscos, huevos, lácteos |
| Vegetariano | Toda carne, pescado, mariscos | Huevos, lácteos, legumbres |
| Vegano | Todo producto animal | Legumbres, tofu, tempeh, seitán, quinoa |
| FODMAP | ~40 alimentos high-FODMAP | ~50 alimentos low-FODMAP |
| Disbiosis intestinal | Ultraprocesados, azúcares, frituras | Fermentados, prebióticos, omega-3 |
| Control lipídico | Refinados, embutidos, frituras | Omega-3 ≥3 días, avena diaria, legumbres 4-5×/sem |
science Dieta FODMAP
Para síndrome de intestino irritable — basada en las guías de Monash University.
High-FODMAP (evitar)
- close Ajo, cebolla, chalota, puerro, alcachofa, espárrago, coliflor, champiñones
- close Manzana, pera, sandía, mango, cereza, durazno, deshidratados
- close Trigo, centeno, cebada, sémola; legumbres
- close Leche, quesos blandos, yogur regular; miel, agave, polioles
Low-FODMAP (permitido)
- check Zanahoria, calabacín, pimiento, tomate, pepino, espinaca, papa, camote
- check Fresa, arándano, naranja, uva, kiwi, piña, plátano firme, papaya
- check Arroz, avena sin gluten, quinoa, mijo, trigo sarraceno, polenta
- check Quesos duros, sin lactosa; carnes, pescado, huevos, tofu firme
Tip: aceite infusionado con ajo aporta sabor sin FODMAPs (son insolubles en grasa).
cardiology Control lipídico
Triglicéridos y colesterol elevados.
- check Pescado graso ≥3 días/semana (omega-3)
- check Avena diaria (beta-glucanos ↓ LDL)
- check Legumbres 4-5×/semana; aceite de oliva; integrales
- close Refinados, frituras, embutidos, azúcar; carne roja ≤2×/sem
gastroenterology Disbiosis intestinal
Restaurar el equilibrio de la microbiota.
- check Fermentados: kéfir, chucrut, kimchi, miso, tempeh
- check Fibra prebiótica; almidón resistente; caldo de huesos
- check Polifenoles (té verde, cacao 85%+), omega-3
- close Ultraprocesados, azúcares, edulcorantes artificiales, exceso de alcohol
Cocina regional personalizada
El recetario cubre 16 cocinas más una categoría neutra general (la más elegida). El usuario puede combinar varias
y el sistema reparte platos de cada una durante la semana sin mezclar países en un mismo plato.
Personalización del plan
El slotter escoge cada plato considerando habilidad culinaria, tamaño de porción por objetivo calórico y consistencia día a día.
Habilidad culinaria
- Básico → solo recetas básicas (≤8 ingredientes, ≤60 min)
- Intermedio → básico + intermedio
- Avanzado → todas
Tamaño de porción
- Small ≈ 360 kcal
- Medium ≈ 525 kcal
- Large ≈ 750 kcal
- XL ≈ 1.000 kcal
Consistencia calórica
Cada día se mantiene dentro del rango objetivo; si un día se desvía, se escalan proporcionalmente las porciones. Sin el sesgo de "fines de semana bajos" típico de la IA.
Auditoría de calidad — 16 puertas
Las 32.330 recetas pasan 16 puertas de calidad (G1–G16) que se ejecutan sobre el recetario completo. Todas al 100% (o ≥99% cuando aplica margen clínico).
| Puerta | Verifica |
|---|---|
| G1 | Coherencia de macros (Σ ingredientes ≈ totales ±2%) |
| G2 | Calorías dentro del size bucket ±10% |
| G3 | Cada food_key resuelve en la base nutricional |
| G4 | Traducciones completas en 5 idiomas |
| G5 | Firma de cocina presente (cuando cuisine ≠ general) |
| G6 | Tiempo de preparación coherente (3–90 min) |
| G7 | ≥3 ingredientes distintos (snack/small ≥2) |
| G8 | dietary_flags consistentes con ingredientes |
| G9 | exclusion_keys completos (alérgenos registrados) |
| G10 | Sin texto placeholder (TBD/lorem/TODO) |
| G11 | Sin nombres duplicados por (cocina, tipo, tamaño) |
| G12 | Macros respetan normas de cocina (grasa/carb/proteína) |
| G13 | Skill básico → ≤8 ingredientes, ≤60 min |
| G14 | Instrucciones ≥3 frases por idioma |
| G15 | Disponibilidad por país coherente con la cocina |
| G16 | Calidad de chef (≥150 palabras, ≥3 párrafos, sin frases prohibidas) |
restaurant Instrucciones nivel chef
Cada receta trae instrucciones reescritas en 4 párrafos (mise en place / cocción con tiempos y temperaturas / emplatado / consejo del chef) en los 5 idiomas, con cierre localizado (Consejo del chef, Chef tip, Dica do chef, Conseil du chef, Consiglio dello chef). Nada de plantillas genéricas.
Recetas, imágenes y administración
Cada comida muestra una foto representativa del plato real, resuelta por coincidencia de palabra completa contra un catálogo de 559 platos. Las imágenes se entregan desde una red de distribución de contenidos (CDN) —servidores distribuidos geográficamente que almacenan copias de los archivos cerca del usuario— para lograr una carga casi instantánea.
Resolución por prioridad
- 1 Parte principal del nombre (antes de "con"/"with"/",")
- 2 Primer plato tras el separador
- 3 Nombre completo
- 4 Ingredientes; si nada coincide → fallback por tipo
Variantes por semilla: la misma receta muestra siempre la misma foto; recetas distintas, fotos distintas.
admin_panel_settings Portal de administración
El portal /admin/meals lista las 32.330 recetas en fichas (imagen, macros, cocina, tipo, habilidad),
con filtros y búsqueda. Permite editar nombre e instrucciones en 5 idiomas, macros, publicar y sobrescribir la imagen por receta.
Comparativa vs competencia
| Característica | FitAlaCarte | MyFitnessPal | Noom | Yazio |
|---|---|---|---|---|
| Recetario verificado de 32.330 recetas auditadas | check_circle | cancel | cancel | cancel |
| Plan semanal generado por IA | check_circle | cancel | cancel | warning |
| Corrección nutricional (base USDA) | check_circle | cancel | cancel | cancel |
| Triple capa contra alérgenos (41) | check_circle | warning | cancel | warning |
| Dietas clínicas (FODMAP, disbiosis, lipídico) | check_circle | cancel | cancel | cancel |
| Cocina regional (16 cocinas) | check_circle | cancel | cancel | cancel |
| Imágenes por plato (559 catálogo) | check_circle | cancel | cancel | cancel |
| Integrado con rutinas de ejercicio | check_circle | cancel | cancel | cancel |
| 5 idiomas nativos | check_circle | warning | cancel | warning |
Colaboración con profesionales
FitAlaCarte complementa el trabajo del nutriólogo, no lo reemplaza.
El profesional configura
Ajusta macros, exclusiones y preferencias del paciente.
La app ejecuta
Genera planes concretos que el paciente sigue día a día.
Seguimiento integrado
Módulo de progreso corporal para monitoreo profesional.
Limitaciones y transparencia
- infoNo reemplaza la consulta médica. Es una herramienta de apoyo; los pacientes con condiciones médicas deben consultar a su profesional.
- infoPrecisión de macros. Los valores USDA son promedios poblacionales; la variación natural puede alcanzar ±10%.
- infoRecetas verificadas. Auditadas con 16 puertas, pero pueden existir imprecisiones menores en instrucciones de preparación.
- infoDietas clínicas. FODMAP, disbiosis y control lipídico deben supervisarse por un profesional; cada paciente tiene tolerancias individuales.