PGŽ Sport Platform — Round 1+2 baseline (sport2.html + API)
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
# HANDOFF — 30.04.2026 11:45 — PLANINARSTVO + DEDUP + ENRICHMENT GAP
|
||||
|
||||
## ✅ NAPRAVLJENO
|
||||
|
||||
### 1. Planinarstvo dilemma
|
||||
**Verdikt:** SVI PLANINARSKI KLUBOVI OSTAJU AKTIVNI.
|
||||
|
||||
Razlog (web verified 30.04.2026):
|
||||
- HPS član HOO od 1991, prvi HR sport savez u UIAA (Wikipedia + hps.hr)
|
||||
- 40 klubova promoted na `pgz_sufinanciran=TRUE`
|
||||
- Audit log id=64
|
||||
|
||||
### 2. Dedup + broken naziv fix (pre-enrichment cleanup)
|
||||
|
||||
**Pronađeno problema:**
|
||||
- 27 grupa duplikata (7 trostrukih, 20 dvostrukih) = **34 redundantna zapisa**
|
||||
- 41 broken naziv (PDF parser pucanje, zalijepljene kolone teksta)
|
||||
- 2 ne-sport saveza koji su promakli (SAVEZ ZA PROMICANJE ZNANOSTI, KLUB STUDENATA)
|
||||
|
||||
**Rješenje:**
|
||||
- Backup: `pgz_sport.klubovi_pre_dedup_20260430` (1490 redaka)
|
||||
- 34 duplikata: master = klub s najviše članova → svi članovi reasignani, slaves deaktivirani
|
||||
- 39 broken naziv-a: split na prvi multispace + audit reason
|
||||
- 1 KK Kvarner duplikat manual fix
|
||||
- 2 ne-sport savez reklasificirani
|
||||
|
||||
**Rezultat:**
|
||||
- **1453 aktivnih sport klubova** (s 1490 prije)
|
||||
- **1449 PGŽ sufinanciranih**
|
||||
- **0 duplikata, 0 broken naziva**
|
||||
|
||||
### 3. Enrichment gap dashboard
|
||||
|
||||
**Boris baseline = 18.007 sportaša**
|
||||
**Mi imamo = 1.548 sportaša (8.6%)**
|
||||
**Gap = 16.459 sportaša**
|
||||
|
||||
Top gap sportova:
|
||||
| Sport | Imamo | Boris | Gap | % |
|
||||
|-------|-------|-------|-----|---|
|
||||
| NOGOMET | 413 | 5.581 | 5.168 | 7.4% |
|
||||
| ODBOJKA | 33 | 2.047 | 2.014 | 1.6% |
|
||||
| KARATE | 24 | 1.735 | 1.711 | 1.4% |
|
||||
| KOŠARKA | 23 | 1.115 | 1.092 | 2.1% |
|
||||
| ATLETIKA | 29 | 999 | 970 | 2.9% |
|
||||
| JUDO | 1 | 961 | 960 | 0.1% |
|
||||
| RUKOMET | 39 | 924 | 885 | 4.2% |
|
||||
| JEDRENJE | 8 | 737 | 729 | 1.1% |
|
||||
| KUGLANJE | 0 | 438 | 438 | 0% (NULA) |
|
||||
| BOKS | 0 | 115 | 115 | 0% (NULA) |
|
||||
| BOĆANJE | 869 | 980 | **111** | **88.7%** ← najbolji |
|
||||
|
||||
**4 saveza s NULA članova:** kuglanje, boks, sportski ribolov, streličarstvo.
|
||||
|
||||
### 4. Novi endpointi
|
||||
|
||||
```
|
||||
GET /api/v2/pgz/enrichment-gap - Dashboard za Borisa, sve gap-ove
|
||||
GET /api/v2/pgz/dedup-summary - Pregled cleanup operacija
|
||||
GET /api/v2/pgz/savez-stats - Boris baseline statistika
|
||||
GET /api/v2/pgz/cleanup-summary - Klasifikacija organizacija
|
||||
GET /api/v2/pgz/sport-organizacije - Filterirani klubovi
|
||||
```
|
||||
|
||||
## ⚠️ PROBLEM ENRICHMENT IZVORA
|
||||
|
||||
### Ono što sam probao (i NIJE RADILO)
|
||||
1. **HNS Semafor expansion** — 21 klub već ima HNS_klub_id, ali 118 nogometnih klubova bez ID-a su uglavnom MALI NOGOMET (futsal) koji NIJE u HNS Comet sustavu
|
||||
2. **HRS web** — nema strukturirane klub liste (samo članci)
|
||||
3. **HKS** — sličan problem
|
||||
4. **sport-pgz.hr** — Vue SPA, klubovi nisu u initial HTML
|
||||
5. **ZSP godišnjak PDF 2022** — 16 MB PDF s tablicama, ali tabular layout u PDF-u izaziva pucanje regex parsera (samo 16 klubova ekstrahiran od cca 500+)
|
||||
|
||||
### Što treba sljedeća sesija (real enrichment options)
|
||||
|
||||
**Po prioritetu:**
|
||||
|
||||
1. **Direktan kontakt savezima** — emailom Boris/Damir traži CSV liste klubova i registriranih sportaša po savezu. PGŽ ima taj autoritet.
|
||||
- atletskisavezpgz@gmail.com
|
||||
- judo-savez-pgz...
|
||||
- i sl. iz sport-pgz.hr stranica saveza
|
||||
|
||||
2. **Bolji PDF parser za godišnjak**:
|
||||
- Koristiti `pdfplumber` umjesto `pdftotext -layout` (bolje za tabele)
|
||||
- Possibly Camelot tablice ekstraktora
|
||||
- Fallback: ručno otvoriti PDF i preusko table u CSV (1h posla)
|
||||
|
||||
3. **Boris baseline SAMO za sad** — koristi savez_stats_oficijalno za KPI prikaz, ne čekaj da se popune individual sportaši
|
||||
|
||||
4. **Web-stranice 39 klubova s `web` poljem** — direktan scrape (NK Zamet, AK Kvarner, AK Liburnija, RK Zamet, KK Mlaka itd.). To je manji volume ali precizniji.
|
||||
|
||||
5. **HBS scraper proširiti** — dodatni boćarski savez slugovi (već imamo 842 člana, gap 111)
|
||||
|
||||
## 📊 STANJE NA `https://api.rinet.one/sport/`
|
||||
|
||||
```
|
||||
Aktivnih sport klubova: 1453
|
||||
Sufinanciranih PGŽ: 1449
|
||||
Sportaša u DB: 1548
|
||||
Boris baseline: 18.007
|
||||
Coverage: 8.6%
|
||||
|
||||
Trusted source breakdown:
|
||||
hbs_savez: 842 (boćanje 88.7% complete)
|
||||
hns_semafor: 408 (nogomet 7.4%)
|
||||
manual: 922 (drugi)
|
||||
rk_zamet_web: 10
|
||||
```
|
||||
|
||||
## 🔄 ROLLBACK
|
||||
```bash
|
||||
# Vrati duplikat dedup ako se pokaže pogrešan
|
||||
PGPASSWORD='R1net2026!SecureDB#v7' psql -h localhost -U rinet -d rinet_v3 -c \
|
||||
"UPDATE pgz_sport.klubovi SET aktivan=TRUE WHERE id IN (SELECT id FROM pgz_sport.klubovi_pre_dedup_20260430)"
|
||||
|
||||
# Vrati pojedini klub
|
||||
PGPASSWORD='R1net2026!SecureDB#v7' psql -h localhost -U rinet -d rinet_v3 -c \
|
||||
"UPDATE pgz_sport.klubovi SET aktivan=true WHERE id=<KLUB_ID>"
|
||||
```
|
||||
|
||||
## TEST
|
||||
```bash
|
||||
curl -s https://api.rinet.one/sport/api/v2/pgz/enrichment-gap | python3 -m json.tool | head -50
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user