Case study 01
AtlasEnergie: Platformă de date energetice
Hartă și marketplace pentru proiecte energetice din România, construite din registre publice greu de folosit.
Pe scurt
AtlasEnergie adună într-un singur loc informații despre racordările la rețea și proiectele energetice din România, care până acum erau greu de găsit și de comparat.
Platforma combină o hartă, o bază de date și un marketplace. Proprietarii își pot revendica proiectele, le pot lista și pot vorbi cu potențiali cumpărători fără să-și dezvăluie identitatea prea devreme.
Context
Datele existau, dar erau împrăștiate prin registrele autorităților, fișierele operatorilor, PDF-uri și publicații de rețea. Fiecare sursă avea alt format, altă acoperire și alt ritm de actualizare.
Pe lângă adunarea lor, trebuia să păstrez sursa fiecărei informații, să clarific datele care se contrazic și să arăt unde există incertitudine.
Constrângeri
Partea grea a fost să stabilesc ce poate demonstra cu adevărat fiecare sursă.
- Registrele publice vin ca fișiere XLSX, PDF-uri și tabele fără un format comun, de la instituții diferite.
- Unele surse nu menționează proprietarul proiectului; altele îl ascund în text liber.
- Același tip de denumire poate indica un proiect mare sau un prosumator, așa că clasificarea se bazează pe tensiune și context.
- O listare anonimă trebuie să fie utilă fără să dezvăluie vânzătorul prin titlu, stație sau descriere.
- Sursele se actualizează la intervale diferite și nu acoperă aceleași zone. Interfața nu poate promite date complete sau în timp real.
Ce am livrat
Am construit tot produsul, de la preluarea și curățarea datelor până la căutare, hartă și marketplace.
- Preluare controlată și cache pentru sursele autorităților, operatorilor de transport și distribuție și instituțiilor publice.
- Model PostgreSQL normalizat, clasificarea stațiilor, geocodare offline și legături între proiecte și proprietari, bazate pe dovezi.
- Hartă publică, căutare de proiecte, registru de companii și fișe de proiect anonimizate.
- Verificarea companiilor, revendicarea proiectelor, listări, solicitări din partea cumpărătorilor și alerte pentru căutările salvate.
- Deploy, rate limiting și reguli stricte pentru operațiunile care modifică date sau apelează servicii externe.
Arhitectură
De la registru public la produs interactiv
Decizii importante
- Geocodare offline
- Cele mai multe nume de stații trebuie asociate cu o localitate. Un dicționar de localități, filtrat pe județ, dă rezultate mai previzibile decât mii de căutări prin servicii externe.
- Unitățile industriale și punctele de racordare scrise liber rămân fără coordonate până când apare o sursă mai bună.
- Revendicarea înregistrărilor existente
- Dezvoltatorul proiectului energetic găsește înregistrarea publică și dovedește că îi aparține. Listarea rămâne astfel legată de sursa originală.
- Cazurile neclare sunt verificate manual, chiar dacă procesul durează mai mult.
- Datele sursă rămân nemodificate
- O listare poate adăuga informații comerciale, dar nu poate rescrie datele autorității pe care se bazează proiectul.
- Datele publice vechi rămân afișate așa cum sunt, iar corecturile au nevoie de un mecanism separat.
- Cumpărătorul se prezintă primul
- Cel interesat trimite o solicitare cu datele sale. Vânzătorul își arată datele de contact numai după ce o acceptă.
- Pasul în plus poate descuraja unii cumpărători, dar protejează vânzătorul atunci când expunerea proiectului poate avea un cost.
Ce poți verifica
Harta și marketplace-ul sunt publice pe atlasenergie.ro.
Deschide AtlasEnergie (se deschide într-o filă nouă)Limite
Datele depind de surse.
Acoperirea și frecvența actualizărilor diferă de la un operator la altul. Unii proprietari nu pot fi identificați, iar anumite puncte de racordare nu pot fi geocodate sigur. AtlasEnergie arată aceste limite și precizează că un registru public nu reflectă starea rețelei în timp real.
Rol și tech stack
Am proiectat și construit întregul produs: modelul de date, preluarea surselor, marketplace-ul, interfața publică și infrastructura de operare.
Python · Django · PostgreSQL · GeoNames offline · HTML/CSS/JavaScript · nginx · gunicorn · systemd