InternalTPE operations management platform / 2025
Problem
Expertic needed one place to coordinate interventions, consumables, network checks, deblocking, installations, replacements, stock movement, and dead stock with traceability and role-aware access.
Solution
Build a multi-role web platform with a Next.js dashboard, NestJS API, and Prisma/PostgreSQL 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 interventions, consumables, network checks, and deblocking orders
TPE catalog, terminal model, bank, client, consumable, and dead stock management
JWT authentication, CASL authorization, route guards, validation, and role-scoped APIs
SSE notifications, email templates, attachments, and Excel template import/export
Searchable/filterable 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"]