The problem
In a municipality, each request, complaint or claim follows its own route between departments, and that route often lives in the head of whoever staffs the front desk. When a resident asks about their case, it is hard to know which department has it and who is handling it. TRAZA draws the route once and makes every case file follow it.
What it does
Visual workflow editor
Workflows are drawn in BPMN with one lane per department and can be downloaded as a .bpmn file or a PNG image.
Each case file with its own diagram
When it is created, a case file copies the current workflow: if the template changes later, it keeps the route it actually followed. The current step is highlighted in the colour of its status.
Moves require a reason
Changing step or status requires a reason and confirmation. Closing a file also requires a reason, and only an administrator can reopen it.
History and notes
Every move is recorded with user, date, step, status and reason.
Role-based inbox
A paginated, searchable list. Each user sees what concerns them and can export it to Excel.
Roles
Administrator, department lead, collaborator and resident. A department lead moves a case file when their department owns the step; residents only see their own.
Catalogues and users
Departments, procedure types and subtypes, users with their department and role, and a built-in user manual.

How it is built
- Angular 18 front end with PrimeNG, and bpmn-js to draw and display the diagrams.
- Java 17 back end with Spring Boot 3.5, Spring Security with JWT and Spring Data MongoDB.
- Each role’s scope is applied in the database query, not by filtering results afterwards.
- Concurrency control: if someone else saved the case file first, a change does not overwrite it.
- A limit on sign-in attempts, private storage for each case file’s image and Excel export with Apache POI.
- Docker containers for the API, the web app and the database.
Status and authorship
TRAZA is the team’s own project, with no client. It started in late 2024 and its demo has been online since October 2026, with fictitious departments and users. It does not execute the diagram’s conditions by itself: control comes from permissions, the mandatory reason and the history.
