Back to projects

TPMS Expertic

Built role-based modules for a TPE operations platform managing bank requests, tickets, inventory, attachments, Excel workflows, and notifications using Next.js, NestJS, Prisma, PostgreSQL, JWT, CASL, and SSE.

InternalTPE operations management platform / 2025

Problem

Expertic needed one place to coordinate TPE requests, service tickets, stock movement, bank/client records, and dead stock with role-aware access.

Solution

Built a multi-role web platform with a Next.js dashboard, NestJS API, and Prisma/PostgreSQL data model. The backend enforces JWT auth, CASL permissions, validation, notifications, uploads, and role-scoped APIs.

Key Features

Role-based dashboards for bank employees and account managers
Ticket workflows for intervention, consumable, network-check, and deblocking requests
TPE catalog, terminal model, bank, client, consumable, and dead-stock modules
JWT authentication, CASL authorization, route guards, validation, and role-scoped APIs
SSE notifications, email templates, attachments, and Excel template import/export
Search/filter tables, reusable modals, settings pages, and unsaved-change protection

Architecture Map

Mermaid
flowchart LR
  Bank["Bank employee workspace"] --> Front["Next.js role dashboard"]
  Manager["Account manager workspace"] --> Front
  Front -->|"Axios REST + cookie JWT"| Api["NestJS API"]
  Api --> Guards["JWT guard, role guard, CASL policies"]
  Guards --> Modules["Role scoped API modules"]
  Modules --> Tickets["Ticket workflows: intervention, consumable, network check, deblocking"]
  Modules --> Operations["TPE stock, banks, clients, terminal models, dead stock"]
  Api --> Prisma["Prisma service"]
  Prisma --> Db[("PostgreSQL")]
  Api --> Notify["SSE notifications"]
  Api --> Mail["Email templates"]
  Api --> Files["Attachments + Excel import/export"]

TPMS Screenshots

11 views
Account manager request dashboard with ticket filters, Excel import/export, and new request entry point.
Multi-type request modal for intervention, consumable, network choice, and deblocking workflows.
Bank management surface with search, status filtering, KPI cards, and bank creation.
Create bank modal split into bank information, sub-accounts, and terminal model assignment.
Consumables inventory with stock summaries, search, low-stock filtering, and create action.
TPE catalog grouped by manufacturer, with model details and controlled delete actions.
Account manager dead stock inventory with assignment status, filters, and stock table.
Account manager settings for profile updates and password changes.
Bank employee dashboard with scoped request tracking and simplified navigation.
Bank employee dead stock view with assigned inventory summaries and read-only table flow.
Bank employee settings showing profile controls and linked bank information.