Basi di AI | Intelligenza Artificiale per Tutti

Software custom e soluzioni sviluppate da Giuseppe D’Agata

Portfolio di Giuseppe D’Agata: Flow Manager per workflow, progetti e SAL; Doc Composer per l’automazione documentale; software e sistemi AI.

Giuseppe D’Agata — Software custom e soluzioni sviluppate da Giuseppe D’Agata

Flow Manager: gestione e monitoraggio dei processi operativi, dei SAL e dei progetti

Logo FlowManager: Progetti, Workflow e SAL
FlowManager — Progetti, workflow e SAL in un unico quadro operativo.

Flow Manager è una web application custom progettata e sviluppata da Giuseppe D’Agata per governare l’esecuzione di progetti e contratti articolati. Riunisce in un’unica interfaccia workflow, fasi operative, responsabilità, scadenze, attività, documenti, righe contrattuali, Stati di Avanzamento Lavori e costi dei fornitori.

La sua finalità principale non è produrre un’offerta economica: Flow Manager entra nel merito del coordinamento e del monitoraggio operativo, aiutando reparti differenti a seguire ciò che deve essere fatto, da chi, entro quale data e con quale stato di avanzamento.

Schema di Flow Manager: dal progetto al workflow operativo e ai SAL
Flow Manager collega il perimetro del progetto al workflow operativo e alla gestione dei SAL.

Flow Manager e Doc Composer

Flow Manager e Doc Composer sono applicazioni distinte e complementari che coesistono. Flow Manager governa processi, progetti, scadenze, SAL e dati contrattuali. Doc Composer è specializzato nella composizione controllata di documenti Word a partire da template, segnalibri e dati strutturati. Possono essere utilizzati nello stesso contesto operativo, ma mantengono finalità, architettura e ciclo di vita indipendenti.

Workflow configurabili

Il cuore dell’applicazione è un motore di workflow. Ogni progetto conserva una copia del proprio schema, così le modifiche future al modello generale non alterano automaticamente i progetti già avviati. Le fasi possono essere sequenziali, parallele, obbligatorie, speciali oppure appartenere a gruppi opzionali.

Il sorgente include un workflow completo dedicato all’Accordo Quadro SGM edizione 2, che segue il percorso dalla ricezione della richiesta fino all’avvio dei servizi, alla reportistica e ai SAL. Comprende inoltre workflow IT più generici e strumenti per progettare o importare nuovi schemi di processo.

Gestione dei progetti

Ogni progetto è identificato da codice, nome, cliente, data di avvio, durata, workflow, responsabile e componenti del team. La vista principale permette di cercare e filtrare i progetti per stato, selezionare uno scope multiprogetto e confrontare avanzamento delle fasi, andamento dei SAL, valore contrattuale e criticità.

Per ciascuna fase vengono gestiti:

  • reparto responsabile e utenti assegnati;
  • data pianificata e data reale;
  • stato della lavorazione, compresi blocchi e completamento;
  • scostamento e giorni di ritardo;
  • task e checklist operative;
  • note cronologiche;
  • documenti richiesti o collegati alla fase.

Un processo trasversale ai reparti

Il workflow SGM presente nel codice coinvolge Commerciali, Prevendita e Progettazione, Segreteria Commerciale, Project Manager, Service Manager, Ufficio Distacchi, Acquisti e Subappalti e Amministrazione. Le attività comprendono ricezione e verifica delle richieste, redazione del piano, gestione dell’ordine, sopralluoghi, subappalti, distacchi, kickoff, onboarding degli asset, avvio dei servizi, reportistica periodica e verifiche SAL.

Righe contrattuali e piano dei servizi

Il progetto può contenere righe contrattuali di tipo canone mensile, canone annuale o pacchetto. Per ogni voce vengono gestiti codice, descrizione, quantità, prezzo unitario, data di attivazione, durata, valore complessivo e residuo.

Le righe possono essere inserite manualmente, selezionate dal listino SGM oppure importate da Excel. L’importazione può essere incrementale, aggiornando e aggiungendo le voci, oppure sostitutiva. Per i workflow non SGM è disponibile anche una procedura generica con mappatura delle colonne.

