# Nästa steg > Förslag på vad vi kan ta tag i nästa gång vi öppnar projektet. > Se [README.md](README.md) för funktionsöversikt och [TEKNISK_BESKRIVNING.md](TEKNISK_BESKRIVNING.md) för teknisk detaljerinformation. --- ## Prioriterade förbättringar ### 1. Receptredigering fungerar fullt ut Recept kan nu sparas men det finns inte stöd för att redigera ett befintligt recept (inklusive ingredienser). Kontrollera och testa `PATCH /api/recipes/:id` och frontend-vyn under `app/recipes/[id]/`. ### 2. Baslager kopplat mot inventariet Just nu är baslager och inventariet separata. En naturlig nästa steg är att visa en indikator i baslagerlistan för vilka produkter som faktiskt finns i inventariet just nu — och med hur mycket. ### 3. Produktkategorier — definiera en fast lista Kategorier skrivs in fritt i admin i dag. Det vore bättre med en dropdownlista med fördefinierade kategorier (t.ex. "Mejeri", "Kött & Fisk", "Torrvaror", osv.) för att hålla konsistens i datan och förbättra grupperingen i baslager-vyn. ### 4. Bild på recept `imageUrl`-kolumnen finns i databasen (migrerad). Backend och frontend saknar stöd för att visa eller ladda upp receptbilder. ### 5. Filtrering och sortering av receptlistan Receptlistan visas i dag utan möjlighet att filtrera eller sortera. Lägg till stöd för att filtrera på kategori/tagg och sortera på t.ex. namn eller senast tillagd. Kan implementeras i frontend (klientside) eller som query-parametrar till backend. ### 6. Layout och presentation av receptlistan Receptlistan (`app/recipes/RecipeGrid.tsx`) är en enkel lista. Förbättra presentationen med t.ex. ett kortrutnät med bild, kortnamn och eventuellt tillagningstid — liknande ett receptkort i stil med en matblogg. ### 7. Matplanering Lägg till en enkel veckomenylista: välj ett recept per dag, se en samlad ingredienslista och jämför mot inventariet. Kräver en ny `MealPlan`-modell i Prisma. ### 8. Portionsjustering av recept Recept lagras utan portionsangivelse. Lägg till ett `servings`-fält (heltal, t.ex. 4) på `Recipe`-modellen och låt användaren ange önskat antal portioner i receptvyn. Alla ingrediensmängder räknas då om proportionellt (t.ex. recept för 4 → 6 pers: × 1,5). Implementationen berör: - **Databas:** `servings Int?` på `Recipe` i Prisma + migration - **Backend:** `servings` exponeras i `RecipeDto` och kan sättas vid create/update - **Frontend (`app/recipes/[id]/`):** räknare för portioner (+ / −) bredvid ingredienslistan — beräkningen sker rent i klientkomponenten utan extra API-anrop - **Receptskapande (`app/recipes/create/` och `write/`):** lägg till ett fält för grundportioner - **Matplaneringen (`app/matplan/`):** inköpslistan bör ta hänsyn till önskat portionsantal per dag --- ## Teknisk skuld och städning ### A. CanonicalNameForm och NameForm — ta bort gamla filer `frontend/app/admin/products/NameForm.tsx` och `CanonicalNameForm.tsx` ersattes av `EditProductForm.tsx`. Kontrollera om de gamla filerna fortfarande importeras och radera dem om inte. ### B. Seed-data i versionshantering `data/matvaror_sverige.csv` och `data/seed_products.sql` ligger lokalt men är inte committade. Bestäm om de ska in i repot (för reproducerbarhet) eller hållas utanför. ### C. Enhetstester ✅ Jest + ts-jest är uppsatt. Tester finns för: - `normalize-name.ts` — 10 tester - `base.parser.ts` (`parseIngredientLine`) — 12 tester - `recipes.service.ts` (`normalizeUnit`, `convertUnit`) — 17 tester Kör med `npm test` i `backend/`. ### D. Validering av DTO:er i admin-actions Frontend-server-actions saknar validering på inkommande fält (tom sträng, för lång sträng, osv.). Lägg till enkel `trim()` + max-längd-kontroll i `frontend/app/admin/products/actions.ts`. --- ## Produktdatabasen 193 svenska produkter är inseedad. Nästa naturliga steg: - Lägg till fler saknade produkter som dyker upp vid receptimport - Gå igenom produkter utan `canonicalName` i admin och fyll i dem - Kontrollera att `category` är ifyllt för alla produkter (för bättre gruppering i baslager)