O platformă de analiză web production-ready, axată pe confidențialitate, cu un 'Data Analyst' AI integrat care folosește Text-to-SQL pentru a răspunde la întrebări în limbaj natural despre datele tale. Construită cu TypeScript, Express.js, React și PostgreSQL.
Statut
Proiect selectat
Contextul sistemului
TypeScript, Node.js, Express.js, React
Sursă
Repository public
01 / Comportamentul sistemului
Dovadă interactivă
Un mecanism tehnic specific proiectului, bazat pe arhitectura și contextul de implementare înregistrate.
Dovadă interactivăPingLens - Platformă de Analiză Web cu AI
01Natural-language question
02LLM provider
03Generated SQL
01Validation 01
02Validation 02
03Validation 03
04Validation 04
05Validation 05
04Read-only database
05Analytics response
Context și intenție
Construit ca o alternativă production-ready la Google Analytics, PingLens demonstrează că confidențialitatea și analiza puternică nu se exclud reciproc. Platforma a ales deliberat complexitatea în detrimentul simplității - nu doar numărarea pageview-urilor, ci un analist AI complet care înțelege limbajul natural, generează SQL sigur și transmite răspunsuri conversaționale în streaming.
Pipeline-ul AI Text-to-SQL este inima sistemului: utilizatorii pun întrebări precum 'Care au fost paginile mele top ieri?' și LLM-ul generează interogări PostgreSQL cu context complet de schemă. Fiecare interogare trece prin cinci straturi de securitate înainte de execuție. Blocklist-ul de cuvinte cheie periculoase respinge operațiunile INSERT/DROP/DELETE. Potrivirea de pattern-uri prinde încercările de injecție SQL (OR 1=1, UNION SELECT). Validarea tabelelor asigură că doar 'events' și 'websites' sunt interogate. Interogarea se execută printr-un rol de bază de date read-only cu permisiuni doar SELECT. Dacă prima încercare eșuează, sistemul reîncearcă o dată cu contextul erorii - învățând LLM-ul din greșelile sale.
03 / Înregistrarea arhitecturii
Arhitectură
O interpretare structurată a arhitecturii înregistrate pentru acest proiect.
Înregistrarea arhitecturiiPingLens - Platformă de Analiză Web cu AI
01Dashboard pentru Clienți
02Script de Tracking
03API Backend
Citește înregistrarea completă a arhitecturii
Trei aplicații care lucrează împreună:
• Dashboard pentru Clienți (dashboard/) - React + Vite + TailwindCSS pentru selectarea site-ului, vizualizarea metrici în timp real cu Recharts și interfața de chat AI cu răspunsuri în streaming
• Script de Tracking (tracker/) - TypeScript vanilla (<5KB) cu batching inteligent de evenimente, timere de auto-flush și fallback sendBeacon pentru colectare fiabilă de date
• API Backend (api/) - Express.js cu TypeScript care gestionează ingestia evenimentelor, interogări de analiză, pipeline-ul AI Text-to-SQL și abstractizarea LLM multi-provider
API-ul se conectează la PostgreSQL prin node-postgres cu două pool-uri de conexiuni: un pool principal pentru operațiuni read/write și un pool read-only (rolul ai_agent_reader) pentru interogările generate de AI. Pipeline-ul AI validează SQL-ul prin blocklist-uri regex, detectarea pattern-urilor de injecție și allowlist-uri de tabele înainte de execuție.
Furnizori LLM (OpenAI, Anthropic, Gemini) sunt abstractizați prin interfața ILLMService cu ProviderConfig discriminated union. Mecanismul de auto-corecție reîncearcă interogările eșuate o dată cu contextul erorii.
Docker Compose orchestrează întregul stack pentru dezvoltare locală. Build-ul de producție folosește Dockerfile-uri multi-stage cu utilizatori non-root și health check-uri.
Cum este structurat sistemul
Tracker-ul este proiectat pentru performanță și fiabilitate: evenimentele se pun la coadă în memorie (max 50), auto-flush la fiecare 5 secunde, trimitere batch cu fetch keepalive și fallback sendBeacon la descărcarea paginii. Zero dependențe externe. Întregul bundle este <5KB minificat.
Securitatea a fost o preocupare de prim rang de la prima zi: Helmet.js configurează headere de securitate, clasele de erori personalizate sanitizează mesajele în producție, logging-ul JSON structurat include tracing prin request ID pentru debugging, schemele Zod validează fiecare input API, și zero tipuri 'any' există în codul de producție. SQL parser-ul folosește regex stateless (fără flag /g) pentru a evita bug-ul lastIndex care cauzează rezultate alternante true/false.
Abstractizarea LLM folosește un discriminated union (ProviderConfig) cu tipurile 'vercel' și 'gemini', permițând schimbarea type-safe a providerilor. OpenAI și Anthropic folosesc interfața unificată a Vercel AI SDK. Google Gemini necesită logică de streaming personalizată dar prezintă aceeași interfață ILLMService consumatorilor.
Suita de teste validează căile critice: testele SQL parser verifică fix-ul regex stateful, blocarea pattern-urilor de injecție și permisiunea funcțiilor legitime CAST/DATE. Testele de validare acoperă schemele Zod și sanitizarea IP/user-agent. Testele de servicii mockuiesc răspunsurile LLM și verifică logica de retry. Testele tracker confirmă batching-ul cozii și comportamentul de fallback network.
05 / Aspecte selectate
Note de implementare selectate
Deciziile și fluxurile cu cea mai mare valoare explicativă.
Interogări în limbaj natural alimentate de AI convertite în SQL prin LLM cu suport multi-provider (OpenAI GPT-4o, Anthropic Claude Sonnet 4, Google Gemini 2.5 Flash)
Analiză privacy-first fără cookie-uri, fără fingerprinting - IP-urile sunt rezolvate la coduri de țară apoi imediat eliminate pentru conformitate GDPR
Tracker vanilla TypeScript ușor <5KB cu batching inteligent (max 50 evenimente), auto-flush la fiecare 5 secunde și fallback sendBeacon pentru descărcarea paginii
Protecție cuprinzătoare împotriva injecției SQL prin apărare pe cinci niveluri: validare regex, potrivire de pattern-uri, allowlist-uri de tabele, rol de bază de date read-only și interogări parametrizate
Pipeline AI auto-corectiv - dacă SQL-ul generat de LLM eșuează, reîncearcă automat o dată cu contextul erorii pentru acuratețe îmbunătățită
Stack de securitate la nivel de producție: headere Helmet.js, ierarhie de erori personalizate cu sanitizare, logging JSON structurat cu tracing prin request ID, validare Zod pe toate input-urile
06 / Metrici susținute
Înregistrarea verificată a proiectului
Aplicații
3
Acoperire Teste
93 teste
Provideri LLM
3
Straturi de Securitate
5
Dimensiune Tracker
<5KB
Entități Bază de Date
2
Tehnologie în context
TypeScript, Node.js, Express.js, React, Vite, PostgreSQL, OpenAI, Anthropic, Google Gemini, TailwindCSS, Recharts, Zod, Helmet.js, Docker, Jest, Vercel AI SDK
O platformă e-commerce completă, de nivel producție, pentru retail de bijuterii - două frontend-uri Next.js (vitrina pentru clienți cu Material-UI + panoul de administrare cu Tailwind CSS), un API Express.js, procesare plăți prin Stripe, emailuri tranzacționale prin Brevo și generare automată de facturi PDF.
Un microserviciu REST autonom pentru calculul taxelor multi-jurisdicționale și al comisioanelor. Gestionează suprapunerea taxelor de vânzare din SUA, TVA din UE, sistemul britanic pe trei niveluri și GST/HST din Canada - totul susținut de decimal.js pentru zero erori de rotunjire în virgulă mobilă.
Controlul confidențialității
Analiză opțională
Acest portofoliu folosește Google Analytics doar după ce îți dai acordul. Înregistrează date agregate despre navigare și performanță, niciodată conținutul formularului de contact sau detalii de cont. Refuzul nu schimbă funcționarea site-ului.