netgescon-master/docs/specifiche/TECHNICAL_SPECS.md
2025-07-20 14:57:25 +00:00

265 lines
8.8 KiB
Markdown

# NetGesCon - Specifiche Tecniche e Componenti
**Ultima modifica**: 8 Luglio 2025
**Versione progetto**: 2.1 - UI Universale
---
## 🏗️ **ARCHITETTURA DEL SISTEMA**
### 📊 **Stack Tecnologico Principale**
- **Framework**: Laravel 10.x (PHP 8.1+)
- **Database**: MySQL 8.0+ / MariaDB 10.4+
- **Frontend**: Blade Templates + Tailwind CSS + Alpine.js
- **Autenticazione**: Laravel Breeze + Spatie Permission
- **Build Assets**: Vite (sostituisce Laravel Mix)
- **Package Manager**: Composer (PHP) + NPM (Node.js)
### 🔧 **Dipendenze PHP Principali**
```json
{
"laravel/framework": "^10.0",
"laravel/breeze": "^1.24",
"spatie/laravel-permission": "^5.11",
"spatie/laravel-backup": "^8.3",
"barryvdh/laravel-dompdf": "^2.0",
"maatwebsite/excel": "^3.1",
"intervention/image": "^2.7"
}
```
### 🎨 **Frontend Dependencies**
```json
{
"tailwindcss": "^3.3.0",
"alpinejs": "^3.13.0",
"@tailwindcss/forms": "^0.5.0",
"@tailwindcss/typography": "^0.5.0",
"autoprefixer": "^10.4.0",
"postcss": "^8.4.0",
"vite": "^4.0.0",
"laravel-vite-plugin": "^0.8.0"
}
```
---
## 🗃️ **STRUTTURA DATABASE**
### 📋 **Tabelle Principali** (Best Practice Laravel)
- **users**: Autenticazione multi-ruolo
- **amministratori**: Gestori condomini (codice 8 caratteri)
- **stabili**: Immobili gestiti
- **unita_immobiliari**: Appartamenti/Box/Cantine
- **soggetti**: Proprietari/Inquilini/Fornitori
- **movimenti_contabili**: Prima nota contabile
- **allegati**: File collegati ai movimenti
- **assemblee**: Verbali e delibere
- **preventivi**: Offerte e preventivi
### 🔑 **Convenzioni Database**
- **Chiavi primarie**: `id` (auto-increment, unsigned big integer)
- **Foreign keys**: `nome_tabella_id` (es: `stabile_id`, `user_id`)
- **Timestamps**: `created_at`, `updated_at` su tutte le tabelle
- **Soft deletes**: `deleted_at` dove necessario
- **Codici unici**: 8 caratteri alfanumerici per entità principali
---
## 🎨 **UI/UX DESIGN SYSTEM**
### 🎯 **Layout Universale** (`app-universal.blade.php`)
- **Responsive**: Mobile-first design (Tailwind breakpoints)
- **Sidebar**: Permission-based con menu dinamico
- **Mobile**: Hamburger menu + overlay sidebar
- **Dark mode**: Toggle persistente con localStorage
- **Colori tema**:
- Primario: Blue (500-700)
- Secondario: Green (300-500) per admin
- Errore: Red (500-600)
- Successo: Green (500-600)
### 📱 **Breakpoints Responsive**
```css
/* Mobile first approach */
sm: 640px /* Tablet piccolo */
md: 768px /* Tablet */
lg: 1024px /* Desktop */
xl: 1280px /* Desktop large */
2xl: 1536px /* Desktop XL */
```
### 🔐 **Sistema Permessi**
- **Super-Admin**: Accesso completo sistema
- **Amministratore**: Gestione condomini assegnati
- **Collaboratore**: Funzioni amministrative limitate
- **Condomino**: Solo informazioni personali e ticket
- **Fornitore**: Solo preventivi e fatture
---
## 🔄 **SISTEMA AGGIORNAMENTI** (PIANIFICATO)
### 🌐 **Architettura Distribuita**
- **Server Master**: Repository centrale aggiornamenti
- **API Endpoint**: `/api/updates/check` e `/api/updates/download`
- **Client Locale**: Script auto-update integrato
- **Versioning**: Semantic versioning (MAJOR.MINOR.PATCH)
### 📦 **Gestione Versioni**
- **Stable**: Versione produzione testata
- **Development**: Versione con ultime features
- **LTS**: Long Term Support (solo bugfix)
- **Rollback**: Possibilità di tornare alla versione precedente
### 🔒 **Sicurezza Updates**
- **Firma digitale**: Ogni aggiornamento firmato
- **Checksum**: Verifica integrità file
- **Backup automatico**: Prima di ogni aggiornamento
- **Rollback**: In caso di errori nell'aggiornamento
---
## 🛠️ **TOOLS E UTILITÀ**
### 📊 **Monitoring e Debug**
- **Laravel Debugbar**: Per ambiente sviluppo
- **Laravel Telescope**: Monitoring queries e performance
- **Log Viewer**: Visualizzazione log in UI
- **Laravel Pulse**: Real-time application monitoring
### 🧪 **Testing**
- **PHPUnit**: Test unitari e di integrazione
- **Laravel Dusk**: Test browser automatizzati
- **Pest**: Alternative moderna a PHPUnit
- **Factory/Seeders**: Dati fake per testing
### 📁 **File Management**
- **Laravel Storage**: Gestione file con disks
- **Intervention Image**: Manipolazione immagini
- **Spatie Media Library**: Gestione media avanzata
---
## 🔧 **CONFIGURAZIONE AMBIENTE**
### 🐧 **Requisiti Sistema Linux**
- **OS**: Ubuntu 20.04+ / CentOS 8+ / Debian 11+
- **PHP**: 8.1+ con estensioni: pdo_mysql, mbstring, xml, gd, zip
- **MySQL**: 8.0+ o MariaDB 10.4+
- **Nginx**: 1.18+ o Apache 2.4+
- **Node.js**: 18+ con NPM
- **Composer**: 2.4+
- **SSL**: Let's Encrypt o certificato valido
### ⚡ **Performance**
- **OPcache**: Abilitato per PHP
- **Redis**: Per cache e sessioni
- **Queue**: Laravel Horizon per job in background
- **CDN**: Per asset statici (opzionale)
### 🔐 **Sicurezza**
- **Firewall**: UFW o iptables configurato
- **SSH**: Solo chiavi, no password
- **HTTPS**: Forzato su tutte le route
- **Headers**: Security headers configurati
- **Rate Limiting**: Su API e form
---
## 📈 **ROADMAP FEATURES**
### 🎯 **Versione 2.1** (Q3 2025)
- Multi-lingua completo
- Sistema aggiornamenti automatici
- API REST per mobile app
- Modulo assemblee avanzato
### 🎯 **Versione 2.2** (Q4 2025)
- App mobile companion
- Integrazione PEC/email
- Modulo fatturazione elettronica
- Dashboard analytics avanzate
### 🎯 **Versione 3.0** (Q1 2026)
- Multi-tenant SaaS completo
- Marketplace plugin
- AI per categorizzazione automatica
- Integrazione bancaria
---
## 🚀 **SISTEMA RIPARTIZIONE SPESE E GESTIONE RATE - IMPLEMENTAZIONE COMPLETATA**
### ✅ **IMPLEMENTAZIONE COMPLETA 8 LUGLIO 2025**
Il sistema NetGesCon Laravel ha raggiunto una milestone importante con l'implementazione completa del sistema di ripartizione spese e gestione rate. Questo rappresenta il cuore del business logic per la gestione condominiale.
#### **🎯 FUNZIONALITÀ IMPLEMENTATE**:
**Backend Completo**:
-**Modelli Eloquent**: VoceSpesa, RipartizioneSpese, DettaglioRipartizioneSpese, PianoRateizzazione, Rata
-**Controller RESTful**: CRUD completo per tutte le entità con metodi personalizzati
-**Policy e Autorizzazioni**: Sicurezza basata su ruoli e ownership
-**Migration Database**: Strutture ottimizzate con relazioni e indici
**Frontend Completo**:
-**Interfacce Responsive**: 12 viste complete con design mobile-first
-**Componenti Avanzati**: DataTables, Select2, Chart.js, modal interattivi
-**Calcoli Automatici**: AJAX per ripartizioni, rate, importi, scadenze
-**Dashboard Avanzate**: Filtri, statistiche, monitoraggio pagamenti
**Business Logic Avanzata**:
-**Calcolo Ripartizioni**: Automatico tramite tabelle millesimali con personalizzazioni
-**Piani Rateizzazione**: Configurazione frequenze, interessi, spese gestione
-**Gestione Pagamenti**: Registrazione, marcatura, posticipazioni, scadenze
-**Workflow Completi**: Da creazione voce spesa a pagamento finale
#### **🏆 RISULTATI OTTENUTI**:
**Architettura Enterprise**:
- Database modernizzato secondo best practices Laravel
- Sistema multi-database pronto per scalabilità
- Relazioni Eloquent ottimizzate per performance
- Codici alfanumerici per identificazione univoca
**Interfacce Professionali**:
- Design system coerente con Bootstrap 5
- Componenti riutilizzabili e manutenibili
- Responsive design testato su dispositivi multipli
- Accessibilità e UX ottimizzate
**Funzionalità Avanzate**:
- Calcoli automatici con validazioni business
- Esportazioni e report configurabili
- Monitoraggio scadenze e notifiche
- Audit trail completo per compliance
#### **🎯 SISTEMA PRONTO PER PRODUZIONE**:
Il sistema è ora completamente operativo per:
- **Amministratori di condominio**: Gestione completa spese e rate
- **Gestione multi-stabile**: Ogni amministratore può gestire più stabili
- **Workflow completi**: Dalla creazione spesa al pagamento finale
- **Reporting avanzato**: Statistiche, esportazioni, monitoraggio
### **📋 TECNOLOGIE UTILIZZATE**:
- **Backend**: Laravel 10+ con Eloquent ORM, Policy, Migration
- **Frontend**: Bootstrap 5, jQuery, DataTables, Select2, Chart.js
- **Database**: MySQL 8.0+ con strutture ottimizzate
- **Sicurezza**: Autenticazione Laravel, autorizzazioni granulari
- **Responsive**: Design mobile-first con sidebar collassabile
### **🔧 CARATTERISTICHE TECNICHE**:
- **Architettura MVC**: Separazione chiara tra logica e presentazione
- **API Ready**: Strutture preparate per future API REST
- **Scalabilità**: Database multi-tenant e performance ottimizzate
- **Manutenibilità**: Codice pulito, documentato, testabile
- **Estendibilità**: Architettura modulare per future implementazioni
Il sistema rappresenta ora una soluzione completa e professionale per la gestione condominiale, pronta per deployment e utilizzo in produzione.
---
*Ultima modifica: 8 Luglio 2025 - Documentazione completa stack tecnologico*