# 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 ```text / 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 2–3) migrations/ Genererade SQL-migrationer (källa: packages/database) monitoring/ Larm, dashboards, healthchecks security/ IAM-policies, hardening-checklista docs/ Produkt- och teknikdokumentation (Del 1–20) ``` ## Kom igång (lokal utveckling) Krav: Node ≥ 22, pnpm ≥ 10, Docker. ```bash # 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 ```bash 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.