Aller au contenu principal
Retour aux projets

Projet

Application de gestion de stock multi-tenant

Application de gestion de stock conçue pour gérer plusieurs établissements de manière isolée (multi-tenant). Le système permet de suivre les articles, catégories, mouvements de stock, demandes internes et commandes fournisseurs avec un système de rôles et permissions avancé.

L'architecture sépare clairement le backend (Express + TypeScript, Prisma + MySQL) et le frontend (Next.js 16 + React 19). Chaque établissement dispose de son propre espace de données isolé, avec des rôles hiérarchiques : superadmin (gestion globale), admin (gestion d'établissement), responsable (validation des demandes) et agent (création de demandes).

Le système inclut un workflow complet de gestion des demandes internes avec validation, un système de commandes fournisseurs avec réception, et une traçabilité complète via les mouvements de stock. La sécurité est assurée par JWT, middleware d'authentification et permissions granulaires stockées en JSON.

Application de gestion de stock multi-tenant

Problématique

Les établissements avaient besoin d'un système centralisé pour gérer leurs stocks tout en conservant une isolation complète des données entre sites. Les solutions existantes ne permettaient pas une gestion multi-tenant avec des rôles et permissions granulaires, ni un workflow de validation des demandes adapté aux besoins métier.

Stack utilisée

Next.js 16React 19TypeScriptExpressPrismaMySQLJWTTailwind CSS v4DockerCI/CD

Modules principaux

L'application se structure autour de plusieurs modules métier, chacun adapté aux besoins spécifiques des différents rôles utilisateurs.

Gestion multi-établissements

Le superadmin peut créer et gérer plusieurs établissements, chacun avec son propre espace de données isolé. Chaque établissement possède ses propres articles, catégories, utilisateurs, fournisseurs et mouvements de stock.

PrismaMulti-tenantMiddleware tenant

Gestion des stocks

Les admins et responsables peuvent créer des articles, les organiser en catégories, définir des seuils d'alerte et suivre les quantités en temps réel. Les mouvements de stock (entrées/sorties) sont tracés avec utilisateur, date et commentaire.

PrismaMySQLStock movements

Workflow de demandes internes

Les agents créent des demandes de produits avec référence unique. Les responsables peuvent valider, modifier ou refuser ces demandes. La validation déclenche automatiquement des mouvements de sortie de stock pour les articles préparés.

WorkflowValidationAutomatic movements

Commandes fournisseurs

Les admins et responsables créent des commandes auprès des fournisseurs avec statut (en cours, reçue). La réception d'une commande génère automatiquement des mouvements d'entrée de stock pour tous les articles commandés.

OrdersSuppliersAutomatic reception

Gestion des utilisateurs et permissions

Système de permissions granulaires stocké en JSON permettant de définir précisément les droits de chaque utilisateur (lecture, écriture, suppression par module). Les admins peuvent activer/désactiver des comptes et assigner des rôles.

JSON PermissionsRolesEnable/disable

Solutions & résultats

Conception d'une architecture multi-tenant avec isolation des données par établissement via Prisma. Implémentation d'un système de rôles hiérarchique (superadmin, admin, responsable, agent) avec permissions JSON granulaires. Création d'un workflow de demandes internes avec validation par les responsables, gestion des commandes fournisseurs avec réception et mise à jour automatique des stocks via les mouvements. L'interface Next.js offre une expérience utilisateur moderne avec navigation par sections selon le rôle, tandis que le backend Express expose une API REST sécurisée avec middleware d'authentification et de tenant.

Démo

Galerie média

Parcourez les captures et walkthroughs en mode plein écran.