Initial commit (unpacked platform)
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# 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
|
||||
<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 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.
|
||||
Reference in New Issue
Block a user