Salta al contenuto
Portfolio

Fatturazione Italia

SaaS di fatturazione elettronica per forfettari, con integrazione SDI Agenzia Entrate e Sistema Tessera Sanitaria.

Visita il sito ↗

Ruolo

Progettazione e sviluppo da zero. Scelte di stack guidate dalla semplicità operativa più che dal pattern di moda.

Stack

PHP 8.1+ SQLite (WAL) Bootstrap 5 SDI / OpenAPI.it Sistema TS Stripe PHPMailer PWA

Status

Live

Anteprima del progetto Fatturazione Italia

Cosa ho fatto

  • 01 Per il database ho scelto SQLite (in modalità WAL) invece di MySQL o PostgreSQL. SQLite è un file singolo: tutti i dati ci stanno dentro. Spostare il SaaS da un hosting a un altro vuol dire copiare quel file, senza dover installare e configurare un database server. La modalità WAL serve a permettere scritture in parallelo senza bloccare le letture, che è il vincolo principale di SQLite in produzione.
  • 02 L'integrazione con il Sistema di Interscambio (SDI) dell'Agenzia delle Entrate è la parte più rischiosa: usa protocolli SOAP vecchi, certificati di firma e formati XML molto rigidi. Invece di scrivere io questo pezzo ho usato OpenAPI.it come intermediario, che espone un'API REST moderna e si occupa di aggiornare il proprio client quando l'Agenzia cambia i requisiti. Sistema TS aggiunge il flusso parallelo per medici e altri professionisti sanitari.
  • 03 Per far comprare i pacchetti fatture uso Stripe Checkout, cioè la pagina di pagamento ospitata da Stripe. I dati della carta non passano mai dal mio server (zero adempimenti PCI da gestire), le ricevute partono in automatico, la pagina è già tradotta in italiano. Stesso ragionamento per le email di notifica (PHPMailer) e per la versione installabile su mobile (PWA): preferisco strumenti maturi che fanno bene una cosa sola, invece di scriverli io e doverli mantenere.
  • 04 Sul frontend niente React o Vue: Bootstrap 5 e JavaScript vanilla. Le pagine vengono generate dal server già pronte; l'utente clicca, il server risponde con la nuova pagina. Non c'è uno strato di JavaScript che deve ricostruire l'interfaccia nel browser, quindi non c'è bisogno di compilare niente prima di pubblicare. In pratica: deploy = carico i file PHP sul server, fine.

Prossimo progetto

CAF Centro Fiscale Udine (Portale pratiche)

Portale clienti per la gestione di pratiche fiscali (ISEE, 730, patronato).

Seleziona lingua

IT EN