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
|
||||
|
||||
## 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)
|
||||
|
||||
- [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
|
||||
- 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
|
||||
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.
|
||||
6. Förbereda avancerad AI-integration med tydlig loggning/audit.
|
||||
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)
|
||||
|
||||
- **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:
|
||||
- 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.
|
||||
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.
|
||||
- Teknisk detaljniva finns i `teknisk_beskrivning_flutter.md`.
|
||||
@@ -14,12 +14,14 @@ Har beskriver vi vad som fungerar i Flutter-klienten och hur den anvands i prakt
|
||||
Flutter-webben ar en klient for Recipe App som kors i Docker och exponeras via Caddy.
|
||||
Den anvands parallellt med Next-frontenden under migrering och verifiering.
|
||||
|
||||
## Senaste forbattringar
|
||||
|
||||
- Kvittoimportens granskningsflode ar klart och stabiliserat.
|
||||
- Pagande kvittoimport sparas i klientens session och kan atertas efter refresh/navigation.
|
||||
- Tolkning av antal/forpackning i kvittorader ar forbattrad, inklusive format som `2st`.
|
||||
- AI-kategoriforslag och produktforslag visas separerat for tydligare val.
|
||||
## Senaste forbattringar
|
||||
|
||||
- Kvittoimportens granskningsflode ar klart och stabiliserat.
|
||||
- Pagande kvittoimport sparas i klientens session och kan atertas efter refresh/navigation.
|
||||
- Tolkning av antal/forpackning i kvittorader ar forbattrad, inklusive format som `2st`.
|
||||
- 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
|
||||
|
||||
@@ -46,8 +48,6 @@ Den anvands parallellt med Next-frontenden under migrering och verifiering.
|
||||
- `teknisk_beskrivning_flutter.md` - teknisk referens for drift/utveckling.
|
||||
- `../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.
|
||||
|
||||
## 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
|
||||
|
||||
Aktiv och detaljerad status for Flutter-sparet finns i rotens dokumentation och i teknisk Flutter-dokumentation i samma katalog.
|
||||
|
||||
@@ -3,22 +3,24 @@
|
||||
Detta dokument ar Flutter-teamets roadmap och prioriteringslista.
|
||||
All historik och implementationdetaljer finns i `teknisk_beskrivning_flutter.md`.
|
||||
|
||||
## Dokumentstatus (2026-05-03)
|
||||
## Dokumentstatus (2026-05-19)
|
||||
|
||||
- Fokus: aktiv planering framat.
|
||||
- Endast en roadmap for Flutter for att undvika dubbletter.
|
||||
|
||||
## Klart senaste sessionerna
|
||||
## Klart senaste sessionerna
|
||||
|
||||
- Fas 6b: granskningsflode for kvittoimport (edit, destination, merge, spara).
|
||||
- Fas 6c: separering av AI-kategorichip och produktforslagschip.
|
||||
- Fas 6d: klientpersistens for pagande kvittoimport + forbattrad antal/forpackningsinferens.
|
||||
- Flyerimport: sessionpersistens i klient och backend-hydrering via sessions-endpoints.
|
||||
|
||||
- Fas 6b: granskningsflode for kvittoimport (edit, destination, merge, spara).
|
||||
- Fas 6c: separering av AI-kategorichip och produktforslagschip.
|
||||
- Fas 6d: klientpersistens for pagande kvittoimport + forbattrad antal/forpackningsinferens.
|
||||
|
||||
## Pagande arbete
|
||||
|
||||
- Robust bildimport och diagnostik i drift.
|
||||
- Aliasstrategi i kvittoimport (hybrid user-scope + global fallback via admin).
|
||||
- Utokad adminfunktionalitet i Flutter-sparet.
|
||||
## Pagande arbete
|
||||
|
||||
- Robust bildimport och diagnostik i drift.
|
||||
- Aliasstrategi i kvittoimport (hybrid user-scope + global fallback via admin).
|
||||
- Utokad adminfunktionalitet i Flutter-sparet.
|
||||
- E2E-verifiering av flyerimport: tab-byte, refresh och app-omstart i staging.
|
||||
|
||||
## Prioriterade nasta steg
|
||||
|
||||
@@ -34,11 +36,11 @@ All historik och implementationdetaljer finns i `teknisk_beskrivning_flutter.md`
|
||||
- AI-guiding labels ("Denna rad matchade mejeri automatiskt")
|
||||
- Implementering: ~8h
|
||||
|
||||
2. Verifiera bildimport och felhantering end-to-end i testmiljo.
|
||||
3. Implementera alias-inlarning vid manuell korrigering i importflodet.
|
||||
4. Forbattra UI/UX i granskningsfloden for kvittoimport.
|
||||
5. Fortsatt migrering av kvarvarande adminfloden.
|
||||
6. Lokalisera kvarvarande delar i import- och inventarievyer.
|
||||
2. Verifiera bildimport och felhantering end-to-end i testmiljo.
|
||||
3. Implementera alias-inlarning vid manuell korrigering i importflodet.
|
||||
4. Forbattra UI/UX i granskningsfloden for kvittoimport.
|
||||
5. Fortsatt migrering av kvarvarande adminfloden.
|
||||
6. Lokalisera kvarvarande delar i import- och inventarievyer.
|
||||
|
||||
## Viktiga beslut
|
||||
|
||||
@@ -52,20 +54,7 @@ All historik och implementationdetaljer finns i `teknisk_beskrivning_flutter.md`
|
||||
- `teknisk_beskrivning_flutter.md` - teknisk referens.
|
||||
- `../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.
|
||||
|
||||
## 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.
|
||||
|
||||
## 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
|
||||
|
||||
Denna fil ar arkiv/planunderlag for Flutter-sparet. Primar status och prioritering finns i rotens `NEXT_STEPS.md`.
|
||||
|
||||
@@ -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