2026-08-19 22:15:50 +02:00
2026-08-19 20:59:23 +02:00
🚧 WIP
2026-08-19 22:15:50 +02:00
2026-08-19 20:59:23 +02:00
2026-08-19 20:59:23 +02:00
2026-08-19 20:59:23 +02:00
🚧 WIP
2026-08-19 22:01:40 +02:00
🚧 WIP
2026-08-19 21:42:09 +02:00
2026-08-19 20:59:23 +02:00
2026-08-19 20:59:23 +02:00
🚧 WIP
2026-08-19 21:42:09 +02:00

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

docker compose up --build

Öppna sedan:

http://localhost:8000

Konfiguration

Exempel:

{
  "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.

S
Description
No description provided
Readme
49 KiB
Languages
Python 46.2%
HTML 29.6%
CSS 20.9%
Dockerfile 3.3%