Monitorovacia aplikácia pre hlasovanie v súťaži digitalnyregion.sk. Cron script každých 5 minút sťahuje stav hlasov z API a ukladá snapshoty. Dashboard zobrazuje aktuálne poradie projektov, trendy prírastkov a vývoj hlasov v čase.
monitor/
├── cron/
│ └── fetch.php # Cron script – sťahuje API a ukladá snapshoty
├── data/
│ ├── snapshots/ # Timestampované JSON snapshoty (nie v gite)
│ ├── latest.json # Posledný snapshot (nie v gite)
│ └── fetch.log # Log fetchov (nie v gite)
├── docs/
│ ├── logo.svg # SVG logo 512×512
│ └── screenshot-main.png
├── api.php # Backend API pre AJAX volania
├── index.html # Dashboard
├── app.js # Frontend logika
├── style.css # Terminal Noir theme (dark / light)
└── favicon.svg # SVG favicon
- PHP 7.4+ s
allow_url_fopen = On - Webserver (Apache / Nginx) alebo
php -Spre lokálny vývoj
-
Skopíruj adresár
monitor/na server do webového koreňa. -
Over, že PHP má práva zapisovať do
data/:chmod 755 data/
-
Spusti prvý fetch manuálne:
php cron/fetch.php
Skontroluj výstup v
data/fetch.loga vznikdata/latest.json. -
Pridaj cron entry (každých 5 minút):
*/5 * * * * php /var/www/html/monitor/cron/fetch.php -
Otvor
index.htmlv browseri (cez webserver – potrebuje AJAX naapi.php).
Endpoint: api.php?action=<akcia>
| Akcia | Popis |
|---|---|
latest |
Posledný snapshot (všetky projekty + metadata) |
regions |
Pole unikátnych regiónov |
history |
História hlasov zo snapshotov |
| Parameter | Popis | Default |
|---|---|---|
region |
Filter podľa kraja | (všetky) |
hours |
Časové okno v hodinách; 0 = celá história |
0 |
Pri hours > 0 sa vrátia všetky snapshoty z daného obdobia bez sampingu.
Pri hours = 0 (celá história) sa sampuje na max 500 bodov pre výkon.
api.php?action=latest
api.php?action=regions
api.php?action=history
api.php?action=history®ion=Žilinský samosprávny kraj
api.php?action=history®ion=Košický samosprávny kraj&hours=24
{
"timestamps": ["2026-03-05T08:00:00+00:00", "..."],
"projects": {
"42": {
"title": "Názov projektu",
"region": "Žilinský samosprávny kraj",
"city": "Žilina",
"category": "Digitálne zručnosti",
"votes": [120, 125, 131]
}
}
}- URL:
https://www.digitalnyregion.sk/api/projects?limit=100 - Aktuálne: 25 projektov, 8 regiónov (všetky SK kraje)
- Polia projektu:
id,slug,title,description,descriptionFull,category,region,city,imageUrl,thumbnailUrl,goals,impact,votesCount,votingEnabled,isActive,createdAt,updatedAt
- Terminal Noir design – dark / light mode, Bebas Neue + DM Mono
- Filter podľa regiónu (dropdown), výber sa ukladá do URL hash
- Top 3 projekty: gold / silver / bronze zvýraznenie
- Rozdiel hlasov voči predchádzajúcemu projektu v poradí (červené číslo)
- Projekty s
votingEnabled: falsesú prečiarknuté a stmavnuté - Tlačidlo DETAIL na každej karte – modal s obrázkom, popisom, cieľmi a dopadom projektu
- Auto-refresh každých 5 minút
Horizontálny bar chart, výška sa prispôsobuje počtu projektov. Každý bar obsahuje aktuálne poradie projektu. Časové okno: 1h / 3h / 6h / 12h / 24h (prepočítané na počet snapshotov pri 5-min intervale).
Vývoj absolútnych hlasov v čase. Časové okno: 1h / 3h / 6h / 12h / 24h / 3 dni / 7 dní / celá história (default). Pre konkrétné obdobia sa vrátia skutočné body bez sampingu.
Snapshoty sa nemažú – retencia je zámerná. Pri výbere celej histórie (hours=0) sa sampuje na max 500 bodov pre výkon. Pri výbere konkrétneho obdobia (hours>0) sa vracajú všetky skutočné body.
