Sistema di estrazione e gestione fatture basato su intelligenza artificiale. Estrae automaticamente dati strutturati da fatture italiane e altri documenti fiscali utilizzando elaborazione di testo e visione avanzata.
- Estrazione AI a doppio canale: Pipeline parallela di estrazione testo e visione con riconciliazione automatica
- Supporto documenti italiani: Fatture Elettroniche (TD01, TD24), DDT, fatture pro-forma
- Gestione documenti: Archiviazione, visualizzazione e organizzazione dei documenti estratti
- Multi-utente: Autenticazione sicura con JWT e associazioni utente-documento
- API REST: Documentazione Swagger/OpenAPI completa
- Containerizzato: Deploy con Docker Compose pronto per la produzione
- React 19 + TypeScript
- Vite
- TailwindCSS + Radix UI
- Zustand + TanStack Query
- Fastify + TypeScript
- Prisma ORM + PostgreSQL
- LangChain + LangGraph
- OpenAI API
- Docker + Docker Compose
- PostgreSQL 16
- Redis 7
- Nginx
- Docker e Docker Compose
- Chiave API OpenAI
# macOS/Linux
./start.sh
# Windows
start.batI servizi saranno disponibili su:
- Frontend: http://localhost
- API: http://localhost:8372
- Documentazione API: http://localhost:8372/docs
# macOS/Linux
./update.sh
# Windows
update.batcd server
npm install
npm run devcd client
npm install
npm run devIl frontend di sviluppo sarà disponibile su http://localhost:5173
Crea un file .env nella root del progetto (vedi .env.example):
# Chiave di crittografia per dati sensibili (generata automaticamente)
ENCRYPTION_KEY=your_32_byte_hex_key
# Database
DATABASE_URL=postgresql://bilanciami:bilanciami@postgres:5432/bilanciami
# Redis
REDIS_URL=redis://redis:6379La chiave API OpenAI può essere configurata:
- Globalmente tramite variabile d'ambiente
OPENAI_API_KEY - Per utente nelle impostazioni dell'applicazione
bilanciami/
├── client/ # Frontend React
│ ├── src/
│ │ ├── pages/ # Componenti pagina
│ │ ├── components/ # Componenti riutilizzabili
│ │ ├── api/ # Client API
│ │ └── stores/ # Store Zustand
│ └── Dockerfile
│
├── server/ # Backend Fastify
│ ├── src/
│ │ ├── agents/ # Agenti AI LangGraph
│ │ ├── routes/ # Handler API
│ │ ├── services/ # Logica di business
│ │ └── middleware/ # Middleware Fastify
│ ├── prisma/ # Schema database
│ └── Dockerfile
│
├── docker-compose.yml # Orchestrazione container
├── start.sh / start.bat # Script di avvio
└── update.sh / update.bat # Script di aggiornamento
POST /api/v1/auth/register- Registrazione utentePOST /api/v1/auth/login- LoginPOST /api/v1/auth/logout- LogoutPOST /api/v1/auth/refresh- Refresh tokenGET /api/v1/auth/me- Utente corrente
POST /api/v1/invoices/extract- Estrai dati da PDF (multipart)GET /api/v1/invoices/schema- Schema dati fattura
GET /api/v1/documents- Lista documenti utenteGET /api/v1/documents/:id- Dettaglio documentoPOST /api/v1/documents- Crea documentoPUT /api/v1/documents/:id- Aggiorna documentoDELETE /api/v1/documents/:id- Elimina documento
Il sistema estrae automaticamente:
- ID fattura e tipo documento
- Dati fornitore/cliente (P.IVA, ragione sociale, indirizzo)
- Righe articoli (codice, quantità, prezzo unitario, IVA)
- Riepilogo IVA e imposte
- Totali (imponibile, IVA, totale documento)
- Dettagli pagamento e condizioni
npm run dev- Avvio in modalità svilupponpm start- Avvio produzionenpm run build- Compilazione TypeScriptnpm test- Esegui test
npm run dev- Server sviluppo Vitenpm run build- Build produzionenpm run lint- Controllo ESLint
Questo progetto è distribuito sotto licenza MIT. Vedi il file LICENSE per i dettagli.