Carlos Narro 3092e19b73 telemetría anónima: POST /telemetry (contadores agregados) + GET /telemetry/summary
Tabla telemetry_daily (day, module, active, opens) sin identificador de usuario
ni contenido: solo cuenta cuántas instalaciones tienen cada módulo activo y
cuántas veces lo abren (fila __submissions__ = envíos del día). El POST agrega
por módulo antes de tocar la BD (evita PK duplicada intra-request). create_all
crea la tabla nueva; no necesita migración ALTER. Tests en SQLite en memoria.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 21:27:39 +02:00

autoayuno-api

Catálogo compartido de alimentos (alimentado de Open Food Facts bajo demanda) y recetas publicables para la app [autoayuno]. Sin cuentas: publicar es anónimo con un deviceToken. Lo personal del usuario vive en su dispositivo; aquí solo lo compartido.

Stack

FastAPI + SQLAlchemy + Postgres (SQLite como fallback en dev). Docker → Dokploy. Dominio: api-autoayuno.carlosnarro.com.

Endpoints

  • GET /health
  • GET /foods?q= — busca en la BD; si hay pocos, importa de Open Food Facts y guarda.
  • POST /foods — alta anónima de un alimento (source=user).
  • GET /recipes?q=, GET /recipes/{id}, POST /recipes — recetas públicas.

Las respuestas usan la forma que espera la app (kcalPer100g, zone, portions, origin).

Desarrollo

pip install -r requirements.txt
uvicorn main:app --reload          # SQLite local por defecto
pytest                             # tests con SQLite en memoria

Producción (Dokploy)

Variable DATABASE_URL con el Postgres. Build por Dockerfile, puerto 8000.

Description
Backend de autoayuno: cat�logo de alimentos (Open Food Facts) y recetas
Readme 78 KiB
Languages
Python 99.3%
Dockerfile 0.7%