Retour aux projets

TPMS Expertic

Modules par rôle pour une plateforme d'exploitation des TPE qui gère les demandes des banques, les tickets, l'inventaire, les pièces jointes, les flux Excel et les notifications, avec Next.js, NestJS, Prisma, PostgreSQL, JWT, CASL et SSE.

InterneAucun dépôt publicPlateforme de gestion des opérations TPE / 2025

Problème

Expertic avait besoin d'un seul endroit pour coordonner les demandes de TPE, les tickets de service, les mouvements de stock, les fiches banques et clients et le stock mort, avec un accès adapté à chaque rôle.

Solution

Construction d'une plateforme web multi-rôles avec un tableau de bord Next.js, une API NestJS et un modèle de données Prisma/PostgreSQL. Le backend applique l'authentification JWT, les permissions CASL, la validation, les notifications, les téléversements et des API cloisonnées par rôle.

Fonctionnalités clés

Tableaux de bord par rôle pour les employés de banque et les chargés de compte
Workflows de tickets pour les demandes d'intervention, de consommables, de vérification réseau et de déblocage
Modules de catalogue de TPE, de modèles de terminaux, de banques, de clients, de consommables et de stock mort
Authentification JWT, autorisation CASL, gardes de routes, validation et API cloisonnées par rôle
Notifications SSE, modèles d'e-mails, pièces jointes et import/export de modèles Excel
Tableaux avec recherche et filtres, fenêtres modales réutilisables, pages de paramètres et protection contre la perte de modifications non enregistrées

Rôle

Développeur full-stack sur TPMS, un outil interne d'Expertic que j'ai construit avec mon collègue Sohaib Benabdallah pendant mon poste là-bas. C'est la propriété de l'entreprise Expertic. J'ai travaillé sur les tableaux de bord par rôle, l'intégration de l'API, les workflows de tickets, les modules d'inventaire et les preuves anonymisées destinées au portfolio.

Stack

Next.jsTypeScriptReactTailwind CSSshadcn/uiAxiosNestJSPrismaPostgreSQLJWTCASLSSEExcel import/export

Flux de requêtes par rôle

une API, deux espaces de travail
Employé de banquetickets de sa banqueChargé de compteportefeuille de banquesNext.jstableau de bordJWTCHAÎNE DE GARDESgarde JWTgarde de rôlepolitique CASLfiltréworkflows de tickets4 types, un seul pipelineinventaire TPEstock · stock mortExcel + SSEimport/export · alertesPostgreSQLPrismaRÔLEdéveloppeur full-stack avec un collègue · Expertic, mai–nov. 2025PÉRIMÈTREdemandes bancaires · tickets · parc de TPE
Les employés de banque et les gestionnaires de comptes voient des systèmes différents, mais ce sont les mêmes endpoints. La chaîne de gardes est la décision produit— un JWT prouve qui vous êtes, un contrôle de rôle prouve quel type d'utilisateur vous êtes, et les politiques CASL décident ligne par ligne ce que vous pouvez lire ou modifier. Ajouter un quatrième type de ticket n'a demandé aucun nouveau code de permissions.

Captures d'écran : TPMS

11 vues
Tableau de bord des demandes du chargé de compte avec filtres de tickets, import/export Excel et point d'entrée pour une nouvelle demande.
Fenêtre de demande multi-types pour les workflows d'intervention, de consommables, de choix du réseau et de déblocage.
Écran de gestion des banques avec recherche, filtre de statut, cartes d'indicateurs et création de banque.
Fenêtre de création de banque découpée en informations de la banque, sous-comptes et affectation de modèles de terminaux.
Inventaire des consommables avec synthèses de stock, recherche, filtre de stock faible et action de création.
Catalogue de TPE regroupé par fabricant, avec détails des modèles et actions de suppression contrôlées.
Inventaire du stock mort du chargé de compte avec état d'affectation, filtres et tableau de stock.
Paramètres du chargé de compte pour la mise à jour du profil et le changement de mot de passe.
Tableau de bord de l'employé de banque avec suivi cloisonné des demandes et navigation simplifiée.
Vue du stock mort de l'employé de banque avec synthèses de l'inventaire affecté et tableau en lecture seule.
Paramètres de l'employé de banque : contrôles du profil et informations de la banque associée.