Sven (AAMOS AI) 2f3cdf8016 FAS 1b: Progressive onboarding (3-layer flow)
- Add PROGRESSIVE_ONBOARDING feature flag to KNOWN_FLAGS
- Add onboarding_step column to users table (a/b/c)
- New backend endpoints:
  - GET /v1/onboarding/status – check current step + feature flag
  - POST /v1/onboarding/quick-start – complete Step A (goal + precision)
  - POST /v1/onboarding/complete-b – complete Step B (diet, allergens, household)
  - POST /v1/onboarding/complete-c – complete Step C (health profile)
  - POST /v1/onboarding/skip – GDPR-friendly skip
- Refactor mobile onboarding screen into 3 progressive layers
- Update auth store with onboardingStep state
- Update tab layout to only block on Step A
- Update registration to set onboardingStep='a'
- Add i18n keys for Step B/C titles across all 12 locales
- Add Zod validation schemas (quickStartInputSchema, onboardingStatusSchema)
- Add tests for validation and feature flag
- Preserve existing /v1/me/onboarding for backward compatibility
- Migration: 0004_progressive_onboarding.sql
2026-08-06 00:40:59 +07:00
2026-08-05 19:21:11 +07:00
2026-08-05 19:21:11 +07:00
2026-08-05 19:21:11 +07:00
2026-08-05 19:21:11 +07:00
2026-08-05 19:21:11 +07:00
2026-08-05 19:21:11 +07:00

Plattformen (arbetsnamn: se brand.config.json)

AI-baserat operativsystem för hushållets mat, recept, nutrition, inköp och matsvinn.

Monorepo för hela plattformen: mobilapp (iOS/Android), Food API, worker, adminpanel och alla delade paket. Byggd enligt master-specifikationen i docs/.

Struktur

<repo-rot>/
  apps/
    mobile/        Expo/React Native-app (iOS + Android)
    api/           Food API (Fastify)  enda ingången för mobilappen
    worker/        BullMQ-workers (bildanalys, kvitton, notiser, subscriptions …)
    admin/         Adminpanel (Vite + React)

  packages/
    shared-types/            Domäntyper, enums och konstanter
    validation/              Zod-scheman för API-kontrakt
    database/                Drizzle-schema, migrationer, seed, repositories
    inventory-engine/        Transaktionsbaserat matlager (Food Twin), FEFO, bäst före
    recipe-engine/           Receptmatchning, filtrering, substitution, skalning
    nutrition-engine/        Deterministisk näringsberäkning, BMR/TDEE, dagsmål
    recommendation-engine/   "Vad ska vi äta?"  poängsättning + förklaringar
    ai-contracts/            Typade AAMOS-kontrakt + HTTP-klient (mock för dev/test)
    memory-client/           AAMOS Memory  lager, samtycken, "Vad appen vet om mig"
    subscriptions/           Planer, entitlements, StoreKit/Play-verifiering
    connectors/              Connector-interface + Livsmedelsverket/OFF/hälso-stubs
    events/                  Eventkatalog + outbox-publicering
    feature-flags/           Feature flags (env + databas)

  infrastructure/
    docker/        Dockerfiles + docker-compose
    deployment/    Deploy-skript för befintlig server (steg 1) → ECS (steg 23)
    migrations/    Genererade SQL-migrationer (källa: packages/database)
    monitoring/    Larm, dashboards, healthchecks
    security/      IAM-policies, hardening-checklista

  docs/            Produkt- och teknikdokumentation (Del 120)

Kom igång (lokal utveckling)

Krav: Node ≥ 22, pnpm ≥ 10, Docker.

# 1. Installera beroenden
pnpm install

# 2. Starta Postgres + Redis
docker compose -f infrastructure/docker/docker-compose.dev.yml up -d

# 3. Miljövariabler
cp .env.example .env

# 4. Migrera + seeda databasen
pnpm db:migrate
pnpm db:seed

# 5. Starta API + worker + admin
pnpm api:dev
pnpm worker:dev
pnpm admin:dev

# 6. Mobilappen
pnpm mobile:start

API:t svarar på http://localhost:4000 (Swagger UI på /docs). Adminpanelen på http://localhost:5173.

Vanliga kommandon

pnpm typecheck     # TypeScript i hela repot
pnpm test          # Alla tester (Vitest)
pnpm build         # Bygg api/worker/admin
pnpm db:generate   # Generera ny SQL-migration från Drizzle-schemat

Kritiska regler (spec §61 gäller all kod)

  1. AI får inte hitta på kalorier eller allergener all nutrition och allergihantering är deterministisk kod.
  2. Mobilappen pratar aldrig direkt med modelleverantörer allt går Mobil → Food API → AAMOS.
  3. Mobilappen innehåller aldrig AI-hemligheter; backend verifierar Premium.
  4. AI ska visa osäkerhet, och korrigering ska vara enkel.
  5. Extern data måste vara juridiskt tillåten. Recept och produkter versionshanteras.

Dokumentation

Börja i docs/README.md där ligger executive summary, beslutslogg, arkitektur, datamodell, API-referens, säkerhets-/GDPR-checklista, utvecklingsfaser och launch-checklista.

Status

Se docs/STATUS.md för vad som är byggt, vad som är stubbar och vad som står näst på tur.

S
Description
No description provided
Readme 167 MiB
Languages
TypeScript 97.9%
Shell 1%
HCL 0.6%
JavaScript 0.2%
Python 0.2%
Other 0.1%