Magazin de Bijuterii - Platformă E-Commerce Full-Stack
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.
Statut
Proiect selectat
Contextul sistemului
TypeScript, Next.js, React, Express.js
Sursă
Repository public
01 / Comportamentul sistemului
Dovadă interactivă
Un mecanism tehnic specific proiectului, bazat pe arhitectura și contextul de implementare înregistrate.
Dovadă interactivăMagazin de Bijuterii - Platformă E-Commerce Full-Stack
01Checkout session
02Hosted payment
03Verified webhook
04Idempotent order update
05Email / invoice
Server-confirmed lifecycle
Context și intenție
Construit ca proiect de licență, această platformă a ales deliberat ambiția în detrimentul simplității - nu o aplicație CRUD cu o pagină de autentificare, ci un sistem complet de nivel producție unde trebuie să te gândești la securitatea plăților, livrabilitatea emailurilor, optimizarea imaginilor, controlul accesului multi-rol și ce se întâmplă când Stripe trimite același webhook de trei ori.
Integrarea Stripe acoperă întregul ciclu de viață al plății: API-ul creează Checkout Sessions cu articole și metadata, Stripe redirecționează către formularul de plată hostat, iar webhook-urile ghidează starea efectivă a comenzii. Principiul fundamental integrat în implementare: nu te baza niciodată pe redirect-ul din browser - doar semnătura verificată a webhook-ului este semnalul de încredere. Fiecare webhook este verificat folosind stripe.webhooks.constructEvent(), iar handler-ul verifică idempotența pentru a preveni procesarea multiplă a aceluiași eveniment de plată.
03 / Înregistrarea arhitecturii
Arhitectură
O interpretare structurată a arhitecturii înregistrate pentru acest proiect.
Înregistrarea arhitecturiiMagazin de Bijuterii - Platformă E-Commerce Full-Stack
01Vitrina pentru Clienți
02Panoul de Administrare
03API-ul Backend
Citește înregistrarea completă a arhitecturii
Trei aplicații care lucrează împreună:
• Vitrina pentru Clienți (magazin/) - Next.js 14 + Material-UI pentru navigarea produselor, managementul coșului și checkout-ul Stripe
• Panoul de Administrare (admin/) - Next.js 14 + Tailwind CSS pentru managementul produselor, procesarea comenzilor, analize și generarea facturilor
• API-ul Backend (server/) - Express.js cu Sequelize ORM care gestionează logica de business, autentificarea JWT, webhook-urile Stripe, emailurile Brevo și facturile PDFKit
API-ul se conectează la PostgreSQL prin Sequelize cu o schemă relațională bogată, inclusiv categorii ierarhice (parentId auto-referențial). Stripe gestionează fluxul de plăți cu actualizări de stare a comenzilor ghidate de webhook-uri. Brevo expediază emailurile tranzacționale. PDFKit generează facturile la cerere.
Docker Compose orchestrează întregul stack pentru dezvoltare locală. Pipeline-ul CI/CD cu GitHub Actions gestionează testarea și deployment-ul.
Cum este structurat sistemul
Emailurile tranzacționale (confirmări de comandă, notificări de expediere, resetări de parolă) trec prin Brevo cu template-uri HTML cu CSS inline care funcționează corect pe toți clienții de email, inclusiv Outlook.
Când un administrator marchează o comandă ca expediată, sistemul generează o factură PDF la cerere folosind PDFKit - transmisă în streaming direct către browser, fără stocare pe disc. Un renderer personalizat de tabele gestionează lățimile coloanelor, fundalurile alternante ale rândurilor și paginarea automată.
Stiva de securitate include: bcrypt cu 12 runde de salt, JWT cu token-uri de acces de 15 minute și rotația token-urilor de refresh cu utilizare unică, headere de securitate Helmet.js, limitarea ratei pe endpoint-urile de autentificare, interogări parametrizate prin Sequelize, CORS cu whitelist strict de origini și validare Joi pe fiecare endpoint.
05 / Aspecte selectate
Note de implementare selectate
Deciziile și fluxurile cu cea mai mare valoare explicativă.
Integrare Stripe Checkout cu creare de sesiuni pe server, verificarea semnăturii webhook-urilor și gestionare idempotentă a evenimentelor - nu se bazează niciodată pe redirect-urile din browser
Vitrină pentru clienți (Next.js + Material-UI) cu navigare produse, filtrare avansată (preț, material, pietre prețioase), coș persistent și checkout securizat
Panou de administrare (Next.js + Tailwind CSS) cu analize, CRUD produse cu upload de imagini, management comenzi cu tranziții de stare și generare de facturi PDF
Generare de facturi PDF la cerere cu PDFKit - renderer personalizat de tabele care gestionează lățimi de coloane, fundaluri alternante și paginare automată, transmis în streaming direct către browser
Emailuri tranzacționale prin Brevo cu template-uri HTML cu CSS inline pentru confirmări de comandă, notificări de expediere și resetări de parolă
Sistem ierarhic de categorii cu cheie străină parentId - suportă structuri imbricate (Bijuterii > Inele > Inele de Logodnă) afișate ca navigare breadcrumb
O arhitectură de microservicii pregătită pentru producție, cu 5 servicii NestJS (API Gateway, Auth, Users, Products, Payments) care comunică exclusiv prin evenimente RabbitMQ, fiecare cu propria bază de date PostgreSQL, deployate pe Kubernetes cu pipeline complet de CI/CD.
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.
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.