# Plan för produktlansering

Denna plan bryter ner de viktigaste områdena som behöver åtgärdas för att ta Recipe App till produktionsredo lansering. Varje rubrik motsvarar en punkt i NEXT_STEPS.md och innehåller konkreta delmål och åtgärder.

## 1. Säkerhet & Data

- Kryptera känsliga användaruppgifter i databasen (t.ex. e-post, namn) med AES-256-GCM
- Inför rate limiting på API och AI-endpoints (t.ex. @nestjs/throttler)
- ✅ Lägg till säkerhetshuvuden (Helmet i backend, CSP i frontend) — **Klart 2026-04-21**
  - Caddy: globala headers (HSTS, X-Frame-Options, CORP, COOP, COEP, Referrer-Policy, Permissions-Policy)
  - Next.js: CSP via `next.config.js` med `headers()`-funktionen
  - NestJS: Helmet konfigurerat i `main.ts` som backup (aktiveras vid nästa rebuild)
  - Dokumenterat i TEKNISK_BESKRIVNING.md under "Säkerhetshuvuden"
- Se över hantering av miljövariabler och secrets (ingen hårdkodning)
- Kontrollera och dokumentera rollhantering och accesskontroller

### Steg-för-steg:
1. Identifiera alla fält som ska krypteras och implementera kryptering/dekryptering i backend
2. Lägg till och konfigurera rate limiting i NestJS
3. ✅ Lägg till Helmet och CSP-konfiguration — **Klart**
4. Gå igenom compose.yml och kodbas för att säkerställa att alla hemligheter ligger i .env
5. Dokumentera och testa roll/accesskontroller

## 2. DevOps & Stabilitet

- Sätt upp CI/CD-pipeline för automatiska tester och deployment (t.ex. GitHub Actions eller Gitea Actions)
- Automatisera databas-migreringar och seedning vid deployment
- Lägg till central loggning och monitorering (t.ex. Winston/Pino, health endpoints)
- Säkerställ backup-rutiner för datavolymer (MariaDB, bilder)

### Steg-för-steg:
1. Skapa pipeline för build, test och deploy
2. Automatisera körning av prisma migrate deploy och seed_all.sql
3. Implementera loggning och monitorering
4. Dokumentera och testa backup/restore-rutiner

## 3. Testning & Kvalitet

- Utöka integrationstester och E2E-tester (t.ex. Playwright)
- Striktare validering av API-data (class-validator)
- Säkerställ testtäckning för kritiska flöden (auth, CRUD, AI)

### Steg-för-steg:
1. Identifiera kritiska flöden och skriv tester
2. Lägg till E2E-tester för frontend och backend
3. Gå igenom och skärp validering i DTOs

## 4. Funktionella förbättringar

- Implementera EAN-skanning (Open Food Facts)
- Utveckla AI-baserade receptförslag ("Vad ska jag laga idag?")
- Förbättra enhetskonvertering och UX kring enheter

### Steg-för-steg:
1. Planera och implementera EAN-skanning
2. Utveckla och testa AI-funktion för receptförslag
3. Förbättra och testa enhetslogik och gränssnitt

## 5. Risker & Flaskhalsar

- Optimera AI-anrop och fallback-logik
- Säkerställ backup av datavolymer
- Undvik osynk mellan SQL-seeds och migrationer

### Steg-för-steg:
1. Gå igenom och optimera AI-anrop (kostnad, fallback)
2. Dokumentera och testa backup/restore
3. Se över och dokumentera seed/migration-processen
