Înapoi la portofoliu
Webapp

Photo Archive

Platformă Node.js pentru fotografi care permite livrarea galeriilor foto clienților prin coduri unice de acces, cu upload, procesare Sharp și download ZIP.

Stack principal

Node.js
Express
MySQL
Sharp
JWT Multer archiver bcryptjs helmet express-rate-limit compression

Provocarea

Generarea arhivelor ZIP pentru galerii mari (sute de fotografii, GB de date) poate bloca event loop-ul Node.js și epuiza memoria serverului dacă se face sincron.

Soluția

archiver folosește streams — citește fișierele de pe disk și le scrie direct în response stream fără a le încărca complet în memorie. Multer cu diskStorage scrie fișierele direct pe disk la upload, fără buffer în memorie. Sharp procesează imaginile în pipeline streaming.

Complexitate notabilă

Photo Archive este o aplicație backend Node.js/Express care rezolvă problema livrării fotografiilor de la fotograf la client. Fiecare client primește un cod unic de acces care îi permite să vizualizeze și să descarce galeria sa, fără a necesita cont sau parolă. Fotograful uploadează imaginile prin interfața de administrare, autentificată cu JWT. Sharp procesează imaginile la upload — generează thumbnail-uri pentru previzualizare rapidă și optimizează imaginile originale pentru web. Fișierele sunt stocate pe disk cu organizare pe directoare per client. Clienții accesează galeria prin codul unic și pot descărca imaginile individual sau toate odată ca arhivă ZIP generată on-demand cu librăria archiver. MySQL stochează metadatele galeriilor, clienților și imaginilor. Rate limiting și helmet protejează API-ul împotriva abuzurilor, iar compression reduce dimensiunea răspunsurilor pentru download mai rapid.

Vrei ceva similar?

Începe cu wizard-ul de estimare — răspunzi la câteva întrebări și primești un range de preț + timeline realist.