safeeyes
Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗NutriScan es una app web (PWA) de salud y nutrición deportiva, desarrollada como proyecto académico para la Universidad Católica de Córdoba (UCC). Permite a deportistas universitarios y usuarios particulares registrar su alimentación diaria —a mano, con el código de barras, con una foto del plato o conversando con un chat— y completar un perfil físico personalizado. Los datos son accesibles para el equipo de investigación a través de un panel analítico, que además cuenta con herramientas para validar los alimentos nuevos y medir la calidad de la IA.
| Rol | Descripción | Acceso |
|---|---|---|
deportista_ucc | Usuario con email @ucc.edu.ar | Onboarding completo (perfil físico + académico + encuesta psicológica) → Home. Estudio a ciegas: no ve calorías ni macros en ninguna pantalla |
particular | Usuario con cualquier otro email | Onboarding reducido (solo perfil físico) → Home, con calorías y macros visibles |
investigador | Acceso mediante código de invitación | Panel de investigación (datos de todos los atletas, validación, revisión de IA) |
administrador | Asignado desde la base de datos | Mismos permisos que investigador en el panel |
Los usuarios deportista_ucc pueden optar por registrarse como particular al momento de elegir su modalidad de uso. El rol se lee siempre en el servidor desde profiles, nunca del cliente.
deportista_ucc se oculta la información numérica.(researcher))| Sección | Ruta | Qué hace |
|---|---|---|
| Dashboard | /dashboard | KPIs, distribución por deporte, cumplimiento semanal y ranking de atletas |
| Deportistas | /deportistas | Tabla con filtros (unidad académica, carrera, año, deporte), detalle por atleta y exportación a Excel (.xlsx) con la fuente de cada dato nutricional |
| Validación | /validacion | Cola de alimentos de deportistas que no estaban en el catálogo: el investigador los modifica, valida (recalcula los ítems vinculados), los vincula a un alimento existente, arma un valor mezclando varios alimentos o los descarta. Todo con auditoría append-only |
| Revisión de IA | /revision-ia | Cola de detecciones de Gemini que el equipo de nutrición debe revisar (ítem quitado, cambio de alimento, corrección grande de peso, confianza baja). Muestra la foto con las marcas de detección y permite confirmar o corregir |
| Métricas de IA | /revision-ia/metricas | Calidad de las detecciones: tasas de corrección, alimentos más corregidos, evolución por versión de prompt, y descarga de un resumen en .md para mejorar el prompt |
Cada pantalla del panel tiene un cajón de ayuda contextual.
POST /api/food-recognition): una sola llamada a Gemini por foto. La imagen se recorta y procesa en el cliente/servidor, se guarda en un bucket privado de Supabase Storage (acceso solo por signed URLs de 5 minutos) y la predicción original se persiste.POST /api/food-recognition/save): calcula los macros sobre el gramaje final. Cada alimento se resuelve por foodRef (elegido en el buscador), por match exacto contra SARA2 o, si no, Gemini elige una entrada del catálogo o estima los valores por 100 g. Todo se escribe en una única transacción (RPC registrar_guardado_deteccion).catalogo, estimado_ia, pendiente, validado, descartado, sin_datos). Los alimentos desconocidos de deportistas UCC pasan a la cola de validación; los de particulares quedan como estimación de la IA.POST /api/chat/meal y /confirm): sin estado, con matching contra SARA2 en el backend (coeficiente de Dice sobre palabras, sin comparación difusa) y estimación de Gemini como respaldo. Con rate limit.v_metricas_ia_items y v_metricas_ia_no_detectados).Detalle de contratos y reglas:
This is the beginning of the README. Read the rest at the original. Read the full README ↗