SAL e fatturazione

Flow Manager costruisce il piano dei SAL a partire dalla data effettiva di avvio dei servizi e dalla durata del progetto. I periodi sono trimestrali e il motore distribuisce le competenze delle righe contrattuali in base alla loro tipologia, data di attivazione e durata.

Per i canoni calcola i mesi imputabili nel singolo SAL; per i pacchetti registra le quantità consuntivate. Il sistema impedisce che vengano attribuiti mesi o quantità oltre la disponibilità contrattuale e mantiene allineate le righe dei SAL quando cambia il perimetro del progetto.

Ogni SAL può conservare importi, riferimenti, numero e data della fattura, protocollo, data di emissione, pagamento, documenti e note. Gli stati distinguono SAL futuri, da emettere, scaduti, emessi, ricevuti dalla Pubblica Amministrazione, in verifica e liquidati. Le proroghe estendono il piano senza modificare i SAL già emessi o liquidati.

Fornitori e costi passivi

Un modulo specifico gestisce i fornitori collegati al progetto e mette in relazione i costi passivi con le righe contrattuali attive. Il sistema supporta sia voci “a specchio”, direttamente associate a una riga, sia costi a corpo riferiti a gruppi di attività, distacchi o subforniture.

I costi possono essere ripartiti nei SAL in proporzione all’avanzamento, verificati e confermati. L’applicazione confronta componente attiva e passiva, calcola il margine delle righe e rende disponibile un’esportazione Excel dedicata ai fornitori.

Controllo operativo

Dashboard, indicatori, Gantt, vista ritardi e barra di avanzamento mostrano lo stato dei progetti da prospettive differenti. Il sistema evidenzia fasi bloccate, scadenze superate, SAL prossimi o scaduti, attività da completare e documentazione mancante.

Le notifiche possono essere preparate per il responsabile, i membri del progetto o un insieme di destinatari. Nella versione analizzata l’invio viene demandato al client di posta attraverso collegamenti mailto:, mantenendo sotto controllo dell’utente il messaggio finale.

Utenti, reparti e permessi

L’applicazione prevede utenti amministratori e utenti operativi, assegnazione a reparti e progetti e una matrice di permessi per area. I diritti di visualizzazione e modifica possono differire per Progetti, SAL, Gantt, Ritardi, Attività, Documenti, KPI e Notifiche. Le viste vengono filtrate in base alle commesse accessibili all’utente.

Architettura della versione analizzata

La versione esaminata è una single-page application sviluppata in HTML, CSS e JavaScript, suddivisa in moduli funzionali. Utilizza SheetJS per importare ed esportare file Excel e Chart.js per le rappresentazioni analitiche.

I moduli separano configurazione, motore dei workflow, calcolo dei SAL, persistenza, validazioni, alert e componenti di interfaccia. I dati vengono conservati nel browser attraverso localStorage; backup e ripristino sono gestiti tramite file JSON, con modalità sostitutiva o incrementale. Questa descrizione riguarda il sorgente analizzato e non attribuisce al software integrazioni server o CRM non presenti nel pacchetto.

Perché è un progetto ambizioso

Flow Manager traduce regole operative, responsabilità interfunzionali e vincoli contrattuali in un modello software unico. La complessità non deriva soltanto dall’interfaccia, ma dalla sincronizzazione tra workflow, date, documenti, righe, SAL, quantità residue, costi passivi, ruoli e autorizzazioni.

Il progetto testimonia la capacità di Giuseppe D’Agata di trasformare conoscenza organizzativa e contrattuale in logica applicativa, operando come analista di processo, progettista funzionale e sviluppatore.

Per tutelare la riservatezza non vengono pubblicati dati aziendali, credenziali, archivi operativi, documenti, nomi dei clienti o codice sorgente.

Doc Composer: automazione della composizione documentale

Doc Composer è un software custom progettato e sviluppato da Giuseppe D’Agata e oggi utilizzato in modo significativo all’interno della sua azienda. Nasce dall’esigenza di rendere più rapida, ordinata e controllabile la preparazione di documenti professionali complessi, riducendo le attività ripetitive senza eliminare la revisione umana.

