Piattaforma SaaS per gestione intelligente contratti B2B con AI
- Panoramica
- Il Problema
- La Soluzione
- Funzionalità
- Architettura
- Installazione
- Workflow AI
- API Endpoints
- Tecnologie
- Roadmap
- Licenza
Nexus Core è una piattaforma di Contract Intelligence che automatizza l'analisi e la gestione di contratti B2B utilizzando AI avanzata. Riduce il tempo di analisi contrattuale del 95% (da 2 ore a 5 minuti) e aiuta le aziende a recuperare fino al 9.2% del fatturato perso per mismanagement contrattuale.
- ~40 contratti attivi gestiti
- €3M fatturato annuo stimato
- 48% margine operativo
- 95% riduzione tempo analisi
- €0.20 costo per analisi AI
La gestione contratti è una crisi silenziosa che costa miliardi alle aziende:
- 9.2% fatturato perso per mismanagement contratti (fonte)
- PMI italiane: perdita 15-25% fatturato per mancanza dati strutturati (fonte)
- €270 miliardi distrutti annualmente a livello globale
- 71% aziende non trova 10%+ dei propri contratti
- 95% organizzazioni senza visibilità completa obblighi contrattuali
- 90% professionisti trova contratti difficili o impossibili da capire
- 92 minuti per revisione manuale contratto
- 97 giorni per rinnovare un contratto
- 2 ore per trovare clausole specifiche
FOCO risolve questi problemi con 4 pilastri tecnologici:
- AI estrae dati da PDF, DOCX, immagini
- OCR multi-formato (PyPDF2, python-docx, Tesseract)
- Accuratezza >95%
- Da 2 ore a 5 minuti (-95% tempo)
- Risk score 0-100 con confronto storico
- 3 livelli modifiche suggerite (soft/media/strong)
- Identificazione anomalie proattiva
- Alert scadenze e crediti SLA
- Dashboard KPI real-time
- Analisi costi per prodotto (Freader/CutAI)
- Mappa geografica clienti Italia
- Top clients ranking
- Simulatore scenari strategici
- Re-Pricing intelligente per rinnovi
- AI Advisor con consigli data-driven
- Audit trail completo (versioning)
- Overview: KPI fatturato, margine, contratti attivi, crescita
- Analisi Costi: Breakdown fissi/variabili per prodotto
- Top Clients: Ranking 0-100 basato su canone, durata, SLA
- Mappa Geografica: Distribuzione clienti su mappa Italia
- Upload Multiplo: Batch processing PDF/DOCX/immagini
- Estrazione AI: Dati strutturati automatici (cliente, date, canoni, SLA)
- Versioning Completo: Audit trail immutabile con change reason
- Ricerca Avanzata: Full-text search e filtri multipli
- Analisi Pre-Firma: Confronto con storico + risk score + 3 livelli modifiche
- Re-Pricing Intelligente: Suggerimenti aumenti prezzo per rinnovi con probabilità accettazione
- Risk Radar: Rilevamento anomalie (scadenze, crediti SLA, tetti)
- AI Advisor: Consigli strategici su diversificazione, rinnovi, ottimizzazione
- Simulatore Scenari: Impatto economico decisioni (es. "aumenta CutAI al 40%")
Frontend React (41 componenti)
↓ HTTP/JSON REST API
Backend Flask
↓
├── API Layer (Routing & Validation)
├── Service Layer (Business Logic)
├── AI Layer (LLM Integration - Llama-3.3-70B)
└── Data Layer (SQLAlchemy ORM)
↓
Database SQLite (Multi-tenant)
.
├── backend/
│ ├── api/
│ │ ├── contracts_routes.py # Gestione contratti
│ │ └── dashboard_routes.py # Analytics & KPI
│ ├── service/
│ │ ├── ai_service.py # Integrazione LLM
│ │ └── db_service.py # Operazioni database
│ ├── utils/
│ │ └── parser.py # Estrazione testo documenti
│ ├── models.py # Modelli SQLAlchemy
│ ├── app.py # Entry point Flask
│ └── requirements.txt
│
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── common/ # 10 componenti riutilizzabili
│ │ │ ├── layout/ # Sidebar, Topbar
│ │ │ ├── upload/ # Pipeline upload
│ │ │ └── views/ # 10 view principali
│ │ ├── hooks/ # Custom hooks
│ │ ├── utils/ # API client, helpers
│ │ └── App.jsx
│ ├── index.html
│ └── package.json
│
└── Cartelle prodotto 1 e 2/ # Dati test (40 contratti)
Multi-tenant con isolamento dati completo:
tenants- Tenant managementfreader_contracts+freader_contract_versions- Contratti Freader con versioningcutai_contracts+cutai_contract_versions- Contratti CutAI con versioning
Ogni modifica crea una nuova versione (audit trail immutabile).
- Python 3.9+
- Node.js 18+
- pip e npm
git clone https://github.com/your-org/foco.git
cd fococd backend
# Crea virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Installa dipendenze
pip install -r requirements.txt
# Configura variabili ambiente
cp .env.example .env
# Modifica .env con la tua REGOLO_API_KEY
# Avvia server
python app.pyBackend disponibile su http://localhost:5001
cd frontend
# Installa dipendenze
npm install
# Avvia dev server
npm run devFrontend disponibile su http://localhost:3000
- Apri browser su
http://localhost:3000 - Dovresti vedere la dashboard FOCO
- Prova upload contratto di test da
Cartelle prodotto 1 e 2/
┌─────────────────────────────────────────────────────────┐
│ FASE 1: UPLOAD │
└─────────────────────────────────────────────────────────┘
Utente carica file (PDF, DOCX, JPG, PNG)
↓
Backend salva in /uploads/
↓
┌─────────────────────────────────────────────────────────┐
│ FASE 2: ESTRAZIONE TESTO │
└─────────────────────────────────────────────────────────┘
Parser identifica formato:
• PDF → PyPDF2 estrae testo
• DOCX → python-docx estrae paragrafi
• Immagini → Tesseract OCR
↓
Testo estratto (raw)
↓
┌─────────────────────────────────────────────────────────┐
│ FASE 3: ANALISI AI │
└─────────────────────────────────────────────────────────┘
LLM (Llama-3.3-70B) analizza testo e estrae:
• Prodotto (Freader/CutAI)
• Anagrafica cliente (ragione sociale, sede)
• Date (firma, durata, preavviso)
• Canoni e pricing (fisso, variabile, fasce)
• SLA (crediti uptime, ticketing, tetti)
↓
JSON strutturato
↓
┌─────────────────────────────────────────────────────────┐
│ FASE 4: VALIDAZIONE & SALVATAGGIO │
└─────────────────────────────────────────────────────────┘
Utente verifica dati estratti
↓
[Opzionale] Analisi Pre-Firma
↓
Salvataggio in database (contratto + versione 1)
Contratto nuovo da firmare
↓
Query database: contratti storici simili (stesso prodotto)
↓
Calcolo medie storiche:
• Tetto crediti medio
• Preavviso medio
• Durata media
• Canone medio
↓
LLM confronta nuovo vs storico
↓
Genera 3 livelli modifiche:
• SOFT: minime, basso rischio cliente
• MEDIA: equilibrate, rischio moderato
• STRONG: aggressive, massima protezione
↓
Per ogni modifica:
• Clausola specifica
• Valore attuale vs suggerito
• Impatto economico
• Motivazione data-driven
↓
Risk Score 0-100 + Report completo
Identifica contratti in scadenza (≤20 giorni)
↓
Calcola indice confidenza cliente (0-100):
• Tetto crediti (25%)
• Credito uptime (20%)
• Preavviso (20%)
• Durata contratto (20%)
• Credito ticketing (15%)
↓
Genera 3 proposte pricing:
• Conservativa: +2-5% (prob. 90%+)
• Raccomandata: +5-12% (prob. 70-85%)
• Aggressiva: +10-20% (prob. 50-65%)
↓
Fornisce motivazioni:
• Confronto media portfolio
• Costi infrastruttura
• Profilo cliente
• Clausole restrittive
↓
Output: Revenue a rischio + Delta potenziale + Strategia raccomandata
| Endpoint | Method | Descrizione |
|---|---|---|
/upload-and-analyze |
POST | Upload singolo + analisi AI |
/upload-and-analyze-batch |
POST | Upload multiplo batch |
/save |
POST | Salva contratto validato |
/list |
GET | Lista tutti i contratti |
/<contract_id> |
GET | Dettaglio contratto + versioni |
/<contract_id>/versions |
POST | Crea nuova versione |
/pre-sign-analysis |
POST | Analisi pre-firma con AI |
/map |
GET | GeoJSON per mappa |
/download/<filename> |
GET | Download file |
| Endpoint | Method | Descrizione |
|---|---|---|
/kpi |
GET | KPI dashboard (fatturato, margine, contratti) |
/expiring |
GET | Contratti in scadenza ≤90 giorni |
/anomalies |
GET | Rilevamento anomalie e rischi |
/costs/<prodotto> |
GET | Analisi costi per prodotto |
/top-clients |
GET | Classifica clienti (rating 0-100) |
/ai-advice |
GET | Consigli strategici AI |
/simulate |
POST | Simulatore scenari business |
/repricing |
GET | Proposte re-pricing contratti in scadenza |
/map-data |
GET | Dati mappa geografica |
- Python 3.9+ - Linguaggio principale
- Flask 3.0 - Web framework
- SQLAlchemy 2.0 - ORM
- SQLite - Database (multi-tenant)
- OpenAI API - LLM integration (Llama-3.3-70B via Regolo)
- PyPDF2 - Parsing PDF
- python-docx - Parsing DOCX
- Tesseract OCR - Estrazione testo immagini
- ReportLab - Generazione PDF
- React 18.3 - UI framework
- Vite 5.4 - Build tool & dev server
- Leaflet.js - Mappa geografica interattiva
- CSS puro - Design system custom (no framework)
- Remix Icon - Icon library
- LLM: Llama-3.3-70B-Instruct (via Regolo API)
- NLP: Natural Language Processing per estrazione clausole
- Temperature: 0.0 (estrazione), 0.2 (analisi pre-firma)
- Costo: ~€0.20 per contratto
- KPI Cards: Fatturato, Margine, Contratti Attivi, Crescita
- Ultime Attività: Lista ultimi 5 contratti caricati
- Prossime Scadenze: Contratti in scadenza ≤90 giorni
- Endpoint:
/api/kpi,/api/expiring
- Upload singolo/batch: Drag & drop o file picker
- Formati supportati: PDF, DOCX, JPG, PNG
- Pipeline 3 step: Upload → Analisi AI → Conferma
- Estrazione automatica: Cliente, date, canoni, SLA, crediti
- Endpoint:
/api/v1/contracts/upload-and-analyze
- Confronto storico: Query contratti simili (stesso prodotto)
- Calcolo medie: Tetto crediti, preavviso, durata, canone
- Risk Score: 0-100 basato su deviazioni da storico
- 3 Livelli Modifiche:
- Soft: Minime, basso rischio cliente
- Media: Equilibrate, rischio moderato
- Strong: Aggressive, massima protezione
- Endpoint:
/api/v1/contracts/pre-sign-analysis
- Target: Contratti in scadenza ≤20 giorni
- Indice Confidenza: 0-100 basato su 5 fattori
- 3 Strategie Pricing:
- Conservativa: +2-5% (prob. 90%+)
- Raccomandata: +5-12% (prob. 70-85%)
- Aggressiva: +10-20% (prob. 50-65%)
- Output: Revenue a rischio, delta potenziale, motivazioni
- Endpoint:
/api/repricing
- Anomalie rilevate:
- Contratti scaduti
- Scadenze imminenti (≤preavviso)
- Tetto crediti >15%
- Crediti SLA >5%
- Gravità: Alta/Media con colori distintivi
- Endpoint:
/api/anomalies
- Scenario 1: Aumenta % CutAI (calcola clienti necessari)
- Scenario 2: Aggiungi N clienti a prodotto
- Output: Current vs Simulated + Delta + Timeline + Azioni
- Endpoint:
/api/simulate
- Analisi portfolio: Diversificazione, rinnovi, SLA, crescita, pricing
- Consigli contestuali: Basati su dati reali dashboard
- Priorità: Alta/Media/Bassa
- Azioni suggerite: Timeline e step operativi
- Endpoint:
/api/ai-advice
- GDPR compliant: Art. 5, 17, 32
- Consenso esplicito: Trattamento dati
- Diritti utenti: Accesso, cancellazione, portabilità
- DPO designato: Data Protection Officer
- Contratti attivi: Conservazione illimitata (necessità operativa)
- Contratti scaduti: 10 anni (obbligo fiscale italiano)
- Log audit: 5 anni (tracciabilità)
- Dati personali: Cancellazione su richiesta (Art. 17)
- Encryption: AES-256 at-rest e in-transit
- Data Residency: Server EU
- Backup: Geograficamente distribuiti
- Pseudonimizzazione: Dati sensibili
- Utente carica PDF contratto
- Backend salva in
/uploads/ - Parser estrae testo (PyPDF2/OCR)
- AI analizza e struttura dati (JSON)
- Frontend mostra dati per verifica
- [Opzionale] Analisi pre-firma con risk score
- Utente conferma dati
- Backend salva in database (contratto + versione 1)
- Contratto disponibile in dashboard
- Sistema identifica contratti in scadenza ≤20 giorni
- Calcola indice confidenza cliente (0-100)
- Genera 3 proposte pricing con probabilità
- Fornisce motivazioni data-driven
- Utente seleziona strategia
- Crea nuova versione contratto con nuovo canone
- Tracking delta revenue potenziale
Badge, Button, Card, DataTable, Dropzone, EmptyState, ItalyMap, LoadingOverlay, SearchBox, StatCard, ToastContainer
Sidebar, Topbar
UploadView, PipelineSteps, UploadStep, AnalysisStep, ConfirmationStep
OverviewView, CostsView, ContractsView, ContractDetailView, RadarView, TopClientsView, AdvisorView, SimulatorView, RepricingView, PreSignAnalysisView
useApi, useToast, api.js, helpers.js
--bg-primary: #0a0e1a /* Sfondo principale */
--bg-card: #1a1f35 /* Card/Box */
--text-primary: #f1f5f9 /* Testo principale */
--text-secondary: #94a3b8 /* Testo secondario */
--accent: #6366f1 /* Accent indigo */
--gradient-primary: linear-gradient(135deg, #6366f1, #8b5cf6)
--color-success: #22c55e /* Verde */
--color-danger: #ef4444 /* Rosso */
--color-warning: #f59e0b /* Arancione */
--color-info: #3b82f6 /* Blu */- Font: Inter (Google Fonts)
- Pesi: 400 (regular), 500 (medium), 600 (semibold), 700 (bold)
- Hero Insight in Overview (problema principale evidenziato)
- Geocoding automatico (Milano → lat/lng)
- Grafico distribuzione ricavi (Freader vs CutAI)
- AI Assistant Chat interattivo
- Alert predittivi con timeline
- Storico temporale KPI (MoM/YoY reali)
- Action Engine (task operativi)
- Export dati (CSV/Excel/PDF)
- Notifiche email automatiche
- Personale: €672k/anno (22%)
- Cloud/GPU: €540k/anno (18%)
- Sales & Marketing: €250k/anno (8%)
- Altri: €155k/anno (5%)
- Totale: €1.56M/anno
- Freader: €2.6M/anno (85.5%)
- CutAI: €360k/anno (14.5%)
- Totale: €3M/anno
- Margine: 48%
Contributi benvenuti! Per favore:
- Fork il repository
- Crea feature branch (
git checkout -b feature/AmazingFeature) - Commit modifiche (
git commit -m 'Add AmazingFeature') - Push al branch (
git push origin feature/AmazingFeature) - Apri Pull Request
Questo progetto è rilasciato sotto licenza MIT. Vedi file LICENSE per dettagli.
- Website: foco.ai
- Email: info@foco.ai
- GitHub: @foco-platform
- LLM: Llama-3.3-70B-Instruct via Regolo API
- Dati mercato: Procurement Tactics, Giornale delle PMI
- Ispirazione: Necessità reale di automatizzare gestione contratti B2B
Made with ❤️ in Italy