Studiu de caz · Client: Teach for Romania · 2025-2026
Edu-Start: profesorii măsoară cum progresează elevii, nu doar ce note iau.
O platformă pentru profesorii Teach for Romania din școlile vulnerabile. Evaluează elevii pe trei direcții, competențe socio-emoționale (SEL), citire (LIT) și matematică (NUM), la începutul, la mijlocul și la sfârșitul anului. Rapoartele arată progresul pe elev, clasă și generație de profesori.
- Client
- Teach for Romania
- Rol
- Reconstrucție completă: platformă, site, integrare
- Perioadă
- 2025 - 2026
- Stare
- În producție, pe dev.edu-start.ro
- Problema
- Vechea platformă măsura doar competențele socio-emoționale. Programul avea nevoie și de citire și matematică, în același loc.
- Ce am construit
- O platformă de evaluare SEL, LIT și NUM, cu chestionare editabile din admin, rapoarte pe elev, clasă și generație și integrare cu un partener extern.
- Rezultatul
- În producție pe dev.edu-start.ro, pentru profesorii Teach for Romania.
- 3 domenii evaluate: SEL, LIT, NUM
- 3 momente pe an: T0, Ti, T1
- 18.056 școli în nomenclatorul importat
- 41 de mii de linii de cod scrise pentru proiect
Numărate în codul proiectului și în structura bazei de date de test, pe 5 noiembrie 2026. Școlile vin din nomenclatorul național, importat din CSV.
01 · Problema
Ce nu se vede în catalog.
Teach for Romania trimite profesori în școli din comunități vulnerabile. Acolo, progresul unui copil nu se vede doar în note: contează dacă reușește să-și gestioneze emoțiile, dacă înțelege ce citește, dacă se descurcă la calcule simple.
Vechea platformă Edu-Start măsura doar partea socio-emoțională. Programul avea nevoie de toate trei domeniile în același loc, cu rapoarte pe care un tutore să le poată folosi pentru o generație întreagă de profesori.
02 · Ce face
Evaluare la început, la mijloc și la final de an.
Profesorul își creează clasa, adaugă elevii și completează chestionarele SEL și LIT la fiecare etapă: T0 la început, Ti la mijloc, T1 la final. Răspunsurile se salvează automat ca ciornă, cu procentul de completare, iar scorurile se calculează pe capitole. Rezultatele la matematică (NUM) vin automat de la un partener extern.
Tutorii văd toate clasele profesorilor pe care îi coordonează. Administratorii Teach for Romania pornesc și opresc modulele pentru fiecare generație și exportă datele.
03 · Cum circulă datele
De la nomenclatorul școlilor la raportul pe generație.
- 01
Nomenclator
- 42 de județe, 7.467 de localități
- 18.056 de școli, cu cod SIIIR
- Import din CSV, din admin
- 02
Oameni și clase
- Profesori, tutori, mentori
- Generații și clase
- Elevi adăugați de profesor
- 03
Evaluări
- Chestionare SEL și LIT pe etape
- Salvare automată ca ciornă
- Scor pe capitole
- 04
Rapoarte
- Pe elev, clasă, profesor, generație
- Grafice cu Chart.js
- Export PDF și CSV
Rezultatele NUM intră separat, de la partenerul extern, prin webhook-uri semnate.
04 · Decizia principală
Chestionarele sunt conținut, nu cod.
Fiecare instrument de evaluare e un articol în WordPress, cu structura descrisă în câmpuri ACF: capitole, întrebări, variante, scoruri. Există variante pe niveluri, de exemplu pentru primar mic, primar mare și gimnaziu, și pe etape.
Echipa Teach for Romania poate schimba o întrebare sau poate adăuga un instrument nou fără un programator. Răspunsurile se păstrează ca JSON, cu scorurile pe capitole și procentul de completare, așa că rapoartele vechi rămân valide și după ce chestionarul se schimbă.
05 · Integrarea cu partenerul
Construită să suporte căderi de rețea.
Evaluarea la matematică se face pe platforma unui partener. Edu-Start îi trimite profesorii, generațiile și elevii și primește înapoi rezultatele. Nicio parte nu are voie să piardă date dacă cealaltă e căzută.
- 01
Coadă de ieșire
- Tabel de mesaje cu reîncercări
- Protecție la duplicate
- Loturi de 25, la 2 minute
- 02
Identități opace
- Chei de 26 de caractere, nu ID-uri interne
- Rezolvare în ambele sensuri
- Completare pentru datele vechi
- 03
Webhook-uri
- Semnate HMAC-SHA256
- Respinse după 5 minute
- Fiecare apel jurnalizat, cu stare
- 04
Autentificare
- OAuth2, client credentials
- 9 rute REST
- Verificare de sănătate
Partenerul nu primește niciodată ID-urile interne ale elevilor, ci chei opace, generate o singură dată.
06 · Componente
Ce am construit.
Panoul pentru profesori
O aplicație în tema WordPress, cu rute proprii.
- Clase, elevi, evaluări
- Formulare SEL și LIT cu precompletare și progres
- Profil cu școlile alese din județ, oraș, școală
- Notificări în pagină
- Raport pe elev, cu tab-uri SEL și LIT
Panoul pentru tutori și admini
39 de vederi și 22 de fragmente de panou.
- Generații, cu module pornite pe rând sau în bloc
- Școli, profesori, tutori, elevi
- Rapoarte și analiză pe generație
- Exporturi CSV
- Documentație pentru utilizatori
Pluginul de locații
Datele de referință și structura școlară.
- Județe, localități pe trei niveluri, școli
- Import CSV, cu cod SIIIR și regiune
- Roluri: profesor, tutor, alumni, non-teach
- Clase, elevi, generații
Site-ul de prezentare
În aceeași temă, cu blocuri de pagină editabile.
- Pagini pentru SEL, LIT și NUM
- Pagini pentru profesori, școli și programe
- Blog
- Construit pe Tailwind, Alpine.js și Flowbite
07 · Metrici
Ce am numărat.
Proiectul nu are istoric git în copia pe care o am, așa că nu public numărul de commit-uri. Nu public cifre de utilizare și nu număr și nu arăt date despre elevi.
- 18.056școli în nomenclatorul importatmăsurat
- 7.467localități, pe trei niveluri: județ, oraș sau comună, satmăsurat
- 42de acțiuni AJAX pentru panouîn cod
- 9rute REST pentru integrarea cu partenerulîn cod
- 5 minfereastra în care un webhook semnat e acceptatîn cod
- ~41klinii de PHP și JavaScript scrise pentru proiectmăsurat
Cât cod
- 115
- fișiere PHP în temă
- 32k
- linii în temă
- 18
- fișiere în pluginul de locații
- 13
- fișiere în pluginul de integrare
- 9
- tabele proprii
- 39
- vederi de panou
08 · Ce am învățat
Ce iau cu mine.
Pune instrumentele în mâna clientului
Cu chestionarele editabile din admin, schimbarea unui instrument nu mai cere un programator. Programul se schimbă de la un an la altul, iar platforma ține pasul fără un nou proiect.
O integrare trebuie să presupună că partenerul cade
Coada cu reîncercări și cheile opace au făcut integrarea plictisitoare, adică exact ce trebuie.
Protejează datele reale și în dezvoltare
Copia locală are un plugin care blochează orice email și doar îl jurnalizează, ca nimeni să nu primească un mesaj de test.
Lucrezi la un program educațional care are nevoie de date?
Construiesc platforme de evaluare și raportare, cu integrări sigure între parteneri. Scrie-mi și vedem dacă se potrivește.