Il problema affrontato

La redazione di piani, relazioni e documenti strutturati richiede spesso di combinare template Word, testi variabili, sezioni ricorrenti e tabelle provenienti da file Excel. Quando il lavoro viene eseguito manualmente aumentano il tempo necessario, il rischio di omissioni, le differenze di formattazione e la difficoltà di mantenere coerenti versioni successive dello stesso documento.

La soluzione

Doc Composer utilizza template DOCX predisposti con segnalibri e associa a ogni punto del documento contenuti manuali oppure dati provenienti da fogli Excel. L’utente può preparare e controllare i contenuti attraverso un’interfaccia guidata, visualizzare un’anteprima e generare il documento finale mantenendo struttura e formattazione del modello originale.

Funzioni principali

  • lettura e gestione dei segnalibri presenti nei template Word;
  • ordinamento naturale delle sezioni e pulizia preventiva dei riferimenti;
  • inserimento di testi manuali nei punti previsti dal documento;
  • associazione automatica tra dati Excel, tabelle e sezioni del template;
  • generazione di tabelle DOCX a partire da dati strutturati;
  • rimozione delle tabelle vuote o non applicabili;
  • anteprima HTML del documento prima della produzione finale;
  • messaggi di stato e controlli per rendere più chiara la lavorazione;
  • gestione delle versioni e aggiornamento controllato dell’applicazione;
  • modulo RAG opzionale per recuperare contenuti da una base documentale.

Architettura e tecnologie

Il motore applicativo è sviluppato in Python. L’applicazione utilizza Flask per i servizi web, python-docx per la composizione dei documenti Word, openpyxl per l’elaborazione dei file Excel e componenti dedicati alla produzione e alla sanitizzazione dell’anteprima HTML. Il modulo documentale intelligente può essere affiancato da un’interfaccia Streamlit per le funzioni RAG.

Approccio progettuale

Doc Composer non tenta di generare autonomamente un documento senza controllo. Separa invece il template, i dati, i contenuti e la logica di composizione. Questa architettura consente di riutilizzare modelli differenti, verificare ciò che verrà inserito e mantenere la responsabilità della versione finale in capo all’utente.

Valore operativo

L’utilizzo interno del software dimostra come uno strumento custom possa diventare parte del processo quotidiano quando risponde a un’esigenza concreta. Doc Composer standardizza la composizione, riduce le operazioni manuali e rende più semplice aggiornare documenti articolati, conservando al tempo stesso template e modalità di lavoro già conosciuti dagli utenti.

Per ragioni di riservatezza non vengono pubblicati documenti aziendali, dati degli utenti, template interni o informazioni relative ai clienti.

Lo sviluppo software custom è una componente sostanziale del percorso professionale di Giuseppe D’Agata. Nel corso degli anni ha progettato applicazioni, automazioni e strumenti di integrazione per trasformare attività manuali, dati frammentati e procedure operative in processi più controllabili e ripetibili.

Questa pagina presenta le principali aree di esperienza senza esporre codice, dati, clienti o architetture soggetti a riservatezza. Non è un catalogo commerciale: è un portfolio tecnico ragionato che descrive problemi affrontati, approccio progettuale e tecnologie utilizzate.

Un software nasce da un processo reale

L’approccio parte dall’analisi del lavoro quotidiano: quali informazioni entrano nel processo, chi le modifica, quali controlli sono necessari, quali errori si ripetono e quale risultato deve essere prodotto. Solo dopo vengono selezionati linguaggio, database, interfaccia e modalità di distribuzione.

Quando un prodotto standard non copre completamente il requisito, una soluzione custom può collegare strumenti esistenti, applicare regole specifiche e ridurre le operazioni manuali senza sostituire inutilmente ciò che già funziona.

Aree di sviluppo software

Applicazioni gestionali e strumenti operativi

Sviluppo di applicazioni dedicate alla raccolta, normalizzazione, validazione ed elaborazione di dati operativi. Le soluzioni possono comprendere interfacce guidate, regole di controllo, generazione di output, tracciamento delle lavorazioni e produzione di report.

Automazione documentale

