Skip to main content
Back to projects

Project

Multi-tenant Inventory Management Application

Inventory management application designed to manage multiple establishments in isolation (multi-tenant). The system tracks items, categories, stock movements, internal requests and supplier orders with an advanced role and permission system.

The architecture clearly separates backend (Express + TypeScript, Prisma + MySQL) and frontend (Next.js 16 + React 19). Each establishment has its own isolated data space, with hierarchical roles: superadmin (global management), admin (establishment management), manager (request validation) and agent (request creation).

The system includes a complete internal request management workflow with validation, a supplier order system with reception, and complete traceability via stock movements. Security is ensured by JWT, authentication middleware and granular permissions stored in JSON.

Multi-tenant Inventory Management Application

Problem

Establishments needed a centralized system to manage their stocks while maintaining complete data isolation between sites. Existing solutions did not allow multi-tenant management with granular roles and permissions, nor a request validation workflow adapted to business needs.

Tech Stack

Next.js 16React 19TypeScriptExpressPrismaMySQLJWTTailwind CSS v4DockerCI/CD

Main Modules

The application is structured around several business modules, each adapted to the specific needs of different user roles.

Multi-establishment Management

The superadmin can create and manage multiple establishments, each with its own isolated data space. Each establishment has its own items, categories, users, suppliers and stock movements.

PrismaMulti-tenantMiddleware tenant

Stock Management

Admins and managers can create items, organize them in categories, set alert thresholds and track quantities in real-time. Stock movements (entries/exits) are tracked with user, date and comment.

PrismaMySQLStock movements

Internal Request Workflow

Agents create product requests with unique reference. Managers can validate, modify or reject these requests. Validation automatically triggers stock exit movements for prepared items.

WorkflowValidationAutomatic movements

Supplier Orders

Admins and managers create orders to suppliers with status (in progress, received). Receiving an order automatically generates stock entry movements for all ordered items.

OrdersSuppliersAutomatic reception

User and Permission Management

Granular permission system stored in JSON allowing precise definition of each user's rights (read, write, delete per module). Admins can enable/disable accounts and assign roles.

JSON PermissionsRolesEnable/disable

Solutions & Results

Design of a multi-tenant architecture with data isolation per establishment via Prisma. Implementation of a hierarchical role system (superadmin, admin, manager, agent) with granular JSON permissions. Creation of an internal request workflow with manager validation, supplier order management with reception and automatic stock updates via movements. The Next.js interface offers a modern user experience with section navigation by role, while the Express backend exposes a secure REST API with authentication and tenant middleware.

Demo

Media gallery

Browse screenshots and demos in fullscreen mode.

Image

Dashboard Overview

Main interface with sidebar and section navigation by user role.

Image

Product and Stock Management

Item management interface with categories, quantities, alert thresholds and advanced filters.

Image

Request Creation (agent view)

Request creation form with item selection, quantities and favorites system.

Image

Request Validation (manager view)

Request validation interface with request list, item details, and approve, edit, or reject actions.

Image

Supplier Order Management

Supplier order creation and tracking with catalog, item selection and reception process.