# NETGESCON - README DI TRANSIZIONE

## 📋 PANORAMICA DEL PROGETTO

**NETGESCON** è un sistema di gestione condominiale sviluppato in Laravel, progettato per gestire:
- Stabili e condomini
- Anagrafica inquilini e proprietari
- Gestione amministratori
- Fatturazione e contabilità
- Reportistica e documenti

### 🎯 STATO ATTUALE
- ✅ **Ambiente**: Ubuntu 24.04 LTS
- ✅ **Framework**: Laravel 11.x
- ✅ **Database**: MySQL 8.0
- ✅ **Server Web**: Apache2
- ✅ **PHP**: 8.1+
- ✅ **Accesso Remoto**: RDP + VNC configurati
- ✅ **IDE**: VS Code + GitHub Copilot

---

## 🗂️ STRUTTURA DEL PROGETTO

```
/var/www/netgescon-complete/
├── laravel-app/                    # Applicazione Laravel principale
│   ├── app/
│   │   ├── Models/                 # Modelli Eloquent
│   │   ├── Http/Controllers/       # Controller
│   │   ├── Observers/              # Observer per auto-generazione codici
│   │   └── ...
│   ├── database/
│   │   ├── migrations/             # Migrazioni database
│   │   └── seeders/               # Dati di test
│   ├── resources/views/           # Template Blade
│   ├── routes/                    # Definizione rotte
│   ├── public/                    # Asset pubblici
│   ├── .env                       # Configurazione ambiente
│   └── composer.json              # Dipendenze PHP
├── docs/                          # Documentazione tecnica
│   ├── api/                       # Documentazione API
│   ├── database/                  # Schema e documentazione DB
│   └── deployment/                # Guide di deploy
├── manuals/                       # Manuali utente e tecnici
│   ├── user-manuals/             # Manuali per utenti finali
│   ├── admin-manuals/            # Manuali amministrativi
│   └── technical-manuals/        # Documentazione tecnica
├── scripts/                       # Script di automazione
│   ├── deployment/               # Script di deploy
│   ├── backup/                   # Script di backup
│   ├── sync/                     # Script di sincronizzazione
│   └── setup-dev-session.sh     # Setup rapido ambiente dev
├── backups/                       # Backup del progetto
│   ├── database/                 # Backup database
│   ├── code/                     # Backup codice
│   └── config/                   # Backup configurazioni
├── resources/                     # Risorse del progetto
│   ├── screenshots/              # Screenshot dell'applicazione
│   ├── mockups/                  # Mockup e design
│   └── assets/                   # Asset vari
├── FEATURES-INVENTORY.md         # Inventario funzionalità
├── DEPLOYMENT-GUIDE.md           # Guida deployment
└── README-TRANSITION.md          # Questo file
```

---

## 🚀 AVVIO RAPIDO

### 1. Accesso al Sistema
```bash
# RDP (Raccomandato per sviluppo)
mstsc /v:192.168.0.200:3389

# SSH (Per comandi rapidi)
ssh netgescon@192.168.0.200
```

### 2. Avvio Ambiente di Sviluppo
```bash
# Naviga nella directory del progetto
cd /var/www/netgescon-complete

# Esegui script di setup rapido
./scripts/setup-dev-session.sh

# Avvia Laravel
cd laravel-app
php artisan serve --host=0.0.0.0 --port=8000
```

### 3. Accesso all'Applicazione
- **URL Principale**: http://192.168.0.200:8000
- **Admin Panel**: http://192.168.0.200:8000/admin
- **API Docs**: http://192.168.0.200:8000/api/docs

---

## 🔧 CONFIGURAZIONE AMBIENTE

### Database
```bash
# Configurazione in .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=netgescon
DB_USERNAME=netgescon_user
DB_PASSWORD=netgescon_password

# Comandi utili
php artisan migrate              # Esegui migrazioni
php artisan db:seed             # Popola dati di test
php artisan migrate:fresh --seed # Reset completo DB
```

### Server Web
```bash
# Apache configurazione
sudo a2ensite netgescon.conf
sudo systemctl reload apache2

# Permessi directory
sudo chown -R www-data:www-data /var/www/netgescon
sudo chmod -R 755 /var/www/netgescon
```

### PHP e Composer
```bash
# Installazione dipendenze
composer install --no-dev --optimize-autoloader

# Aggiornamento dipendenze
composer update

# Generazione chiave applicazione
php artisan key:generate
```

---

## 🎛️ FUNZIONALITÀ PRINCIPALI

### 📊 Dashboard
- Panoramica generale sistema
- Statistiche stabili e inquilini
- Notifiche e alert
- Grafici di riepilogo

### 🏢 Gestione Stabili
- **Anagrafica stabili**: Dati identificativi e catastali
- **Struttura**: Gestione scale, piani, unità immobiliari
- **Amministratori**: Assegnazione e gestione
- **Documenti**: Upload e gestione documentazione

### 👥 Gestione Persone
- **Inquilini**: Anagrafica completa, contratti, scadenze
- **Proprietari**: Gestione proprietà e quote millesimali
- **Amministratori**: Credenziali e abilitazioni
- **Fornitori**: Anagrafica e servizi

### 💰 Gestione Economica
- **Fatturazione**: Creazione e invio fatture
- **Contabilità**: Registrazione movimenti
- **Budget**: Previsioni e consuntivi
- **Reportistica**: Bilanci e rendiconti

### 🔐 Sicurezza e Accessi
- **Autenticazione**: Login multi-ruolo
- **Autorizzazioni**: Controllo accessi per funzione
- **Audit Trail**: Log delle operazioni
- **Backup**: Backup automatici configurabili

