# Bo hemma-avi med Swish-QR En enkel Docker-app som: - läser kostnadsposter från `config.json` - visar underlaget på en webbsida - låter användaren mata in månadens nettoinkomst - räknar fram `min(kostnadsandel, nettoinkomst * income_ratio, eventuell max_amount)` - genererar en Swish-QR-kod med förifyllt belopp och meddelande ## Starta ```bash docker compose up --build ``` Öppna sedan: ```text http://localhost:8000 ``` ## Konfiguration Exempel: ```json { "title": "Bo hemma-avi", "currency": "SEK", "swish": { "payee": "46701234567", "message_prefix": "Bohemma", "lock_mask": 0 }, "payment": { "income_ratio": 0.30, "max_amount": null, "round_to": 1 }, "items": [ { "post": "hushållsel", "amount": 1000, "period": "month", "ratio": 0.2, "comment": "20 % av uppskattad månadskostnad" }, { "post": "hemförsäkring", "amount": 5000, "period": "year", "ratio": 0.2, "comment": "20 % av årskostnad, omräknad till månad" } ] } ``` ### Fält | Fält | Betydelse | |---|---| | `swish.payee` | Swishnummer, t.ex. `46701234567` | | `swish.message_prefix` | Prefix i meddelandet, appen lägger till aktuell period, t.ex. `Bohemma 2026-07` | | `swish.lock_mask` | `0` låser mottagare, belopp och meddelande | | `payment.income_ratio` | Andel av nettoinkomst som är tak, t.ex. `0.30` | | `payment.max_amount` | Extra absolut maxbelopp, eller `null` | | `payment.round_to` | Avrundning uppåt, t.ex. `1`, `10`, `50` eller `100` | | `items[].amount` | Kostnad, per månad eller år beroende på `period` | | `items[].period` | `month` eller `year` | | `items[].ratio` | Andel dottern ska bära, t.ex. `0.2` eller `1` | ## Viktigt Appen genomför ingen betalning. QR-koden förifyller betalningen i Swish, men betalaren måste själv granska och godkänna betalningen.