Updatede documentation
Test Suite / backend-pr-quick (push) Has been skipped
Test Suite / quick-import-pr-quick (push) Has been skipped
Test Suite / backend-full (push) Successful in 3m35s
Test Suite / flutter-quality (push) Failing after 1m29s

This commit is contained in:
Nils-Johan Gynther
2026-05-19 22:01:44 +02:00
parent 6cd5b80adb
commit 996f0d774b
6 changed files with 66 additions and 48 deletions
+9 -1
View File
@@ -43,6 +43,14 @@ MVP ar uppnadd nar en vanlig anvandare kan importera, granska och spara kvitto/r
## Nyligen klart ## Nyligen klart
## Utförda steg (2026-05-19)
- [x] **Flyerimport-sessioner i backend:** Implementerat session-endpoints för senaste och specifik session.
- [x] **Flyerimport-persistens i Flutter:** Lättviktig lagring i `SharedPreferences` med `sessionId` + vald state.
- [x] **Hydreringsflöde i klient:** Restore lokalt -> hämta via sessionId -> fallback till latest-session.
- [x] **HTTP-semantik + optimering:** 404 för saknad session och single-query för latest-session.
- [x] **Regressionstester:** Backendtester för flyer-sessioner tillagda och gröna (3/3).
## Utförda steg (2026-05-18) ## Utförda steg (2026-05-18)
- [x] **ESLint i backend + CI:** ESLint-konfiguration tillagd i backend och CI-workflow uppdaterad med lint-step för PR/push. - [x] **ESLint i backend + CI:** ESLint-konfiguration tillagd i backend och CI-workflow uppdaterad med lint-step för PR/push.
@@ -141,7 +149,7 @@ MVP ar uppnadd nar en vanlig anvandare kan importera, granska och spara kvitto/r
- Deploy-script förbättrad med selektiv build och seed-kontroll - Deploy-script förbättrad med selektiv build och seed-kontroll
- Se `SESSION_2026-05-09_RECEIPT_IMPORT.md` för detaljer - Se `SESSION_2026-05-09_RECEIPT_IMPORT.md` för detaljer
- **Todo:** Deploy till prod, testa i live miljö, ev. add UI för user private rename/merge - **Todo:** Deploy till prod, testa i live miljö, ev. add UI för user private rename/merge
4. Stabilisera bildimport och diagnostik i alla miljöer. 4. Verifiera flyerimportens sessionhydrering end-to-end i test/staging (tab-byte + app-omstart).
5. Lokalisera kvarvarande stora Flutter-vyer i import/inventarie. 5. Lokalisera kvarvarande stora Flutter-vyer i import/inventarie.
6. Förbereda avancerad AI-integration med tydlig loggning/audit. 6. Förbereda avancerad AI-integration med tydlig loggning/audit.
7. Påbörja EAN-stöd via Open Food Facts. 7. Påbörja EAN-stöd via Open Food Facts.
+8
View File
@@ -1,4 +1,12 @@
# Nyheter och förbättringar (2026-05-19)
- **Flyerimport-sessioner i backend:** Nya endpoints `GET /api/flyer-import/sessions/latest` och `GET /api/flyer-import/sessions/:sessionId` för att återhämta senaste eller specifik importsession per användare.
- **Persistens i Flutter för flyerimport:** `flyer_import_session.dart` sparar nu endast `sessionId`, `fileName` och valda rader i `SharedPreferences` för lättviktig cache.
- **Hydrering vid återöppning:** Flutter-tabben återläser lokalt tillstånd och hämtar därefter full session från backend, med fallback till senaste session.
- **Robustare felsemantik:** Backend returnerar `NotFoundException` (404) för saknade sessioner i stället för `BadRequestException`.
- **Verifiering:** Backend typecheck och tjänstetester (`flyer-import.service.spec.ts`, 3/3) passerar.
# Nyheter och förbättringar (2026-05-18) # Nyheter och förbättringar (2026-05-18)
- **CI: ESLint för backend:** ESLint är infört i backend (`backend/eslint.config.mjs`) och körs i GitHub Actions (`.github/workflows/test.yml`) via steget `Lint backend`. - **CI: ESLint för backend:** ESLint är infört i backend (`backend/eslint.config.mjs`) och körs i GitHub Actions (`.github/workflows/test.yml`) via steget `Lint backend`.
+10 -1
View File
@@ -1,4 +1,13 @@
# Migrering: Import-funktion → microservice-importer (GENOMFÖRD 2026-04-30) # Nyheter och förbättringar (2026-05-19)
- **Flyer-session API i recipe-api:** `flyer-import.controller.ts` exponerar `GET /api/flyer-import/sessions/latest` och `GET /api/flyer-import/sessions/:sessionId`.
- **Sessionmappning i service-lager:** `toFlyerImportResponseFromSession(...)` samlar mappning av session + items till standardiserat API-svar.
- **HTTP-semantik:** Saknad session returnerar `NotFoundException` (404), vilket förenklar klientlogik och observability.
- **Query-optimering:** `getLatestSession(...)` använder en enda Prisma-fråga med `include: items` i stället för dubbelhämtning.
- **Flutter-cache-strategi:** Klienten persisterar endast metadata (`sessionId`, filnamn, valda rader) och hämtar full data från backend vid hydrering.
- **Teststatus:** `flyer-import.service.spec.ts` verifierar not-found, ägd session och tom latest-session (3/3 gröna).
# Migrering: Import-funktion → microservice-importer (GENOMFÖRD 2026-04-30)
Recipe-apps importflöde (quick-import, parse-markdown, receipt-import) är nu migrerat till en separat microservice-importer: Recipe-apps importflöde (quick-import, parse-markdown, receipt-import) är nu migrerat till en separat microservice-importer:
- All URL-skrapning, OCR, PDF-parsning och AI-kvittoparsning sker i microservice-importer (NestJS, Docker, port 3001 internt). - All URL-skrapning, OCR, PDF-parsning och AI-kvittoparsning sker i microservice-importer (NestJS, Docker, port 3001 internt).
+5 -5
View File
@@ -3,7 +3,7 @@
Detta dokument ar for anvandare och operativa testare. Detta dokument ar for anvandare och operativa testare.
Har beskriver vi vad som fungerar i Flutter-klienten och hur den anvands i praktiken. Har beskriver vi vad som fungerar i Flutter-klienten och hur den anvands i praktiken.
## Dokumentstatus (2026-05-03) ## Dokumentstatus (2026-05-19)
- Fokus: anvandarflode, inte implementation. - Fokus: anvandarflode, inte implementation.
- Teknisk detaljniva finns i `teknisk_beskrivning_flutter.md`. - Teknisk detaljniva finns i `teknisk_beskrivning_flutter.md`.
@@ -20,6 +20,8 @@ Den anvands parallellt med Next-frontenden under migrering och verifiering.
- Pagande kvittoimport sparas i klientens session och kan atertas efter refresh/navigation. - Pagande kvittoimport sparas i klientens session och kan atertas efter refresh/navigation.
- Tolkning av antal/forpackning i kvittorader ar forbattrad, inklusive format som `2st`. - Tolkning av antal/forpackning i kvittorader ar forbattrad, inklusive format som `2st`.
- AI-kategoriforslag och produktforslag visas separerat for tydligare val. - AI-kategoriforslag och produktforslag visas separerat for tydligare val.
- Flyerimport har nu sessionpersistens med lattviktig cache (`sessionId`, filnamn, valda rader).
- Flyer-tabben hydrerar tillstand via backend-sessioner vid aterbesok och app-omstart.
## Aktuella anvandarfloden ## Aktuella anvandarfloden
@@ -46,8 +48,6 @@ Den anvands parallellt med Next-frontenden under migrering och verifiering.
- `teknisk_beskrivning_flutter.md` - teknisk referens for drift/utveckling. - `teknisk_beskrivning_flutter.md` - teknisk referens for drift/utveckling.
- `../README.md` - overgripande produktinformation. - `../README.md` - overgripande produktinformation.
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR. ## Notering
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR. Aktiv och detaljerad status for Flutter-sparet finns i rotens dokumentation och i teknisk Flutter-dokumentation i samma katalog.
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR.
+5 -16
View File
@@ -3,7 +3,7 @@
Detta dokument ar Flutter-teamets roadmap och prioriteringslista. Detta dokument ar Flutter-teamets roadmap och prioriteringslista.
All historik och implementationdetaljer finns i `teknisk_beskrivning_flutter.md`. All historik och implementationdetaljer finns i `teknisk_beskrivning_flutter.md`.
## Dokumentstatus (2026-05-03) ## Dokumentstatus (2026-05-19)
- Fokus: aktiv planering framat. - Fokus: aktiv planering framat.
- Endast en roadmap for Flutter for att undvika dubbletter. - Endast en roadmap for Flutter for att undvika dubbletter.
@@ -13,12 +13,14 @@ All historik och implementationdetaljer finns i `teknisk_beskrivning_flutter.md`
- Fas 6b: granskningsflode for kvittoimport (edit, destination, merge, spara). - Fas 6b: granskningsflode for kvittoimport (edit, destination, merge, spara).
- Fas 6c: separering av AI-kategorichip och produktforslagschip. - Fas 6c: separering av AI-kategorichip och produktforslagschip.
- Fas 6d: klientpersistens for pagande kvittoimport + forbattrad antal/forpackningsinferens. - Fas 6d: klientpersistens for pagande kvittoimport + forbattrad antal/forpackningsinferens.
- Flyerimport: sessionpersistens i klient och backend-hydrering via sessions-endpoints.
## Pagande arbete ## Pagande arbete
- Robust bildimport och diagnostik i drift. - Robust bildimport och diagnostik i drift.
- Aliasstrategi i kvittoimport (hybrid user-scope + global fallback via admin). - Aliasstrategi i kvittoimport (hybrid user-scope + global fallback via admin).
- Utokad adminfunktionalitet i Flutter-sparet. - Utokad adminfunktionalitet i Flutter-sparet.
- E2E-verifiering av flyerimport: tab-byte, refresh och app-omstart i staging.
## Prioriterade nasta steg ## Prioriterade nasta steg
@@ -52,20 +54,7 @@ All historik och implementationdetaljer finns i `teknisk_beskrivning_flutter.md`
- `teknisk_beskrivning_flutter.md` - teknisk referens. - `teknisk_beskrivning_flutter.md` - teknisk referens.
- `../NEXT_STEPS.md` - overgripande roadmap for hela produkten. - `../NEXT_STEPS.md` - overgripande roadmap for hela produkten.
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR.
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR. ## Notering
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR. Denna fil ar arkiv/planunderlag for Flutter-sparet. Primar status och prioritering finns i rotens `NEXT_STEPS.md`.
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR.
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR.
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR.
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR.
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR.
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR.
+5 -1
View File
@@ -1 +1,5 @@
## 2026-05-10: Admin-inventarie (CRUD, merge, filter, sortering, preview, säkerhet), user-scope, IDOR-skydd, säkerhetshärdning, optimeringar och utökad testtäckning är nu genomförda och dokumenterade i README, TEKNISK_BESKRIVNING, SÄKERHETSHÄRDNINGSPLAN och SESSIONLOGGAR. ## Arkiverad frontend-dokumentation
- Den aktiva dokumentationen finns i rotens `README.md`, `TEKNISK_BESKRIVNING.md` och `NEXT_STEPS.md`.
- Senaste uppdatering (2026-05-19): flyerimport har session-endpoints i backend och klientpersistens/hydrering i Flutter.
- Denna fil behålls endast som arkivreferens för äldre frontend-spår.