feat: update README and technical documentation with user guidance, architectural details, and ongoing work plans

This commit is contained in:
Nils-Johan Gynther
2026-04-30 10:56:57 +02:00
parent 63d225d7f7
commit b7f78fc3ff
3 changed files with 78 additions and 5 deletions
+29 -2
View File
@@ -1,6 +1,6 @@
# Flutter Frontend - User Guide # Flutter Frontend - Användarguide
This README describes how to use the Flutter frontend for Recipe App from a user and operator perspective. Detta dokument beskriver hur du använder Flutter-frontenden för Recipe App ur ett användar- och operatörsperspektiv.
## Senaste ändringar (2026-04-25) ## Senaste ändringar (2026-04-25)
@@ -18,6 +18,33 @@ This README describes how to use the Flutter frontend for Recipe App from a user
- **User-scope för pantry och matplan** — Alla baslager- och matplansdata är nu per användare (inte globala). - **User-scope för pantry och matplan** — Alla baslager- och matplansdata är nu per användare (inte globala).
- **UI/UX-förbättringar** — Produktval med bottenark (ProductPickerField), swipe-för-±1 på inventarielistan (SwipeableInventoryTile), och förbättrad felhantering. - **UI/UX-förbättringar** — Produktval med bottenark (ProductPickerField), swipe-för-±1 på inventarielistan (SwipeableInventoryTile), och förbättrad felhantering.
## Vad appen är
Flutter-webben för Recipe App är en webbklient byggd med Flutter och körs i Docker med Caddy som proxy. Den är avsedd att ersätta den befintliga Next.js-frontenden och stödja framtida mobilklienter.
## Aktuella användarflöden
- Inloggning med användarnamn och lösenord.
- Receptlista efter inloggning.
- Profil-sida (grundversion).
- Utloggning från recept- och profil-sidor.
## Var man kommer åt appen
- Testmiljö: `https://test.gynther.se`
## Inloggningsdetaljer
- Inloggning förväntar sig användarnamn, inte e-post.
- Exempel på seedad admin-användare i backend: `Nadmin`.
- Lösenordet kontrolleras av servermiljövariabeln (`ADMIN_NADMIN_PASSWORD`).
## Kända begränsningar
- Kvittoimport (Fas 6b) är påbörjad men granskningssteg och bulk-spara återstår.
- Bildimport kräver att containrar är uppdaterade med senaste kod — kontrollera att diagnostikloggar syns vid felsökning.
- Vissa adminfunktioner och avancerad AI-integration är planerade men ej migrerade.
## Felsökning (användarnivå)
1. Om sidan visar gammalt beteende efter deployment: hård uppdatering eller öppna i inkognitoläge.
2. Om inloggning misslyckas: verifiera användarnamn/lösenord (inte e-post).
## Relaterade dokument ## Relaterade dokument
- [next_steps_flutter.md](next_steps_flutter.md) - [next_steps_flutter.md](next_steps_flutter.md)
- [teknisk_beskrivning_flutter.md](teknisk_beskrivning_flutter.md) - [teknisk_beskrivning_flutter.md](teknisk_beskrivning_flutter.md)
+16 -3
View File
@@ -9,12 +9,11 @@
- Sprint 2: Användare-fliken stödjer nu Premium av/på direkt från användarmenyn. - Sprint 2: Användare-fliken stödjer nu Premium av/på direkt från användarmenyn.
- Kodkvalitet: Inga absoluta Windows-sökvägar. - Kodkvalitet: Inga absoluta Windows-sökvägar.
- Dokumentation och next_steps uppdaterade. - Dokumentation och next_steps uppdaterade.
# Next Steps: Flutter-migrering # Nästa steg: Flutter-migrering
Relaterade dokument: Relaterade dokument:
- [flutter/README.md](flutter/README.md) - [README.md](README.md)
- [teknisk_beskrivning_flutter.md](teknisk_beskrivning_flutter.md) - [teknisk_beskrivning_flutter.md](teknisk_beskrivning_flutter.md)
- [TEKNISK_BESKRIVNING.md](TEKNISK_BESKRIVNING.md)
## Mål och prioriteringar för produktion ## Mål och prioriteringar för produktion
@@ -30,6 +29,20 @@ Relaterade dokument:
3. Migreringen sker i Flutter-spåret som separat klient mot befintliga API-kontrakt. 3. Migreringen sker i Flutter-spåret som separat klient mot befintliga API-kontrakt.
4. Next-frontend körs parallellt tills Flutter har verifierad parity i kärnflöden. 4. Next-frontend körs parallellt tills Flutter har verifierad parity i kärnflöden.
## Arbetsplan
### Pågående arbete
- **Kvittoimport (Fas 6b):** Påbörjad men granskningssteg och bulk-spara återstår.
- **Bildimport:** Säkerställa att containrar är uppdaterade med senaste kod och att diagnostikloggar syns vid felsökning.
- **Adminfunktioner:** Avancerad AI-integration och ytterligare adminfunktioner planeras men är ej migrerade.
### Prioriterade nästa steg
1. Slutför kvittoimport och bulk-spara.
2. Säkerställa robust bildimport och diagnostik.
3. Implementera avancerad AI-integration för produktkategorisering.
4. Utöka adminfunktioner för användarhantering och produktadministration.
5. Förbättra UI/UX för användarflöden, inklusive onboarding och profilhantering.
## Beslut 2026-04-22 - User-scope för pantry och matplan ## Beslut 2026-04-22 - User-scope för pantry och matplan
- Pantry och matplan ska vara per användare, inte globala. - Pantry och matplan ska vara per användare, inte globala.
+33
View File
@@ -21,6 +21,39 @@ Viktigt att komma ihåg vid implementering av nya funktioner och kodning är att
- Web först, men med arkitektur som kan återanvändas för Android/iOS. - Web först, men med arkitektur som kan återanvändas för Android/iOS.
- Stegvis migrering av funktioner från befintlig Next.js-frontend. - Stegvis migrering av funktioner från befintlig Next.js-frontend.
## Arkitektur
### Lager
- **Presentation:** Skärmar och widgets i `flutter/lib/features/*/presentation`.
- **State/Application:** Riverpod providers/notifiers i `flutter/lib/features/*/data`.
- **Data/API:** `ApiClient` i `flutter/lib/core/api`.
- **Platform abstraction:** Token storage interface i `flutter/lib/core/platform`.
### Routing
- GoRouter i [flutter/lib/core/router/app_router.dart](flutter/lib/core/router/app_router.dart).
- Nuvarande routes:
- `/login` — loginskärm
- `/recipes` — receptlista (ShellRoute med AppShell)
- `/recipes/create` — nytt recept, utanför ShellRoute
- `/recipes/:id` — receptdetalj, utanför ShellRoute
- `/recipes/:id/edit` — redigera recept, utanför ShellRoute
- `/profile` — profil (ShellRoute med AppShell)
- `/recipes/create` måste vara listad före `/recipes/:id` i routelistan för att undvika konflikt.
- Detaljsidor (detalj, skapa, redigera) ligger utanför ShellRoute för att få full-screen med automatisk back-knapp.
### Auth
- Login endpoint: `POST /api/auth/login`.
## Övrigt
- **Kvittoimport (Fas 6b):** Påbörjad men granskningssteg och bulk-spara återstår.
- **Bildimport:** Säkerställa att containrar är uppdaterade med senaste kod och att diagnostikloggar syns vid felsökning.
- **Adminfunktioner:** Avancerad AI-integration och ytterligare adminfunktioner planeras men är ej migrerade.
## Syfte och mål
- Isolerad Flutter-baserad frontend i separat Docker-service.
- Web först, men med arkitektur som kan återanvändas för Android/iOS.
- Stegvis migrering av funktioner från befintlig Next.js-frontend.
## Relaterade dokument ## Relaterade dokument
- [next_steps_flutter.md](next_steps_flutter.md) - [next_steps_flutter.md](next_steps_flutter.md)
- [README.md](README.md) - [README.md](README.md)