PGŽ Sport Platform — Round 1+2 baseline (sport2.html + API)
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
# HANDOFF — 29.04.2026 ~23:00 (Audit + HBS reseed sprint)
|
||||
|
||||
## 🚨 KRITIČNI PROBLEM RIJEŠEN: Mock podaci eliminirani
|
||||
|
||||
### Što smo imali
|
||||
Damir je primijetio da Emil Baltić, njegov osobni prijatelj, ima upisan **lažni datum rođenja 08.02.1975** u sustavu - dok je on stvarni kondicioni trener RK Zameta, ne igrač. Pokrenut je ozbiljan audit:
|
||||
|
||||
### Što smo otkrili i očistili
|
||||
| Akcija | Broj | Detalji |
|
||||
|--------|------|---------|
|
||||
| Mock datumi/mjesta/slike (manual) | **394** | Sve PURGED + napomena "[PURGED 29.04.2026]" |
|
||||
| HBS lažni 01-01-YYYY datumi | **674** | Datum→NULL, godina sačuvana u novoj koloni `godina_rodenja` |
|
||||
| Duplikati osoba (Vedran Babić 2x, Mateo Hrvatin 2x...) | **133** | Smart dedup po quality score |
|
||||
| **TOTAL očišćeno** | **1.201** atributa | Backup u `clanovi_purge_backup_20260429`, `clanovi_dedup_backup_20260429` |
|
||||
|
||||
### Sigurnosni mehanizam (DB trigger)
|
||||
```sql
|
||||
CREATE TRIGGER clanovi_validate_source
|
||||
BEFORE INSERT OR UPDATE ON pgz_sport.clanovi
|
||||
FOR EACH ROW EXECUTE FUNCTION validate_clanovi_source();
|
||||
-- Ako pokušaš upisati datum_rodenja BEZ source_url → automatski NULL + WARNING
|
||||
```
|
||||
|
||||
### Nove kolone
|
||||
- `clanovi.uloga` — 'igrac', 'trener', 'kondicioni_trener', 'direktor', 'predsjednik', 'tajnik', 'fizioterapeut', 'lijecnik', 'sudac', 'ostalo'
|
||||
- `clanovi.godina_rodenja` — kad znamo samo godinu (HBS savez)
|
||||
|
||||
### Primjer ispravljenih osoba RK Zamet (iz rk-zamet.hr)
|
||||
```
|
||||
👑 PREDSJEDNIK Vedran Devčić rk_zamet_web
|
||||
📊 DIREKTOR Vedran Babić rk_zamet_web
|
||||
📋 TRENER Valter Matošević rk_zamet_web
|
||||
💪 KONDICIONI Emil Baltić rk_zamet_web ← prije: lažan kao igrač s lažnim datumom
|
||||
⚽ IGRAČI Mateo Hrvatin, Tin Lučin, Veron Načinović + dr.
|
||||
```
|
||||
|
||||
## ✅ NOVI SCRAPERI (pravi izvori)
|
||||
|
||||
### HBS scraper (`/opt/pgz-sport/scrapers/hbs_scraper.py`)
|
||||
- 34 PGŽ slug-ova (Kastav, Vargon, BK Rijeka, Krimeja, Sveti Jakov, Sveti Rok-Klana, Hreljin, Lovran, Opatija, Krk, Krenovac, Srdoči, Brod-Moravice, ŽBK Drenova/Čavle/Hreljin/Kastav, juniorske ekipe, kadetske ekipe...)
|
||||
- HVATA: ime, prezime, broj iskaznice (E-XX-YY), godina rođenja, matični klub, sportska grana, slika, sportski put (povijest klubova)
|
||||
- Voditelji ekipe → uloga='trener'
|
||||
- HBS scrape u tijeku - stalno dodaje nove sportaše
|
||||
|
||||
### HNS scraper popravljen (parser <li class="dob"> i <li class="pob">)
|
||||
- Hvata datum + mjesto rođenja iz HNS COMET
|
||||
- 405/408 ima pravi datum rođenja
|
||||
- 408/408 ima sliku iz hns.family
|
||||
|
||||
## 📊 STANJE SADA
|
||||
|
||||
```
|
||||
manual: 922 sportasa (čeka provjeru ručno)
|
||||
hbs_savez: 781+ sportasa (slike u tijeku)
|
||||
hns_semafor: 408 sportasa (kompletni)
|
||||
rk_zamet_web: 10 sportasa (uloge potvrđene)
|
||||
|
||||
Klubova boćanje PGŽ: 116 (top: Rijeka 29, Lovran 27, Kastav 21)
|
||||
Klubova nogomet HNS: 22 (NK Zamet 37, NK Rikard Benčić 36, NK OŠK Omišalj 32...)
|
||||
Dokumenti: 253 + 2.850 chunks
|
||||
% sa izvorom (source_url): 56% i raste
|
||||
```
|
||||
|
||||
## 🆕 GUI NOVO
|
||||
|
||||
### Audit · Kvaliteta stranica
|
||||
- Sportaši po izvoru s % source_url
|
||||
- Klubovi po izvoru
|
||||
- TRUSTED / VERIFY badges
|
||||
- ⚠️ Sumnjivi zapisi (top 30 manual sa najmanje info, klikabilni)
|
||||
- ✅ Trusted zapisi (s datumom rođenja, klikabilni)
|
||||
- Povijest čišćenja (sys_audit log)
|
||||
|
||||
### Drill-down + double-click + breadcrumbs
|
||||
- **Esc** = back
|
||||
- **`← Nazad` gumb** + breadcrumbs svugdje
|
||||
- **Double-click** na klubovima/sportašima
|
||||
- **Tooltips** "Klik / Dvoklik za..."
|
||||
- **Uloga badge** (👑 PREDSJEDNIK, 📊 DIREKTOR, 📋 TRENER, 💪 KONDICIONI, ⚽ IGRAČ)
|
||||
- **Source warning banner** za manual zapise
|
||||
- **`— nepoznato —`** umjesto skrivanja praznih polja
|
||||
|
||||
## 🔄 PENDING
|
||||
|
||||
1. **HRS, HVS, HKS scrapers** - savezi nemaju strukturiranu bazu kao HNS COMET
|
||||
- Mogući izvori: pojedinačne klub web stranice (rk-zamet.hr template moguć i za druge)
|
||||
2. **Manual 922 zapisa** - svaki treba ručnu validaciju ili obrisati
|
||||
3. **AI smoke retest** - provjeriti da li AI sad zna prave uloge (Emil Baltić = kondicioni trener)
|
||||
4. **ZSP PGŽ scraper** - sport-pgz.hr ima detalje za PGŽ saveze i klubove
|
||||
|
||||
## Operativni quick-ref
|
||||
- **Bridge**: `curl -X POST https://api.rinet.one/bridge/exec -H "X-API-KEY: rinet-yS4ZnKlwUqsjk" -d '{"cmd":"..."}'`
|
||||
- **DB**: `host=localhost dbname=rinet_v3 user=rinet password=R1net2026!SecureDB#v7`
|
||||
- **HBS scraper**: `python3 /opt/pgz-sport/scrapers/hbs_scraper.py`
|
||||
- **HNS scraper**: `python3 /opt/pgz-sport/scrapers/hns_semafor.py daily`
|
||||
- **GUI**: https://api.rinet.one/sport/
|
||||
- **Audit page**: https://api.rinet.one/sport/#audit
|
||||
- **Backup tablice**: `clanovi_purge_backup_20260429`, `clanovi_dedup_backup_20260429`
|
||||
Reference in New Issue
Block a user