Updatede documentation
This commit is contained in:
+9
-1
@@ -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.
|
||||||
|
|||||||
@@ -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
@@ -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).
|
||||||
|
|||||||
@@ -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.
|
|
||||||
|
|||||||
@@ -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.
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user