Strumenti per comporre documenti a partire da template, dati strutturati e contenuti riutilizzabili. L’obiettivo è ridurre copia e incolla, incoerenze e omissioni, mantenendo il controllo umano sulla versione finale.

Elaborazione avanzata con Excel e VBA

Soluzioni per importare dati da sorgenti differenti, applicare mapping, formule e controlli, aggiornare tabelle tramite logiche di upsert e produrre file conformi a tracciati prestabiliti. Excel viene utilizzato come interfaccia operativa quando è già parte del processo aziendale, integrandolo con macro e procedure di validazione.

Applicazioni Python, Flask e Streamlit

Python viene utilizzato per motori di elaborazione, trasformazione dei dati, automazione e prototipazione. Flask consente di esporre funzionalità tramite applicazioni web e API; Streamlit permette di realizzare rapidamente interfacce accessibili agli utenti per procedure tecniche e data-driven.

Servizi Node.js e integrazione API

Node.js viene impiegato per servizi web, processi asincroni e integrazioni tra piattaforme. Le API permettono di collegare applicazioni, CMS, sistemi di automazione e servizi di intelligenza artificiale mantenendo separati i diversi componenti.

Database e qualità dei dati

Progettazione e utilizzo di database relazionali per conservare dati, configurazioni, stati e cronologia delle operazioni. Una parte importante dello sviluppo riguarda la qualità: controlli, deduplicazione, normalizzazione, gestione degli errori e tracciabilità.

Workflow e automazione

Realizzazione di workflow con n8n e componenti custom per orchestrare acquisizione delle fonti, trasformazione dei dati, approvazione umana, notifiche e pubblicazione. L’automazione viene trattata come un processo governato, non come una sequenza di azioni priva di controlli.

Software con intelligenza artificiale

Integrazione di modelli linguistici, sistemi RAG, AI locale e servizi cloud all’interno di applicazioni e flussi. L’attenzione è rivolta alla contestualizzazione delle risposte, alla protezione dei dati, al controllo degli output e alla possibilità di scegliere dove eseguire l’elaborazione.

Tecnologie utilizzate

  • Linguaggi e runtime: Python, JavaScript, Node.js e VBA;
  • Interfacce e applicazioni: Flask, Streamlit, applicazioni web e strumenti Microsoft Excel;
  • Dati: database relazionali, PostgreSQL, SQLite, importazione ed elaborazione XLSX e CSV;
  • Automazione: n8n, API REST, webhook e processi schedulati;
  • AI: modelli cloud e locali, Ollama, RAG, database vettoriali, pgvector e sistemi multi-agente;
  • Distribuzione: Linux, Docker e servizi applicativi integrati;
  • Integrazione fisica: Home Assistant, protocolli locali, monitoraggio energetico, Arduino e dispositivi connessi.

Tipologie di soluzioni sviluppate

  • strumenti per preventivazione, configurazione e controllo dei dati;
  • generatori e compositori documentali basati su template;
  • applicazioni per importare, verificare e trasformare grandi quantità di record;
  • dashboard e interfacce operative per utenti non sviluppatori;
  • workflow di ricerca, approvazione, notifica e pubblicazione;
  • chatbot contestualizzati attraverso documenti e knowledge base;
  • integrazioni tra applicazioni aziendali, API e database;
  • prototipi per AI locale, automazione domestica e monitoraggio hardware.

Metodo di progettazione

  1. Analisi: ricostruzione del processo, degli attori e dei dati.
  2. Modello: definizione delle regole, delle eccezioni e degli output.
  3. Prototipo: realizzazione di una versione verificabile con gli utenti.
  4. Controlli: validazione, gestione degli errori e tracciabilità.
  5. Integrazione: collegamento con sistemi e procedure esistenti.
  6. Evoluzione: aggiornamento del software sulla base dell’utilizzo reale.

Riservatezza e attribuzione

Le attività svolte in contesti aziendali vengono presentate esclusivamente per categorie tecniche e metodologiche. I nomi dei clienti, il codice sorgente, i dati e i risultati soggetti a riservatezza non vengono pubblicati. I progetti personali e quelli collegati a Basi di AI sono invece indicati esplicitamente come tali.

Collegamenti