# Plan för förbättrad dokumentationsstruktur ## Bakgrund Projektet har idag över 20 `.md`-filer spridda över olika mappar, vilket gör det svårt att hitta information och förstå projektets helhet. Den nya strukturen syftar till att: - **Göra dokumentationen användarvänlig** för både utvecklare och språkmodeller. - **Optimerad för underhåll** med tydlig separation mellan aktiv och arkiverad dokumentation. - **Skapa kontextuell sammanhang** genom länkade filer och tydliga hierarkier. --- ## Nuvarande problem - **Fragmentering**: Relaterat innehåll är splittrat (t.ex. Flutter-dokumentation i `_archive/docs/flutter/` vs. backend-dokumentation i rotmappen). - **Föråldrat innehåll**: Arkiverade filer blandas med aktiva (t.ex. `SESSION_CHECKPOINT_2026-05-12.md`). - **Duplicering**: Samma koncept dokumenteras på flera ställen (t.ex. kategoriträd). - **Icke-optimerat för språkmodeller**: Saknar tydlig hierarki och kontextuella länkar. --- ## Föreslagen struktur ``` / ├── docs/ # Huvudkatalog för ALL aktiv dokumentation │ ├── 01-overview/ # Övergripande projektbeskrivning │ │ ├── README.md # Huvudsaklig ingress (ersätter rot-README.md) │ │ ├── ARCHITECTURE.md # Systemarkitektur │ │ └── GLOSSARY.md # Termer och definitioner │ │ │ ├── 02-setup/ # Installation och konfiguration │ │ ├── INSTALL.md # Miljökrav, beroenden, första uppstart │ │ ├── CONFIG.md # Konfigurationsfiler (.env, Docker, etc.) │ │ └── TROUBLESHOOTING.md # Vanliga problem och lösningar │ │ │ ├── 03-development/ # Utvecklingsguider │ │ ├── CONTRIBUTING.md # Bidragsregler, kodstandard, PR-process │ │ ├── WORKFLOWS.md # Git-flöden, branch-strategi, CI/CD │ │ ├── DATABASE.md # Schema, migrationer, seedning │ │ ├── API.md # Backend-API:er, Swagger-länkar │ │ ├── FLUTTER.md # Flutter-specifik dokumentation │ │ └── MICROSERVICES.md # Importer, AI, etc. │ │ │ ├── 04-deploy/ # Driftsättning och underhåll │ │ ├── DEPLOY.md # Steg-för-steg deploy │ │ ├── MAINTENANCE.md # Underhållsskript, backup, monitorering │ │ └── SCALING.md # Prestanda, skalning │ │ │ ├── 05-features/ # Djupdyk i funktioner │ │ ├── RECIPE_IMPORT.md # Kvittosimport och flyer-parsing │ │ ├── CATEGORY_TREE.md # Kategorihantering och L3-integration │ │ ├── SHOPPING_LIST.md # Inköpslistor och flyer-integration │ │ └── ... # Övriga funktioner │ │ │ └── 06-archive/ # Arkiverade dokument │ ├── sessions/ # Gamla sessionsanteckningar │ ├── legacy/ # Föråldrade planer │ └── flutter_legacy/ # Gamla Flutter-dokument │ ├── .github/ # GitHub-specifika filer │ ├── COPILOT_INSTRUCTIONS.md │ └── ... │ └── ... # Övriga projektfiler (backend/, flutter/, etc.) ``` --- ## Migrationsplan ### Steg 1: Skapa den nya strukturen ```bash mkdir -p docs/{01-overview,02-setup,03-development,04-deploy,05-features,06-archive/sessions,06-archive/legacy,06-archive/flutter_legacy} ``` ### Steg 2: Flytta och uppdatera filer | Källfil(er) | Målfil | Åtgärd | |---------------------------------------------|-----------------------------------------|------------------------------------------------------------------------| | `TEKNISK_BESKRIVNING.md` | `docs/01-overview/ARCHITECTURE.md` | Extrahera arkitekturavsnitt. | | `TEKNISK_BESKRIVNING.md` (deploy) | `docs/04-deploy/DEPLOY.md` | Extrahera deploy-avsnitt. | | `TEKNISK_BESKRIVNING.md` (databas) | `docs/03-development/DATABASE.md` | Extrahera databasavsnitt + lägg till underhållsskript. | | `flyerimporter.md` | `docs/05-features/RECIPE_IMPORT.md` | Uppdatera med nya flöden och API-endpoints. | | `_archive/docs/flutter/*` | `docs/03-development/FLUTTER.md` | Slå samman och uppdatera Flutter-dokumentation. | | `README.md` | `docs/01-overview/README.md` | Uppdatera med länkar till nya dokument. | | `.github/copilot-instructions.md` | `.github/COPILOT_INSTRUCTIONS.md` | Flytta och uppdatera. | | `_archive/docs/SESSION_*.md` | `docs/06-archive/sessions/` | Arkivera gamla sessionsanteckningar. | | `MVP_CHECKLISTA.md` | `docs/06-archive/legacy/` | Arkivera föråldrade planer. | ### Steg 3: Skapa nya filer | Fil | Syfte | |-----------------------------|-----------------------------------------------------------------------| | `docs/03-development/CONTRIBUTING.md` | Standardiserade bidragsregler (branches, PR, code review). | | `docs/03-development/API.md` | Dokumentation av backend-API:er (OpenAPI-länkar, exempel). | | `docs/03-development/MICROSERVICES.md` | Beskrivning av microservices (Importer, AI). | | `docs/05-features/CATEGORY_TREE.md` | Djupdyk i kategorihantering och L3-integration. | | `docs/04-deploy/MAINTENANCE.md` | Backup, monitorering, logghantering. | --- ## Exempel på innehåll ### `docs/01-overview/ARCHITECTURE.md` ```markdown # Systemarkitektur ```mermaid graph TD A[Flutter App] -->|HTTP/REST| B[Backend API] B -->|Prisma Client| C[MariaDB] B -->|gRPC| D[Importer Microservice] D -->|HTTP| E[Externa API:er] C -->|Seed| F[Initial Data] ``` ## Komponenter 1. **Flutter App**: State management med Riverpod, UI med Material Design. 2. **Backend API**: NestJS + Prisma, autentisering via JWT. 3. **Microservices**: Importer (Node.js + Puppeteer), AI (Python + Mistral). ``` --- ### `docs/03-development/DATABASE.md` ```markdown # Databas ## Schema ```mermaid erDiagram User ||--o{ Recipe : creates User ||--o{ InventoryItem : owns Category ||--o{ Product : "L3" FlyerSession ||--o{ FlyerItem : contains ``` ## Migrationer ### Standardflöde 1. Uppdatera `prisma/schema.prisma`. 2. Skapa migration: ```bash npx prisma migrate dev --name add_feature_x ``` 3. Testa lokalt: ```bash npx prisma migrate reset npx prisma db seed ``` ### Underhållsskript - **Rensa databas** (behåll kategorier): ```bash ./deploy.sh --clean-database ``` > Obs! Uppdatera `prisma/maintenance/clean-database.sql` när nya tabeller läggs till. ``` --- ## Fördelar - **Lätt att hitta**: Logisk gruppering (t.ex. all Flutter-dokumentation på ett ställe). - **Uppdaterad**: Arkiverade filer separerade från aktiv dokumentation. - **Optimerad för språkmodeller**: Tydliga rubriker, länkar, och maskinläsbara format. - **Underhållbar**: Modulär struktur gör det enkelt att uppdatera enskilda delar. --- ## Nästa steg 1. **Godkänn planen**: Bekräfta att strukturen uppfyller era behov. 2. **Implementera**: Skapa den nya strukturen och flytta filer stegvis. 3. **Uppdatera länkar**: Se till att alla referenser pekar på de nya platserna.