feat: update README and next steps documentation with new features, UX improvements, and production goals
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
+42
-52
@@ -1,78 +1,68 @@
|
||||
# Senaste ändringar (2026-04-24)
|
||||
# Flutter Frontend - User Guide
|
||||
|
||||
This README describes how to use the Flutter frontend for Recipe App from a user and operator perspective.
|
||||
|
||||
## Senaste ändringar (2026-04-25)
|
||||
|
||||
**Arkitektur- och UX-förbättringar:**
|
||||
- Grid-vy för recept: Kolumnval (2/4/6/8) via ikon i AppShell, med Riverpod-provider och SharedPreferences.
|
||||
- RecipesScreen är nu body-only, ingen egen Scaffold/AppBar.
|
||||
- AppShell visar grid-ikon endast på /recipes.
|
||||
- Buggfix: Produktväljaren i pantry/inventarie (ProductPickerField) — bottenark implementeras.
|
||||
- Sprint 2: Databas > Produkter har fått en inbäddad produktadminpanel med sök, okategoriserat-filter och bulk-kategorisering.
|
||||
- Sprint 2: Admin kan nu slå Premium av/på för användare direkt i Användare-fliken.
|
||||
- Kodkvalitet: Inga absoluta Windows-sökvägar.
|
||||
- Dokumentation och next_steps uppdaterade.
|
||||
# Flutter Frontend - User Guide
|
||||
|
||||
This README describes how to use the Flutter frontend for Recipe App from a user and operator perspective.
|
||||
|
||||
Related documents:
|
||||
- [next_steps_flutter.md](../next_steps_flutter.md)
|
||||
- [teknisk_beskrivning_flutter.md](../teknisk_beskrivning_flutter.md)
|
||||
|
||||
## What this app is
|
||||
This is a Flutter Web frontend for Recipe App, served in Docker and exposed through Caddy.
|
||||
It is intended to behave like the existing web frontend, but built in Flutter to support future Android and iOS clients.
|
||||
|
||||
## Current user flows
|
||||
- Login with username and password.
|
||||
- Recipe list view after login.
|
||||
- Profile page (base version).
|
||||
- Logout from recipe/profile pages.
|
||||
|
||||
## Where to access it
|
||||
- Test environment: `https://test.gynther.se`
|
||||
|
||||
## Login details
|
||||
- Login expects username, not email.
|
||||
- Example seeded admin user in backend bootstrap: `Nadmin`.
|
||||
- Password is controlled by server environment variable (`ADMIN_NADMIN_PASSWORD`).
|
||||
|
||||
## Known current scope
|
||||
This is an active migration track. Not all pages from the existing frontend are moved yet.
|
||||
Planned migration sequence is documented in [next_steps_flutter.md](../next_steps_flutter.md).
|
||||
|
||||
## Troubleshooting (user level)
|
||||
1. If page shows old behavior after deploy: hard refresh or open in incognito.
|
||||
2. If login fails: verify username/password (not email).
|
||||
3. If recipes do not load: report browser console/network errors to the dev team.
|
||||
|
||||
|
||||
## Release expectation
|
||||
This frontend is available for iterative testing. Feature parity with the current production frontend is delivered step by step.
|
||||
|
||||
---
|
||||
|
||||
## Nyheter och förbättringar (2026-04-22)
|
||||
|
||||
**Nyheter och förbättringar:**
|
||||
- **Fas 5: Matplan parity** — Veckovy, portionsjustering per dag, inköpslista och inventariejämförelse mot användarens pantry är nu fullt migrerade och user-scopade.
|
||||
- **Fas 6a: Receptimport** — Importflöde för recept (fil/URL) är nu robust, med stöd för PDF, bild och ICA-länkar. Prefill av markdown och bild-url fungerar i Flutter.
|
||||
- **Bildimport** — Backend och Flutter har förbättrats med robust bildhantering, normalisering av URL:er, fallback och diagnostikloggning. Bilden sparas och kopplas till receptet vid import.
|
||||
- **User-scope för pantry och matplan** — Alla baslager- och matplansdata är nu per användare (inte globala). Backend och Prisma-schema är migrerade.
|
||||
- **Bildimport** — Backend och Flutter har förbättrats med robust bildhantering, normalisering av URL:er, fallback och diagnostikloggning.
|
||||
- **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.
|
||||
- **Felsökningslogg** — Se `../IMPORT_IMAGE_DEBUG_2026-04-22.md` för detaljerad felsökningshistorik kring bildimport.
|
||||
|
||||
## Relaterade dokument
|
||||
- [next_steps_flutter.md](next_steps_flutter.md)
|
||||
- [teknisk_beskrivning_flutter.md](teknisk_beskrivning_flutter.md)
|
||||
|
||||
## Vad appen är
|
||||
|
||||
Detta är en Flutter Web frontend för Recipe App, som körs i Docker och exponeras via Caddy. Den är avsedd att bete sig som den befintliga webbfrontenden, men är byggd i Flutter för att stödja framtida Android- och iOS-klienter.
|
||||
|
||||
## 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).
|
||||
3. Om recept inte laddas: rapportera fel i webbläsarkonsolen/nätverksfelen till utvecklingsteamet.
|
||||
|
||||
## Förväntningar vid release
|
||||
|
||||
Denna frontend är tillgänglig för iterativ testning. Funktionell parity med den nuvarande produktionsfrontenden levereras stegvis.
|
||||
|
||||
---
|
||||
|
||||
## Nyheter och förbättringar (2026-04-24)
|
||||
|
||||
- **Navigations- och UX-förbättringar:**
|
||||
- Lagt till tydliga navigationslänkar mellan recept, inventarie, baslager och matplan för att förenkla användarflödet.
|
||||
- Tydliga navigationslänkar mellan recept, inventarie, baslager och matplan för att förenkla användarflödet.
|
||||
- Efter att ett recept redigerats, navigeras användaren nu automatiskt till receptdetaljer.
|
||||
- Efter konsumtion av inventariepost navigeras användaren automatiskt tillbaka till inventarielistan.
|
||||
- Efter import av recept navigeras användaren automatiskt till receptlistan.
|
||||
- Mjukare scrollning i receptdetaljvyn och förbättrad bakgrundsbildshantering.
|
||||
- **Kodkvalitet:**
|
||||
- Säkerställt att inga absoluta Windows-sökvägar används i koden, för att stödja bygg och drift på Linux/Ubuntu.
|
||||
- **Teknisk dokumentation:**
|
||||
- Dokumentation och next_steps uppdaterade med dagens förändringar.
|
||||
|
||||
@@ -16,7 +16,14 @@ Relaterade dokument:
|
||||
- [teknisk_beskrivning_flutter.md](teknisk_beskrivning_flutter.md)
|
||||
- [TEKNISK_BESKRIVNING.md](TEKNISK_BESKRIVNING.md)
|
||||
|
||||
## Icke-förhandlingsbara ramar
|
||||
## Mål och prioriteringar för produktion
|
||||
|
||||
### Övergripande mål
|
||||
- **Funktionell parity:** Säkerställa att alla kärnfunktioner är stabila och fungerar som förväntat.
|
||||
- **Användarupplevelse:** Förenkla onboarding och säkerställa att användare snabbt förstår appens värde.
|
||||
- **Produktionsklar:** Säkerställa att appen är redo för lansering genom att adressera kritiska buggar och förbättra prestanda.
|
||||
|
||||
### Icke-förhandlingsbara ramar
|
||||
|
||||
1. Inget ska tas bort eller ändras i `recipe-api` utom explicit beslutade backend-ändringar för användarscope i pantry och matplan.
|
||||
2. Inget ska tas bort eller ändras i `recipe-frontend`.
|
||||
@@ -40,34 +47,41 @@ För v1 ska dessa flöden vara stabila i Flutter:
|
||||
- [x] Produktadmin: lista, sök, sortera, filtrera, AI-kategorisering, merge, restore, inline kategori.
|
||||
- [x] Användaradmin: lista, premium, e-post, skapa, ta bort, återställ lösenord.
|
||||
|
||||
## Arbetsordning för nästa sprint (2026-04-25)
|
||||
## Arbetsordning för produktion
|
||||
|
||||
### 1. Kvittoimport (OCR, bulk-spara)
|
||||
### Fas 1: Kritiska funktioner och buggfixar
|
||||
- **Mål:** Säkerställa att alla kärnfunktioner är stabila och buggfria.
|
||||
|
||||
- **Åtgärder:**
|
||||
- [ ] **Kvittoimport (OCR, bulk-spara):**
|
||||
- [ ] Implementera granskningssteg för kvittoimport.
|
||||
- [ ] Bulk-spara för bekräftade rader.
|
||||
- [ ] Säkerställa att `file_picker: ^8.0.0` är integrerat för filval på Flutter Web.
|
||||
|
||||
### 2. UI/UX-förbättringar
|
||||
- [ ] **Adminpaneler:**
|
||||
- [ ] **UI/UX-förbättringar för adminpaneler:**
|
||||
- [ ] Lägg till tydlig placeholder-text i sökfältet.
|
||||
- [ ] Gör filtreringsalternativen mer visuellt tydliga.
|
||||
- [ ] Lägg till bekräftelsedialog för bulk-åtgärder.
|
||||
- [ ] Förbättra laddningsindikatorn för AI-kategorisering.
|
||||
|
||||
- [ ] **Receptvy:**
|
||||
- [ ] Lägg till tydlig växlingsknapp för grid- och listvy.
|
||||
- [ ] Implementera sorteringsalternativ.
|
||||
- [ ] Förbättra det tomma tillståndet med en tydlig CTA.
|
||||
|
||||
- [ ] **Receptdetaljvy:**
|
||||
- [ ] Lägg till stöd för att visa receptbilder i större format.
|
||||
- [ ] Gör ingredienslistan mer läsbar.
|
||||
|
||||
- [ ] **Gemensamma UI-komponenter:**
|
||||
- [ ] Förbättra felmeddelanden med tydliga instruktioner.
|
||||
- [ ] Använd en visuellt tilltalande laddningsindikator.
|
||||
|
||||
- [ ] **Allmänt:**
|
||||
- [ ] Säkerställa tillgänglighet med tydliga `tooltip`-texter och tillräcklig kontrast.
|
||||
- [ ] Lägg till bekräftelsemeddelanden efter åtgärder.
|
||||
|
||||
### 3. Förbättra konverteringsvägen och onboarding
|
||||
### Fas 2: Förbättra konverteringsvägen och onboarding
|
||||
- **Mål:** Säkerställa att användare snabbt får värde och förstår appens fördelar.
|
||||
|
||||
- **Åtgärder:**
|
||||
@@ -100,7 +114,7 @@ För v1 ska dessa flöden vara stabila i Flutter:
|
||||
- **Möjlighet att hoppa över onboarding:**
|
||||
- [ ] Lägg till en knapp som låter användare hoppa över onboarding och börja använda appen direkt.
|
||||
|
||||
### 4. Testa och iterera
|
||||
### Fas 3: Testa och iterera
|
||||
- **Mål:** Identifiera friktion och förbättra konverteringsvägen.
|
||||
|
||||
- **Åtgärder:**
|
||||
@@ -108,7 +122,7 @@ För v1 ska dessa flöden vara stabila i Flutter:
|
||||
- [ ] A/B-testa olika CTAs och onboarding-flöden för att se vad som fungerar bäst.
|
||||
- [ ] Implementera analytik för att spåra var användare hoppar av och varför.
|
||||
|
||||
### 5. Anpassa till målgruppen
|
||||
### Fas 4: Anpassa till målgruppen
|
||||
- **Mål:** Se till att marknadsföring och CTAs talar direkt till målgruppen.
|
||||
|
||||
- **Åtgärder:**
|
||||
|
||||
Reference in New Issue
Block a user