a6c03a091e
Moved from gov-agreg/src/pages/achizitii/* to root (drop prefix). - 22 pages migrated, 127 files total - All internal links: /achizitii/X → /X (176 occurrences fixed) - AchizitiiLayout subnav rewritten: /X paths, top-right link to vreaudigital.ro hub - BaseLayout new (vreau.digital branding, OG tags, site URL) - astro.config.mjs: site https://vreau.digital, server output (was static) - docker-compose: port 5096 (vreaudigital is 5095), container vreau-digital - deploy.sh: paths /opt/vreau-digital, log /var/log/vreau-digital-deploy.log Backend shared with gov-agreg: - PostgreSQL satra (same schemas: seap, firms, anaf, anre, ...) - Photon, Martin tiles - Infisical /vreaudigital path (DATABASE_URL etc. shared) build: PASS (npx astro check 0 errors, npm run build 5s vite + 10s server)
524 lines
23 KiB
Markdown
524 lines
23 KiB
Markdown
# PLAN-PRODUCTS.md — Specificații detaliate produse ancoră
|
|
|
|
**Data:** 7 aprilie 2026
|
|
**Autor:** Marius + Claude
|
|
**Status:** Rafinare strategică — specificații concrete pentru cele 3 produse ancoră
|
|
**Dependințe:** Citește PLAN.md pentru context general
|
|
|
|
---
|
|
|
|
## Evaluare critică: sunt astea cele mai bune 3?
|
|
|
|
Înainte de specificații, o analiză sinceră.
|
|
|
|
### Scor comparativ (1-5, unde 5 = ideal)
|
|
|
|
| Produs | Impact viral | Ușurința construcției | Date disponibile | Wow factor 30s | Utilitate reală | **TOTAL** |
|
|
|--------|:-----------:|:--------------------:|:----------------:|:--------------:|:--------------:|:---------:|
|
|
| Traducătorul birocratic (AI) | 5 | 5 | 5 (textul e inputul userului) | 5 | 3 | **23** |
|
|
| Harta digitalizării | 4 | 2 | 2 (crowdsourced, greu de validat) | 4 | 3 | **15** |
|
|
| Vizualizare buget local | 3 | 3 | 4 (date MF publice, dar dezordonate) | 4 | 5 | **19** |
|
|
|
|
### Verdictul
|
|
|
|
**Traducătorul birocratic = alegere excelentă.** Fără discuție, cel mai bun produs de lansare.
|
|
|
|
**Vizualizare buget local = alegere bună.** Datele există, impactul e real, dar necesită muncă de agregare.
|
|
|
|
**Harta digitalizării = alegere discutabilă.** Problema: datele nu există nicăieri. Trebuie crowdsourced, ceea ce necesită comunitate, pe care n-o avem încă. E un produs de faza 2, nu de lansare.
|
|
|
|
### Alternativă propusă: înlocuiește Harta cu Generator de cereri tipizate (AI)
|
|
|
|
| Criteriu | Harta digitalizării | Generator cereri (AI) |
|
|
|----------|:-------------------:|:--------------------:|
|
|
| Date necesare | Crowdsourced (nu există) | Template-uri cereri (le facem noi) |
|
|
| Timp de construcție | 2-3 săptămâni | 1 săptămână |
|
|
| Impactul "aha!" | "Interesant..." | "Chiar pot folosi asta!" |
|
|
| Utilitate directă | Informativă | Rezolvă o problemă concretă |
|
|
| Viralitate | Medie (share o dată) | Mare (share când ai nevoie) |
|
|
|
|
**Recomandare finală:** Lansăm cu **Traducătorul birocratic + Generator cereri + Vizualizare buget**. Harta digitalizării vine în faza 2, când avem comunitate care contribuie cu date.
|
|
|
|
**Dar**: planificăm toate 4 mai jos, ca să ai opțiunea.
|
|
|
|
---
|
|
|
|
## Produs 1: Traducătorul birocratic (AI)
|
|
|
|
> "Lipește textul oficial, primești explicația pe înțelesul tău"
|
|
|
|
### Ce face exact — user flow pas cu pas
|
|
|
|
```
|
|
1. Userul intră pe vreaudigital.ro/traducator
|
|
2. Vede un textarea mare cu placeholder:
|
|
"Lipește aici textul oficial pe care nu-l înțelegi..."
|
|
3. Sub textarea: exemple clickable
|
|
→ "Decizie de impunere" → "Încheiere proces verbal" → "Notificare ANAF"
|
|
4. Userul lipește textul (sau dă click pe un exemplu)
|
|
5. Apasă "Explică-mi →"
|
|
6. Apare traducerea în 2 secțiuni:
|
|
a) "Pe scurt" — 1-2 propoziții, limbaj simplu
|
|
b) "Pe larg" — paragraf cu toate detaliile importante
|
|
c) "Ce trebuie să faci" — acțiuni concrete (dacă e cazul)
|
|
d) "Termeni explicați" — cuvintele grele evidențiate cu tooltip
|
|
7. Sub traducere:
|
|
→ "A fost util?" (thumbs up/down — feedback anonim)
|
|
→ "Copiază explicația"
|
|
→ "Trimite unui prieten" (share link)
|
|
```
|
|
|
|
### Date sursă
|
|
|
|
**Input:** Textul vine de la user — zero dependență de API-uri externe sau date publice.
|
|
|
|
**Prompt engineering:** Avem nevoie de:
|
|
- Un system prompt bun, în română, care știe terminologie juridică/administrativă RO
|
|
- 10-20 exemple curated (few-shot) pentru calitate consistentă
|
|
- Lista de termeni birocratici frecvenți cu explicații validate
|
|
|
|
**Realitate România:** Nu există nicio barieră de date. Textele oficiale sunt publice prin natura lor. Userul le are deja (le-a primit de la instituție).
|
|
|
|
### MVP tehnic
|
|
|
|
| Componentă | Implementare | Notă |
|
|
|------------|-------------|------|
|
|
| **Frontend** | Componentă Astro + React island | Un textarea, un buton, zona de rezultat |
|
|
| **AI backend** | Cloudflare Workers AI (gratuit tier) SAU OpenAI API cu key proprie | Workers AI = 0 cost. OpenAI = ~$0.01/request cu GPT-4o-mini |
|
|
| **Prompt** | System prompt hardcodat + few-shot examples în worker | Nu trebuie bază de date, nu trebuie RAG |
|
|
| **Rate limiting** | Cloudflare Workers built-in | 100k requests/zi gratuit |
|
|
| **Analytics feedback** | Plausible events sau simplu localStorage counter | "A fost util?" → event tracking |
|
|
| **Cache** | KV store pe Cloudflare (gratuit) | Cache răspunsuri pentru texte identice |
|
|
|
|
**Arhitectura concretă:**
|
|
```
|
|
[Browser]
|
|
→ POST /api/translate {text: "..."}
|
|
→ [Cloudflare Worker]
|
|
→ Verifică cache (KV)
|
|
→ Dacă nu există: trimite la AI (Workers AI / OpenAI)
|
|
→ Salvează în cache
|
|
→ Returnează JSON {summary, detailed, actions, terms}
|
|
→ [Frontend] renderează rezultatul
|
|
```
|
|
|
|
**Ce NU facem:**
|
|
- NU facem cont/login
|
|
- NU salvăm textele userilor (privacy by default)
|
|
- NU facem RAG pe legislație (overcomplicated, iluzoriu ca acuratețe)
|
|
- NU încercăm să fim "consilier juridic AI" — suntem doar traducător de limbaj
|
|
|
|
### Demo wow — 30 secunde, screenshot-able
|
|
|
|
**Scenariul perfect pentru demo/social media:**
|
|
|
|
Input:
|
|
> "În temeiul art. 44 alin. (1) și (2) din Legea nr. 207/2015 privind Codul de procedură fiscală, cu modificările și completările ulterioare, se comunică contribuabilului prezenta decizie de impunere din oficiu, având în vedere că declarația fiscală nu a fost depusă până la termenul prevăzut de lege, urmând ca în termen de 30 de zile de la data comunicării să procedeze la contestarea acesteia conform dispozițiilor legale în vigoare."
|
|
|
|
Output:
|
|
> **Pe scurt:** ANAF-ul ți-a calculat ei cât ai de plată, pentru că n-ai depus declarația la timp.
|
|
>
|
|
> **Ce trebuie să faci:** Ai 30 de zile să contești dacă nu ești de acord. Dacă nu contești, suma devine definitivă.
|
|
>
|
|
> **Termeni explicați:**
|
|
> - *decizie de impunere din oficiu* = ANAF a decis singur cât datorezi
|
|
> - *contribuabil* = tu, persoana care plătește taxe
|
|
> - *contestare* = poți spune "nu sunt de acord" oficial
|
|
|
|
**Vizual:** Side-by-side, stânga text "birocratic" (cu font serif, gri, intimidant), dreapta text "uman" (font modern, clar, cu highlight-uri colorate pe termeni). Diferența vizuală vinde singură ideea.
|
|
|
|
### Efort real
|
|
|
|
| Task | Timp estimat | Cine |
|
|
|------|:----------:|------|
|
|
| Design UI/UX (Figma sau direct cod) | 4h | 1 dev |
|
|
| Componentă React (textarea + output) | 4h | 1 dev |
|
|
| Cloudflare Worker + prompt engineering | 6h | 1 dev |
|
|
| 10 exemple curated pentru few-shot | 3h | 1 dev |
|
|
| Testare + ajustare prompt | 3h | 1 dev |
|
|
| Integrare în site-ul Astro | 2h | 1 dev |
|
|
| **TOTAL** | **~22h** | **1 dev, 3 zile** |
|
|
|
|
### Risc principal
|
|
|
|
**Halucinații AI.** LLM-ul poate inventa termene, obligații, sau sume care nu există în text.
|
|
|
|
**Mitigare:**
|
|
1. Disclaimer vizibil: "Aceasta e o explicație orientativă, nu consiliere juridică"
|
|
2. Prompt strict care instruiește AI-ul să rămână la ce scrie în text, nu să inventeze
|
|
3. Secțiunea "Termeni explicați" forțează AI-ul să ancoreze explicațiile în text real
|
|
4. Feedback loop: "A fost util?" cu opțiune de report "Explicația e greșită"
|
|
|
|
---
|
|
|
|
## Produs 2: Generator de cereri tipizate (AI)
|
|
|
|
> "Spune-mi ce vrei, îți generez cererea gata de depus"
|
|
|
|
### Ce face exact — user flow pas cu pas
|
|
|
|
```
|
|
1. Userul intră pe vreaudigital.ro/cereri
|
|
2. Vede o grilă vizuală cu tipuri de cereri frecvente:
|
|
→ Certificat fiscal
|
|
→ Certificat de urbanism
|
|
→ Cerere de eliberare acte
|
|
→ Adeverință de venit
|
|
→ Reclamație la primărie
|
|
→ Cerere de audiență
|
|
→ [+ altele]
|
|
3. Userul alege tipul (ex: "Certificat de urbanism")
|
|
4. Apare un formular conversațional (nu clasic):
|
|
→ "Pentru ce adresă ai nevoie de certificat?"
|
|
→ "Ce vrei să faci la adresa respectivă?"
|
|
→ "Numele tău complet?"
|
|
→ "CNP-ul?" (cu disclaimer de privacy)
|
|
→ "Adresa de domiciliu?"
|
|
5. Pe măsură ce completează, pe dreapta apare LIVE preview-ul cererii
|
|
6. La final:
|
|
→ "Descarcă PDF"
|
|
→ "Descarcă Word"
|
|
→ "Copiază text"
|
|
7. Cererea e formatată oficial, cu antet, dată, formulare standard
|
|
```
|
|
|
|
### Date sursă
|
|
|
|
**Template-uri cereri:** Trebuie create manual, din surse publice:
|
|
- Site-urile primăriilor publică modele de cereri (PDF-uri scanate, de obicei)
|
|
- Legislație care definește conținutul minim al fiecărui tip de cerere
|
|
- Portalul e-guvernare.ro are câteva formulare standard
|
|
|
|
**Realitate România:**
|
|
- Nu există un repository centralizat de template-uri de cereri
|
|
- Fiecare primărie are variațiuni minore (antet diferit, câmpuri extra)
|
|
- Multe cereri sunt "text liber" cu elemente obligatorii
|
|
|
|
**Soluția pragmatică:** Creăm noi 10 template-uri pentru cele mai comune cereri. Le validăm cu 2-3 primării mici (telefon + email). Nu trebuie să fie perfect — trebuie să fie mai bun decât "scriu de mână pe o foaie".
|
|
|
|
### MVP tehnic
|
|
|
|
| Componentă | Implementare | Notă |
|
|
|------------|-------------|------|
|
|
| **Frontend** | Componentă Astro + React island | Formular wizard + preview live |
|
|
| **Template engine** | JSON schema per cerere + Handlebars/Mustache | Fiecare cerere = JSON cu câmpuri + template text |
|
|
| **AI** | Opțional — LLM pentru "cerere text liber" | Nu e necesar pentru cereri structurate |
|
|
| **PDF generation** | jsPDF sau pdfmake (client-side) | Zero backend, totul în browser |
|
|
| **Stocare** | Zero. Nimic nu se salvează pe server | Privacy by default — datele rămân în browser |
|
|
| **Template-uri** | Fișiere MDX/JSON în repo | Ușor de contribuit, versionat |
|
|
|
|
**Arhitectura concretă:**
|
|
```
|
|
[Browser]
|
|
→ Userul alege tipul de cerere
|
|
→ Se încarcă schema JSON (câmpuri necesare)
|
|
→ Completează formularul (totul client-side)
|
|
→ Template engine generează textul cererii (live preview)
|
|
→ Userul descarcă PDF generat în browser
|
|
→ NIMIC nu ajunge la server
|
|
```
|
|
|
|
**Ce NU facem:**
|
|
- NU salvăm date personale (CNP, adresă, etc.) — totul rămâne în browser
|
|
- NU facem submit automat la primărie (prea complex, prea multe variabile)
|
|
- NU acoperim toate tipurile de cereri — doar top 10 cele mai comune
|
|
- NU pretindem că înlocuim un avocat
|
|
|
|
### Demo wow — 30 secunde, screenshot-able
|
|
|
|
**Scenariul:**
|
|
|
|
1. Screenshot 1: Grila cu 10 tipuri de cereri, design curat, iconuri
|
|
2. Screenshot 2: Formularul conversațional pentru "Reclamație la primărie"
|
|
- "Ce vrei să reclami?" → "Groapa din strada X nu e reparată de 3 luni"
|
|
- "Adresa ta?" → autocomplete
|
|
3. Screenshot 3: Preview-ul cererii generate — arată profesionist, cu antet, dată, formulare corecte
|
|
4. Screenshot 4: Buton "Descarcă PDF" → PDF deschis, gata de printat și depus
|
|
|
|
**Textul viral:** "Am generat o cerere oficială în 30 de secunde. Normal durează 45 de minute și 2 drumuri la primărie ca să iei modelul."
|
|
|
|
### Efort real
|
|
|
|
| Task | Timp estimat | Cine |
|
|
|------|:----------:|------|
|
|
| Cercetare: colectare 10 modele cereri reale | 6h | 1 pers |
|
|
| Creare JSON schemas pentru 10 cereri | 8h | 1 dev |
|
|
| Creare template-uri text pentru 10 cereri | 6h | 1 dev |
|
|
| UI: wizard formular + live preview | 12h | 1 dev |
|
|
| PDF generation (client-side) | 6h | 1 dev |
|
|
| Integrare în site-ul Astro | 2h | 1 dev |
|
|
| Testare + feedback de la 2-3 oameni | 4h | 1 dev |
|
|
| **TOTAL** | **~44h** | **1 dev, 6 zile** |
|
|
|
|
### Risc principal
|
|
|
|
**Cererea generată nu e acceptată de primărie.** Funcționarul zice "nu e pe formularul nostru."
|
|
|
|
**Mitigare:**
|
|
1. Disclaimer: "Verifică la primăria ta dacă acceptă acest format"
|
|
2. Design conservator — cererea arată oficial, nu "fancy"
|
|
3. Includem opțiunea de a descărca doar textul (fără formatare), ca userul să-l pună pe orice template
|
|
4. Pe termen lung: parteneriate cu primării mici care validează template-urile
|
|
5. Formulăm cererea în limbaj juridic standard — funcționarii recunosc structura
|
|
|
|
---
|
|
|
|
## Produs 3: Vizualizare buget local
|
|
|
|
> "Pe ce se duc banii tăi?"
|
|
|
|
### Ce face exact — user flow pas cu pas
|
|
|
|
```
|
|
1. Userul intră pe vreaudigital.ro/buget
|
|
2. Vede o hartă simplificată a României SAU un dropdown cu localități
|
|
3. Selectează orașul/comuna (ex: "Cluj-Napoca")
|
|
4. Apare dashboard-ul:
|
|
a) TOTAL buget: "423 milioane lei (2025)"
|
|
b) Treemap/sunburst vizualizare pe categorii:
|
|
- Educație: 28% (118M lei)
|
|
- Infrastructură drumuri: 22% (93M lei)
|
|
- Sănătate: 12% (51M lei)
|
|
- Administrație: 15% (63M lei)
|
|
- Cultură: 5% (21M lei)
|
|
- ...
|
|
c) Click pe categorie → detalii sub-categorii
|
|
d) Comparație cu anul anterior (+ / - %)
|
|
e) "Cât plătești TU?" — slider cu venitul lunar
|
|
→ "Din taxele tale de 400 lei/lună, 112 lei merg pe educație"
|
|
5. Sub grafice:
|
|
→ "Sursa datelor: Ministerul Finanțelor, execuția bugetară 2025"
|
|
→ "Descarcă datele" (CSV)
|
|
→ "Compară cu alt oraș" (opțional, faza 2)
|
|
```
|
|
|
|
### Date sursă
|
|
|
|
**Sursa principală: Ministerul Finanțelor — Forexebug/Execuție bugetară**
|
|
|
|
Realitatea (nu e roz):
|
|
- **Datele EXISTĂ** — Ministerul Finanțelor publică execuția bugetară pe site-ul forexebug.mfinante.ro
|
|
- **Formatul e problematic** — fișiere Excel/CSV, structură inconsistentă între ani, coduri bugetare fără descrieri umane
|
|
- **Granularitatea variază** — unele primării raportează detaliat, altele minimal
|
|
- **Actualizarea e trimestrială** — nu e real-time
|
|
|
|
**Surse concrete:**
|
|
1. `forexebug.mfinante.ro` — execuție bugetară pe UAT-uri (Unități Administrativ-Teritoriale)
|
|
2. `data.gov.ro` — câteva seturi de date bugetare (incomplete, neactualizate)
|
|
3. Site-urile primăriilor — publică bugetul local anual (PDF, de obicei scanat)
|
|
|
|
**Efort de obținere date:**
|
|
- Download-ul datelor de la MF: 2-4h (trebuie navigat prin interfața greoaie)
|
|
- Parsarea și normalizarea: 8-12h (cel mai mare efort — formatul e inconsistent)
|
|
- Maparea codurilor bugetare pe categorii umane: 4-6h (există clasificație standard, dar trebuie simplificată)
|
|
- **Total inițial:** ~20h pentru a avea date clean pentru 5-10 orașe
|
|
|
|
### MVP tehnic
|
|
|
|
| Componentă | Implementare | Notă |
|
|
|------------|-------------|------|
|
|
| **Frontend** | Componentă Astro + React island | Dashboard interactiv |
|
|
| **Grafice** | D3.js treemap SAU Recharts/Nivo | Treemap = cel mai wow vizual pentru buget |
|
|
| **Date** | JSON static per oraș, generat offline | Zero backend, zero DB |
|
|
| **Pipeline date** | Script Python/Node care parsează Excel-urile MF | Rulează offline, output = JSON files |
|
|
| **Search/selector** | Dropdown simplu cu autocomplete | Pagefind (built-in Astro) sau simplu select |
|
|
| **Calculator personal** | Slider JS cu formulă simplă | (venit * rata_impozit) * procent_categorie |
|
|
|
|
**Arhitectura concretă:**
|
|
```
|
|
[Offline pipeline — rulează manual trimestrial]
|
|
→ Download Excel-uri de la forexebug.mfinante.ro
|
|
→ Script Python: parsează, normalizează, mapează categorii
|
|
→ Output: /data/buget/cluj-napoca-2025.json
|
|
→ Commit în repo → deploy automat
|
|
|
|
[Browser]
|
|
→ Userul selectează orașul
|
|
→ Se încarcă JSON-ul static (CDN, instant)
|
|
→ D3.js/Recharts renderează graficele
|
|
→ Slider "cât plătești tu" = calcul client-side
|
|
→ Zero requests la server (totul e static)
|
|
```
|
|
|
|
**Ce NU facem:**
|
|
- NU facem real-time data pipeline (overkill, datele se schimbă trimestrial)
|
|
- NU scrapăm automat site-ul MF (fragil, se poate strica oricând)
|
|
- NU acoperim toate cele ~3200 UAT-uri de la început — doar top 10 orașe
|
|
- NU comparăm cu media europeană (date incomparabile, contexte diferite)
|
|
|
|
### Demo wow — 30 secunde, screenshot-able
|
|
|
|
**Scenariul:**
|
|
|
|
1. Screenshot: Treemap colorat pe categorii bugetare pentru Cluj-Napoca
|
|
- Blocuri mari și mici, culori distincte, sume vizibile
|
|
- Titlu mare: "Bugetul Cluj-Napoca 2025: 423M lei"
|
|
2. Screenshot: Zoom pe "Educație" — sub-categorii (salarii profesori, renovări școli, burse)
|
|
3. Screenshot: Slider "Cât plătești tu?" setat pe 5000 lei/lună
|
|
- "Din taxele tale: 47 lei/lună pe educație, 37 lei pe drumuri, 9 lei pe cultură"
|
|
4. Screenshot: Comparație 2024 vs 2025 — săgeți verzi/roșii pe categorii
|
|
|
|
**Textul viral:** "Am aflat că din taxele mele de 400 lei/lună, 60 lei se duc pe 'administrație internă'. Ce face primăria cu 60 lei/lună de la mine doar pe propria funcționare?"
|
|
|
|
### Efort real
|
|
|
|
| Task | Timp estimat | Cine |
|
|
|------|:----------:|------|
|
|
| Download + analiză date MF (structură, format) | 6h | 1 dev |
|
|
| Script parsare Excel → JSON normalizat | 12h | 1 dev |
|
|
| Mapare coduri bugetare → categorii umane | 6h | 1 dev |
|
|
| Generare JSON-uri pentru 5-10 orașe | 4h | 1 dev |
|
|
| UI: selector oraș + treemap + detalii categorie | 16h | 1 dev |
|
|
| UI: slider "cât plătești tu" | 4h | 1 dev |
|
|
| UI: comparație ani | 6h | 1 dev |
|
|
| Integrare în site-ul Astro | 2h | 1 dev |
|
|
| Testare + ajustare vizualizări | 4h | 1 dev |
|
|
| **TOTAL** | **~60h** | **1 dev, 8-10 zile** |
|
|
|
|
### Risc principal
|
|
|
|
**Datele de la MF sunt inconsistente sau lipsesc.** Format diferit între ani, categorii care se schimbă, primării care nu raportează corect.
|
|
|
|
**Mitigare:**
|
|
1. Începem cu 5 orașe mari (Cluj, București, Timișoara, Iași, Brașov) — datele lor sunt mai complete
|
|
2. Script de parsare cu fallback-uri (categorii "Alte cheltuieli" pentru ce nu se mapează)
|
|
3. Afișăm întotdeauna sursa și data actualizării: "Date din execuția bugetară Q3 2025"
|
|
4. Transparent cu limitările: "Datele vin de la MF și pot conține erori de raportare"
|
|
5. Păstrăm pipeline-ul simplu (manual, trimestrial) — nu automatizăm ce nu putem controla
|
|
|
|
---
|
|
|
|
## Produs 4 (Faza 2): Harta digitalizării
|
|
|
|
> "Cât de digitalizată e primăria ta?"
|
|
|
|
**De ce faza 2, nu faza 1:** Necesită date crowdsourced. La lansare n-avem comunitate care să contribuie. Dar e un produs excelent de "faza tracțiune" când avem deja 100-500 de vizitatori.
|
|
|
|
### Ce face exact — user flow pas cu pas
|
|
|
|
```
|
|
1. Userul intră pe vreaudigital.ro/harta
|
|
2. Vede harta României, colorată pe județe (gradient: roșu → verde)
|
|
3. Hover pe județ → tooltip: "Județul Cluj: 4.2/10 digitalizare"
|
|
4. Click pe județ → lista primăriilor cu scor individual
|
|
5. Click pe primărie → fișa detaliată:
|
|
a) Scor general: 3.7/10
|
|
b) Checklist vizual:
|
|
✅ Site funcțional
|
|
✅ Plăți online (Ghișeul.ro)
|
|
❌ Cereri online
|
|
❌ Transparență buget
|
|
❌ Programări online
|
|
✅ Email de contact funcțional
|
|
❌ Răspuns în 30 zile la cereri
|
|
c) "Ultima verificare: 15 martie 2026 de Andrei M."
|
|
d) "Verifică tu" → formular de contribuție
|
|
6. Clasament: top 10 primării / bottom 10 primării
|
|
7. Evoluție în timp (când avem date pe mai multe luni)
|
|
```
|
|
|
|
### Date sursă
|
|
|
|
**Aici e problema principală:** Datele nu există nicăieri centralizat.
|
|
|
|
**Surse posibile:**
|
|
1. **Crowdsourcing** — cetățeni verifică manual criteriile pentru primăria lor
|
|
2. **Scraping automat** — verificăm dacă primăria are site, dacă site-ul funcționează, dacă are HTTPS
|
|
3. **Date oficiale parțiale** — ADR publică lista primăriilor conectate la Ghișeul.ro
|
|
4. **SEAP** — putem verifica dacă primăria face achiziții online
|
|
|
|
**Realitate:**
|
|
- Există ~3200 UAT-uri (primării + consilii) în România
|
|
- Doar ~10% au site-uri funcționale cu servicii online reale
|
|
- Verificarea manuală a unei primării durează 5-10 minute
|
|
- Un scraper poate verifica automat: site activ, HTTPS, pagini funcționale, email de contact
|
|
|
|
**Strategie realistă:**
|
|
1. Scraper automat pentru criteriile tehnice (site activ, HTTPS, pagini cheie)
|
|
2. Formulare crowdsourcing pentru criterii subiective (responsivitate, calitate servicii)
|
|
3. Începem cu cele 41 de reședințe de județ (verificare manuală completă)
|
|
4. Creștem prin contribuții comunitare
|
|
|
|
### MVP tehnic
|
|
|
|
| Componentă | Implementare | Notă |
|
|
|------------|-------------|------|
|
|
| **Hartă** | Leaflet.js sau MapLibre cu GeoJSON al României | GeoJSON județe/UAT disponibil gratuit |
|
|
| **Date** | JSON static, generat din scraper + contribuții manuale | Zero backend la început |
|
|
| **Scraper** | Script Python: verifică site activ, HTTPS, pagini standard | Rulează periodic offline |
|
|
| **Contribuții** | Formspree sau Google Forms → review manual → merge în JSON | Crowdsourcing low-tech |
|
|
| **Scor** | Formulă simplă: nr criterii îndeplinite / total criterii | Transparent, ușor de înțeles |
|
|
|
|
### Demo wow
|
|
|
|
Harta României colorată gradient, cu tooltip-uri pe hover. Clasamentul "Top 10 / Bottom 10" e extrem de share-able — jurnaliștii vor face articole instant.
|
|
|
|
### Efort real
|
|
|
|
| Task | Timp estimat |
|
|
|------|:----------:|
|
|
| Scraper: verificare automată criterii tehnice | 8h |
|
|
| Verificare manuală: 41 reședințe de județ | 16h (munca manuală) |
|
|
| Frontend: hartă + tooltip + clasament | 16h |
|
|
| Sistem contribuții (forms + review) | 4h |
|
|
| **TOTAL** | **~44h** |
|
|
|
|
### Risc principal
|
|
|
|
**Date incomplete = hartă care arată goală și neinteresantă.** Dacă avem date doar pentru 41 de orașe, harta arată 3200 de puncte gri și 41 colorate.
|
|
|
|
**Mitigare:** Afișăm harta la nivel de județ (41 entități, nu 3200). Scorul județului = media orașelor verificate din județ.
|
|
|
|
---
|
|
|
|
## Rezumat comparativ și timeline integrată
|
|
|
|
### Ordinea de construcție recomandată
|
|
|
|
| # | Produs | Efort | Când | De ce acum |
|
|
|---|--------|:-----:|------|------------|
|
|
| 1 | Traducătorul birocratic | 3 zile | Săptămâna 2-3 | Cel mai viral, cel mai rapid, cel mai wow |
|
|
| 2 | Generator cereri | 6 zile | Săptămâna 3-4 | Utilitate directă, completează traducătorul |
|
|
| 3 | Vizualizare buget | 8-10 zile | Săptămâna 5-7 | Cel mai complex dar cel mai util pe termen lung |
|
|
| 4 | Harta digitalizării | 6 zile + muncă manuală | Săptămâna 8-10 | Necesită comunitate, vine după ce avem trafic |
|
|
|
|
### Costul real
|
|
|
|
| Resursă | Cost |
|
|
|---------|:----:|
|
|
| Domeniu vreaudigital.ro | ~12 EUR/an |
|
|
| Cloudflare Pages hosting | 0 EUR |
|
|
| Cloudflare Workers (traducător AI) | 0 EUR (free tier: 100k req/zi) |
|
|
| OpenAI API (backup dacă Workers AI nu e destul de bun) | ~5-10 EUR/lună la 1000 traduceri/zi |
|
|
| **TOTAL lunar** | **0-10 EUR** |
|
|
|
|
### Decizii de luat acum
|
|
|
|
1. **Traducătorul: Workers AI vs OpenAI?**
|
|
- Workers AI: gratuit, dar calitatea modelelor în română e de testat
|
|
- OpenAI GPT-4o-mini: ~$0.15/1M input tokens, calitate excelentă în română
|
|
- **Recomandare:** Testăm Workers AI întâi. Dacă calitatea nu e ok, trecem pe OpenAI.
|
|
|
|
2. **Generator cereri: câte cereri la lansare?**
|
|
- 5 e suficient. Cele mai comune: certificat fiscal, cerere audiență, reclamație, certificat urbanism, adeverință.
|
|
|
|
3. **Buget: câte orașe la lansare?**
|
|
- 5-10 e suficient. Cele mai mari = cele mai căutate = cele mai bune date.
|
|
|
|
4. **Harta: o includem în lansare sau nu?**
|
|
- Recomandare: NU la lansare. O anunțăm ca "vine curând" și invităm oamenii să contribuie cu date.
|
|
|
|
---
|
|
|
|
## Notă finală: Cele 3 produse ca narativ integrat
|
|
|
|
Site-ul nu e doar 3 tool-uri separate. E o poveste:
|
|
|
|
> **"Statul vorbește într-o limbă pe care n-o înțelegi."** → Traducătorul
|
|
> **"Cererea e un labirint birocratic."** → Generatorul
|
|
> **"Nu știi pe ce se duc banii tăi."** → Vizualizarea buget
|
|
|
|
Fiecare produs rezolvă un "pain point" real. Împreună, arată o viziune: **cum ar putea arăta România dacă digitalizarea ar fi făcută pentru cetățeni, nu pentru funcționari.**
|
|
|
|
Asta e mesajul care se vinde singur.
|