# 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*
