Web · Projet personnel
ZS Fragrance
Une boutique de parfums de niche tenue comme une conciergerie

Boutique sans panier, on réserve un parfum et on en discute en direct avec la conciergerie. API NestJS et front Next.js, à essayer des deux côtés.
Le concept
Pour des parfums de niche vendus en petites quantités, un panier classique pose problème : deux clients peuvent payer le même dernier flacon. ZS Fragrance fonctionne comme une conciergerie. On réserve un parfum, ce qui ouvre une conversation avec la boutique ; on y ajoute d’autres parfums, on convient de la remise et du paiement (liquide, PayPal, virement), puis la conciergerie valide la vente.
Ce que fait l’application
- Catalogue avec filtres et recherche par nom, maison ou note olfactive ; fiches avec contenances, pyramide olfactive, accords et avis
- Conversations en temps réel (Socket.io) : une demande peut regrouper plusieurs parfums, la conciergerie peut en proposer d’autres
- Validation de vente « tout ou rien » dans une transaction : si un flacon vient d’être vendu ailleurs, rien n’est décompté. Quand un stock tombe à zéro, l’article est retiré des autres demandes et ajouté à la wishlist des clients concernés
- Wishlist avec alerte de retour en stock, avis clients modérés, comptes avec vérification du téléphone par SMS
- Administration : tableau de bord, produits et contenances, stocks, catégories, accords, utilisateurs, suivi des wishlists, questionnaire du premier message, raccourcis de réponse, files d’e-mails
Architecture
Trois conteneurs derrière le reverse proxy Caddy du serveur : le front Next.js, qui relaie les appels à l’API ; l’API NestJS en lecture seule ; PostgreSQL, dont le schéma est posé par les migrations Prisma et les données de démonstration par un script de chargement au premier démarrage.
En images



