Dosar proiect

Sistem operațional pentru documentarea cazurilor de grooming online

Inițiativă civică românească care documentează sistematic grooming-ul online împotriva minorilor. Cazurile sosesc de la public (părinți, victime, martori), trec prin evaluare, evidența dovezilor și corelare a persoanelor de interes între dosare, apoi sunt escaladate către autoritățile competente. Standard de evidență la nivel de anchetă penală, în limitele regimului legal al conținutului sensibil.

Justițiarul de Berceni, dashboard operațional pentru investigatori cu indicatori cazuri, evoluție pe 30 zile și tabel dosare
01 / 04
Client
Inițiativă civică, România
Sector
Protecția copilului, OSINT, justiție
An livrare
2026
Status
Pilot privat

Aceeași poveste, două registre.

Pentru cine plătește proiectulLimbaj uman, fără jargon

Două layere separate: site public pentru raportare cu verificare în trei pași, plus aplicație internă unde investigatorii gestionează dosarele, corelează agresorii între cazuri și pregătesc materialul pentru sesizare către autorități. Fiecare acțiune lasă urmă, fiecare acces trece prin autentificare în doi factori, conținutul sensibil nu există niciodată în clar pe disc.

Pentru cine îl revizuiește tehnicDecizii concrete, versiuni reale

Site public Next.js 14 static export, aplicație internă Next.js 14 + NestJS 11 + PostgreSQL 16 (pg_trgm pentru fuzzy match pe nume). Argon2id pe parole, AES-256-GCM pe câmpurile sensibile (IP, secrete TOTP), TOTP 2FA cu lockout progresiv. Imaginile-dovezi trec prin PDQ-WASM (perceptual hash open-source) și opțional PhotoDNA, izolate pe paths separate (quarantine / clean / flagged) cu permisiuni stricte, niciodată stocate în clar. SSE pentru notificări live, BullMQ pentru jobs asincrone, audit log append-only indexat pe user și IP.

Aceleași fapte, două lecturi. CEO-ul citește registrul de sus și știe ce s-a livrat. CTO-ul citește registrul de jos și știe cum. Nimeni nu e forțat să traducă mental.

Procesul existent înainte de noi.

Dovezile veneau din canale fragmentate: formular, screenshot, mesaj, captură din rețele sociale. Fără un sistem unic, dovada se pierdea în email, persoanele de interes nu se corelau între dosare, iar întrebarea «cine a accesat ce dosar, când, de pe ce IP» nu avea răspuns reconstituibil. Conținutul CSAM are restricții legale stricte la stocare și transport: nu poate exista în clar pe nicio infrastructură.

Sistemul construit pe măsură.

Două straturi separate. Stratul public e Next.js 14 static export pentru intake și conștientizare, cu verificare SMS, hCaptcha și consimțământ explicit pe fiecare canal de procesare. Stratul intern e Next.js 14 + NestJS 11 + PostgreSQL 16: investigatorii intră prin TOTP 2FA cu lockout progresiv, câmpurile sensibile (IP, parole, secrete TOTP) sunt criptate AES-256-GCM, parolele hash-uite Argon2id. Dovezile imagine trec prin PDQ-WASM și opțional PhotoDNA API, izolate pe paths separate (quarantine, clean, flagged) cu permisiuni stricte. Cazul parcurge un workflow controlat (nou → în evaluare → activ → raportat → închis), notificările live circulă prin Server-Sent Events, harta publică folosește Leaflet cu date agregate fără identificatori personali. Audit log append-only indexat pe utilizator, IP, timestamp. Background jobs (scan, alert, export) pe BullMQ peste Redis.

Stack-ul, în producție.

  1. 01Next.js 14 · React 18
  2. 02NestJS 11 · TypeORM
  3. 03PostgreSQL 16 · pg_trgm
  4. 04Redis 7 · BullMQ
  5. 05PDQ-WASM · PhotoDNA
  6. 06Argon2id · AES-256-GCM · TOTP
  7. 07Server-Sent Events · Leaflet
  8. 08Docker · Nginx

Rezultatul măsurabil.

Stratul public e live pe domeniul inițiativei, stratul operațional e în pilot privat cu echipa de investigatori. Threat model-ul intern trece complet: niciun clear-text pe conținut clasificat sensibil, niciun acces fără 2FA, audit trail integral pe fiecare acțiune, migrații DB reversibile pe ambele sensuri. Suita include peste 500 de teste automatizate, secretele sunt scrubbed din loguri prin policy de logging.

  1. M.01Suită teste automatizate500+ (unit + integration)
  2. M.02Verificări la intake public3 (SMS, captcha, consimțământ explicit)
  3. M.03Criptare câmpuri sensibileAES-256-GCM + Argon2id pe parole

Note tehnice și verificări.

  1. [1]

    Codul sursă și infrastructura aparțin clientului după predare. Scorurile, stack-ul și metricile reflectă starea predată, nu starea curentă a proiectului.

  2. [2]

    Documentația tehnică detaliată, jurnalele de implementare și rapoartele de testare sunt arhivate în repository-ul intern Arcane Tech, disponibile sub acord de confidențialitate.

Aveți un sistem similar de construit?

Pornim cu o analiză tehnică condusă de un inginer principal, sub acord de confidențialitate.