---

## 🛠️ STRUMENTI DI SVILUPPO

### IDE Configurato
- **VS Code** con estensioni Laravel
- **GitHub Copilot** per assistenza AI
- **PHP Intelephense** per autocomplete
- **Laravel Blade Snippets**
- **Git integration** per version control

### Testing
```bash
# Test unitari
php artisan test

# Test specifici
php artisan test --filter=StabileTest

# Coverage
php artisan test --coverage
```

### Debugging
```bash
# Log Laravel
tail -f storage/logs/laravel.log

# Debug queries
php artisan tinker
DB::enableQueryLog();
# ... esegui operazioni ...
DB::getQueryLog();
```

---

## 📁 SCRIPT UTILI

### Setup Sviluppo
```bash
# /var/www/netgescon-complete/scripts/setup-dev-session.sh
# Avvia tutti i servizi necessari per sviluppo
./scripts/setup-dev-session.sh
```

### Backup
```bash
# Backup completo
./scripts/backup/full-backup.sh

# Backup solo database
./scripts/backup/db-backup.sh
```

### Sincronizzazione
```bash
# Sync con repository remoto
./scripts/sync/sync-remote.sh

# Sync documentazione
./scripts/sync/sync-docs.sh
```

---

## 🔍 RISOLUZIONE PROBLEMI

### Problemi Comuni

#### 1. Errori di Permessi
```bash
sudo chown -R www-data:www-data /var/www/netgescon
sudo chmod -R 755 /var/www/netgescon
sudo chmod -R 775 storage bootstrap/cache
```

#### 2. Errori Database
```bash
# Ricrea database
php artisan migrate:fresh --seed

# Reset configurazione
php artisan config:clear
php artisan cache:clear
```

#### 3. Errori Composer
```bash
# Rigenera autoload
composer dump-autoload

# Installa dipendenze mancanti
composer install
```

#### 4. Errori Laravel
```bash
# Pulisci cache
php artisan optimize:clear

# Rigenera chiavi
php artisan key:generate
```

### Log e Debugging
```bash
# Log Laravel
tail -f /var/www/netgescon/storage/logs/laravel.log

# Log Apache
sudo tail -f /var/log/apache2/error.log

# Log MySQL
sudo tail -f /var/log/mysql/error.log
```

---

## 📚 DOCUMENTAZIONE

### Manuali Disponibili
- **📖 Manuale Utente**: `/manuals/user-manuals/`
- **⚙️ Manuale Tecnico**: `/manuals/technical-manuals/`
- **🔧 Manuale Admin**: `/manuals/admin-manuals/`

### API Documentation
- **Endpoint**: http://192.168.0.200:8000/api/docs
- **Swagger UI**: Interfaccia interattiva per test API
- **Postman Collection**: `/docs/api/netgescon.postman_collection.json`

### Database Schema
- **ERD**: `/docs/database/schema.png`
- **Dizionario Dati**: `/docs/database/data-dictionary.md`
- **Migrations**: `/laravel-app/database/migrations/`

---

## 🔄 WORKFLOW DI SVILUPPO

### 1. Feature Development
```bash
# Crea nuovo branch
git checkout -b feature/nome-feature

# Sviluppa e testa
# ... sviluppo ...
php artisan test

# Commit e push
git add .
git commit -m "Add: nuova feature"
git push origin feature/nome-feature
```

### 2. Code Review
- Usa GitHub PR per review del codice
- Esegui test automatici
- Valida con GitHub Copilot

### 3. Deploy
```bash
# Deploy su staging
./scripts/deployment/deploy-staging.sh

# Deploy su produzione (dopo test)
./scripts/deployment/deploy-production.sh
```

---

## 🎯 ONBOARDING CHECKLIST

### Per Nuovi Sviluppatori
- [ ] Accesso RDP/SSH configurato
- [ ] VS Code + Copilot installato
- [ ] Progetto clonato e dipendenze installate
- [ ] Database configurato e migrato
- [ ] Test eseguiti con successo
- [ ] Documentazione letta
- [ ] Primo commit effettuato

### Per GitHub Copilot/AI
- [ ] Struttura progetto analizzata
- [ ] Modelli e relazioni compresi
- [ ] Pattern architetturali identificati
- [ ] Test suite esaminata
- [ ] Documentazione API studiata
- [ ] Convenzioni di codice apprese

---

## 📞 SUPPORTO E CONTATTI

### Risorse di Aiuto
- **GitHub Copilot**: Assistenza in tempo reale nel codice
- **Laravel Docs**: https://laravel.com/docs
- **Stack Overflow**: Tag `laravel` per domande specifiche

### Comandi di Emergenza
```bash
# Restart completo servizi
sudo systemctl restart apache2 mysql

# Reset ambiente sviluppo
./scripts/reset-dev-environment.sh

# Backup di emergenza
./scripts/backup/emergency-backup.sh
```

---

## 📈 ROADMAP E TODO

### Immediate (Prossime 2 settimane)
- [ ] Completare test suite
- [ ] Implementare API REST complete
- [ ] Aggiungere validazione frontend
- [ ] Ottimizzare performance query

### Breve Termine (1-2 mesi)
- [ ] Interfaccia mobile-responsive
- [ ] Sistema notifiche email
- [ ] Integrazione sistemi contabili
- [ ] Report avanzati

### Lungo Termine (3-6 mesi)
- [ ] App mobile nativa
- [ ] Integrazione IoT (smart meters)
- [ ] AI per previsioni economiche
- [ ] Multi-tenant architecture

---

*📝 Ultimo aggiornamento: Gennaio 2025*
*🤖 Mantenuto con GitHub Copilot*
