# vreau.digital — Platformă de transparență achiziții publice ## Ce e proiectul Platforma standalone de transparență pentru achizițiile publice din România. Agregator cross-source via CUI pe 17 surse publice (SEAP, ANAF, ANRE, ANCOM, ASF, AAAS, AEP, CNSC, Curtea Conturi, RegAS, bugetar, ONRC, AFIR, fonduri-ue, CNAS, APIA, GNM). **Spin-off din `gov-agreg` (vreaudigital.ro)** — vreaudigital.ro rămâne hub-ul de marketing/discoverability. Vreau.digital e produsul real, live, cu DB conectat. ## Stack - Astro 5 + React 19 + Tailwind 3.4 (NU v4) + Node @astrojs/node standalone - PostgreSQL 17 @ satra:5432 (17+ schemas + public_kpi snapshots) - MapLibre 5 + Martin tile server @ 10.10.10.166:3010 - Photon geocoder daemon @ satra:2322 - Docker container @ satra:5096 → Traefik @ proxy 10.10.10.199 → Cloudflare → vreau.digital ## Routes (toate la rădăcină, NU sub /achizitii/) | Route | Scop | |---|---| | `/` | landing — KPI naționale + secțiuni principale | | `/cauta` | search SEAP cu MapLibre map, filtre cross-source, CPV autocomplete | | `/retete` + `/retete/[slug]` | rețete investigative (49+) | | `/investigation` + `/investigation/[slug]` | pagini narative cu cifre live (15+) | | `/firma/[cui]`, `/autoritate/[cui]` | profile cu timeline 10 ani financiar + badges cross-source | | `/red-flags` | landing cross-source signals (snapshot table — 207ms) | | `/top-contracte`, `/top-firme`, `/fonduri-ue` | leaderboards | | `/azi` | activitate zilnică SEAP | | `/risc/*` | risk analysis (single-bidder, economii-suspect, termen-scurt, overprice) | | `/explorer` | data browser | | `/harta` | Civic OS map — bani publici per județ | | `/api/og/firma/[cui].png` etc. | OG image generation | | `/api/cpv/search` | CPV nomenclature autocomplete | | `/api/profil/[side]/[cui]` | JSON profile API | | `/api/ocds/*` | Open Contracting Data Standard endpoints | | `/api/harta/*` | Civic OS map data | | `/api/version` | deploy verification | ## Data sources & freshness | Schema | Rows | Cadence | Live? | |---|---:|---|---| | seap.announcements | 781K+ | daily WSP scrapers (T+0) | ✓ | | firms.entities (ONRC) | 4.005M | monthly fresh import | ✓ | | firms.financials | 7.77M (10 ani, 2015-2024) | annual data.gov.ro | ✓ | | anaf.datornici | 47K T1 2026 LIVE | **quarterly via 2captcha** | ✓ | | anaf.lista_alba | 648K T1 2026 LIVE | **quarterly via 2captcha** | ✓ | | anre.licente | 29K | weekly | ✓ | | ancom.operatori | 518 | weekly | ✓ | | asf.entitati | 849 | weekly | ✓ | | aaas.firme | 11 (limit sursă) | weekly | ✓ | | aep.donatii_pj/pf/rvc | 380K | monthly | ✓ | | cnsc.decizii | 29K | weekly | ✓ | | curteacont.rapoarte | 1133 | weekly | ✓ | | regas.ajutoare | 78K | monthly | ✓ | | bugetar.entitate | 18K | quarterly | ✓ | | cnas.furnizori | 36K (50+ PDFs parse) | monthly | ✓ | | apia.fermieri | 191 (snapshot test) | quarterly | ✓ | | fonduri.beneficiar_anunt | 41K | weekly | ✓ | | fonduri.afir_plati | 5.33M | monthly | ✓ | ## Deploy - CI/CD: Gitea webhook → `satra:9867/hooks/vreau-digital-deploy` → `/opt/vreau-digital/deploy.sh` - Build args: BUILD_SHA, BUILD_REF, BUILD_TIME → expose via /api/version - Secrete: Infisical Machine Identity `/vreaudigital` (DATABASE_URL, TWOCAPTCHA_KEY) - Verifică `/api/version` post-push ## Reguli operaționale - `npx astro check` + `npm run build` PASS înainte de commit - DACĂ scp pe satra → reset ÎNAINTE de push (deploy.sh git pull --ff-only fails) - Pre-create `/var/log/vreau-digital-*.log` cu chown bulibasa pentru scrapere noi - NU echo niciun secret. `$VAR` unexpanded. `--env-file` (NU `-e`) - DB queries: `/tmp/govq.sh` reads SQL stdin → architools_db pe satra - Memory: scrie DIRECT în `~/Code/claude-memory/projects/vreau-digital/memory/` + git commit + push (sync cron clobbers `~/.claude/.../memory/` every 60s) - systemd OnCalendar: `Sun *-*-*` (cu SPACE după ziua), NU `Sun*-*-*` - Comit-uri mici, focusate. NU amend. ## Sister project: gov-agreg (vreaudigital.ro) Hub-ul de marketing/discoverability — listează produsele, idei, propuneri. Conține REDIRECTS de la /achizitii/* la vreau.digital. - **Repo:** `gitadmin/gov-agreg` - **Domain:** `https://vreaudigital.ro` - **Local path:** `/home/orchestrator/Code/gov-agreg/` NU atinge marketing pages (idei, despre, contribuie, produse) — alea sunt în gov-agreg. Vezi `PROMPTS.md` pentru context tehnic complet + istoric sesiuni.