master
ci/woodpecker/push/workflow Pipeline was canceled
Přidává možnost, aby jeden strávník zaplatil celý účet v restauraci a ostatní
obdrželi QR kód pro refundaci.
Prerekvizita — podpora více QR kódů na (příjemce, den):
- PendingQr.id (UUID) nahrazuje deduplikaci podle data; každý QR má vlastní klíč
- QR obrázky uloženy do Redis/storage (base64) místo tmpdir — přežijí redeploy
- GET /api/qr vyžaduje ?id= parametr; dismissQr přijímá {id} místo {date}
Feature:
- Ikona 'Zaplatit za všechny' v choices-table pro každou LunchChoice (kromě
PIZZA/NEOBEDVAM/ROZHODUJI); viditelná jen při ≥2 strávnících a vyplněném účtu
- PayForAllModal: tabulka strávníků s prefillovanými cenami z menu, příplatky
per-diner, celkové dýško rozpočtené rovnoměrně, generování QR přes POST /api/qr/generate
- parsePriceCzk() helper pro parsing 'N Kč' → number
Co se nemění: POST /api/qr/generate API kontrakt, PizzaOrder.hasQr boolean
Co se mění v OpenAPI: PendingQr.id (required), getPizzaQr ?id param, dismissQr body
Co-Authored-By: opmrdkazkrtkaus <opmrdkazkrtkaus@melancholik.eu>
Luncher
Aplikace pro profesionální management obědů.
Aplikace sestává ze tří modulů.
- types
- OpenAPI definice společných typů, generované přes openapi-ts
- server
- backend psaný v node.js
- client
- frontend psaný v React.js
Spuštění pro vývoj
Závislosti
Klient/server
Spuštění na *nix platformách
- Nainstalovat závislosti viz předchozí bod
- Zkopírovat
server/.env.templatedoserver/.env.developmenta upravit dle potřeby - Vygenerovat společné TypeScript typy
cd types && yarn install && yarn openapi-ts
- Server
cd server && yarn install && export NODE_ENV=development && yarn startReload
- Klient
cd client && yarn install && yarn start
Sestavení a spuštění produkční verze v Docker
Závislosti
Spuštění
docker compose up --build -d
Spuštení s traefik
docker compose -f compose-traefik.yml up --build -d
TODO
Dostupné zde.
Description
Languages
TypeScript
90.7%
SCSS
6.9%
CSS
0.7%
JavaScript
0.6%
Dockerfile
0.6%
Other
0.5%