🎉 Initial commit
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user