Gestionale · Formedil

FormEdil Lecce

Portale per la richiesta di collaborazione Art. 37 all'organismo paritetico FORMEDIL Lecce. Abbiamo sostituito il modulo da stampare e spedire via email con un percorso guidato che genera il PDF, lo lega a un token e ne gestisce il ricarico firmato digitalmente. WordPress headless con API REST, frontend React, pannello di gestione con stati e notifiche automatiche a richiedente e ufficio.

compilazione e output PDF token per firma Visita il sito
  • WordPress (headless)
  • PHP 8
  • React 18 + Vite
  • React Router
  • mPDF + mpdf/qrcode
  • Schema JSON condiviso
  • Token
  • wp_mail
  • CSS Custom Properties
Anteprima desktop di FormEdil Lecce
Anteprima mobile di FormEdil Lecce
Il progetto

Descrizione

FORMEDIL Lecce è l'organismo paritetico del settore delle costruzioni per la provincia di Lecce. Ogni impresa edile o ente di formazione che intende erogare formazione sulla sicurezza ai sensi dell'art. 37 comma 12 del D.Lgs 81/2008 deve inviargli una richiesta di collaborazione almeno quindici giorni prima del corso. La procedura era un modulo su una vecchia pagina ASP: si compilava, si stampava, si firmava digitalmente e si spediva a una casella email dell'ufficio sicurezza, dove le pratiche si accumulavano senza stato né tracciabilità.

Abbiamo realizzato un portale che copre l'intero ciclo. Il richiedente sceglie il proprio profilo — impresa edile oppure ente di formazione — compila un percorso guidato a step e ottiene subito un PDF con un token identificativo stampato sopra. Lo firma con la propria firma digitale e lo ricarica dal portale inserendo il token, insieme agli allegati previsti. Il sistema notifica FORMEDIL, che lavora le pratiche da un pannello dedicato con stati, cronologia e riscontro al richiedente.

L'architettura è headless: WordPress espone solo API REST, l'interfaccia è una single page application React. Un unico schema JSON descrive campi, validazioni e varianti ed è condiviso da frontend e backend, così ogni modifica al modulo si fa in un punto solo.

Il progetto

Sfida e soluzione

La sfida

Il modulo Art. 37 non è un form di contatto: raccoglie l'anagrafica completa dell'impresa, i tipi di corso richiesti fra sette possibili, il programma didattico, gli strumenti di verifica, fino a 25 partecipanti con codice fiscale e fino a 4 docenti, in due varianti normative distinte — impresa edile che forma direttamente i propri lavoratori, oppure ente di formazione che agisce per conto di una o più imprese. Nella versione precedente tutto questo viveva in una pagina ASP legacy e in un allegato Word da stampare: il richiedente sbagliava campi, l'ufficio riceveva PDF via email senza modo di sapere quali pratiche fossero complete, in verifica o già evase. La difficoltà principale era la firma digitale. La normativa richiede il documento firmato, ma la firma avviene fuori dal portale, sul computer del richiedente: il sistema doveva quindi interrompersi a metà del flusso e saper riconoscere, giorni dopo, il documento che torna indietro — senza account, senza password, senza email.

La soluzione

Dalla home l'utente sceglie fra due porte: impresa edile o ente di formazione. Il percorso di compilazione è diviso in step, mostra solo i campi pertinenti alla variante scelta, valida codice fiscale e partita IVA mentre si scrive, salva automaticamente la bozza in locale e consente di incollare l'elenco dei partecipanti da Excel invece di digitarlo riga per riga. Provincia, comune e CAP si compilano a catena da un dataset caricato solo quando serve. Al termine il server produce il PDF definitivo con il token stampato sopra; l'utente lo firma con la propria firma digitale e torna sul portale, digita il token e carica il file firmato più i documenti di identità richiesti. Il backend è un plugin WordPress con namespace REST dedicato, che genera i PDF server-side e conserva allegati e documenti in una cartella protetta fuori dalla libreria media. Un solo schema JSON, condiviso fra frontend e backend, definisce campi, varianti e regole di validazione: le stesse regole valgono sul browser e sul server, e cambiare il modulo significa modificare un file. Gli endpoint pubblici sono protetti da rate limiting per IP, anche contro l'enumerazione dei token, e ogni passaggio finisce in un registro di audit. Oggi l'ufficio sicurezza vede le richieste in un elenco filtrabile per stato, apre il dettaglio, scarica modulo firmato e allegati e invia l'esito al richiedente dal pannello, con anteprima del messaggio. Le email partono da sole a ogni passaggio, e ogni pratica ha una cronologia di chi ha fatto cosa e quando.

Hai un progetto simile?

Raccontacelo: ti diciamo come lo affronteremmo e cosa aspettarti.

Richiedi informazioni