Webové portály a marketplace
Krajšie Kalinkovo
Komunitná mobilná PWA pre Kalinkovo: oznamy, push upozornenia a nahlasovanie problémov
WebServer/API
O projekte
Mobilná webová aplikácia (PWA) pre obyvateľov obce Kalinkovo, ktorá slúži ako komunitná tabuľa – výslovne nie ako oficiálny systém obce. Redakcia publikuje oznamy so schvaľovacím postupom a posiela web push upozornenia podľa tém; obyvatelia bez registrácie nahlasujú problémy s fotkou a polohou a ich stav sledujú cez tajný odkaz. Doplnkové občianske moduly tvoria kalendár termínov, prezentácia komunitných zbierok a pilotné hlasovanie.
Čo aplikácia vie
- Oznamy s kategóriami, urgentným bannerom, fulltextovým vyhľadávaním a redakčným workflow (koncept → kontrola → publikovanie → oprava → expirácia, plánované zverejnenie)
- Web push upozornenia (VAPID) podľa tém; notifikačné kampane s povinným testom na interné zariadenie a dvojitým potvrdením hromadného odoslania
- 6-krokový sprievodca nahlásením problému (čo sa stalo, poloha cez GPS alebo opis, fotografia, popis, kontakt a verejnosť, kontrola); rozpracovaný koncept sa ukladá v zariadení aj offline
- Spracovanie fotografií cez sharp (kontrola magic bytes, prevod do WebP, odstránenie EXIF/GPS) a moderácia pred zverejnením – schváliť, rozmazať alebo skryť
- Tajný sledovací odkaz pre oznamovateľa (doplnenie informácií, potvrdenie vyriešenia, znovuotvorenie, stiahnutie) a overenie e-mailu magic linkom
- Verejný zoznam anonymizovaných podnetov s filtrami a časovou osou stavov, tlačidlá „Týka sa ma to tiež“ a „Sledovať stav“, detekcia možných duplicít
- Kalendár termínov (štátne sviatky a daňové termíny podľa zákona + obecné termíny) s odškrtávaním a odberom .ics; prezentácia komunitných zbierok
- Hlasovanie (POC) s overením e-mailu kódom, jedným hlasom na e-mail a návrhmi občanov so schvaľovaním
- Administrácia s RBAC a TOTP 2FA: triáž podnetov, moderácia, oznamy, notifikačné kampane, kalendár, zbierky, hlasovania, odberatelia, analytika, audit log, export CSV, stav systému
- Transakčný outbox v DB a worker (alebo Plesk cron) pre naplánované oznamy, push, e-maily a retenciu; PWA s inštalačným návodom a offline bannerom
Technicky zaujímavé
- Súkromie od návrhu: bez účtov pre verejnosť, 256-bitový sledovací token uložený iba ako HMAC hash, kontakt oznamovateľa šifrovaný AES-256-GCM, verejná poloha zaokrúhlená (~100 m, citlivé kategórie ~1 km)
- Spoľahlivé doručovanie cez transakčný outbox (dedupe, backoff, dead-letter) a idempotentný web push s čistením neplatných odberov
- Doménová logika (workflow oznamov a podnetov, RBAC, duplicity, stavový automat push) oddelená v src/domain; podľa smoke reportu 78 unit, 19 integračných (MariaDB) a 18 E2E testov
V pláne
- Verejná mapa podnetov a mapový výber polohy (Leaflet adaptér je v kóde, predvolene vypnutý – čaká sa na licenciu tile servera); geocoding
- Import zdrojov (RSS/Atom/iCal runnery), e-mailový týždenný digest, export PDF
- Perceptual hash duplicít fotografií, adaptívna CAPTCHA, QR kód pri nastavovaní TOTP, viacjazyčnosť