netgescon-day0/docs/90-UI-interfaccia-unica/SISTEMA-AUTOMAZIONE-SVILUPPO.md

290 lines
8.1 KiB
Markdown
Executable File

# 🚀 SISTEMA AUTOMAZIONE SVILUPPO NETGESCON
## Comandi Rapidi per Development Workflow
### 📅 Versione: 1.0 - 28 Luglio 2025
### 🎯 Obiettivo: Eliminare errori e accelerare sviluppo
---
## 📋 COMANDI SISTEMA
### 🎨 **UIX:** - Sviluppo Interfaccia Unica
**Uso:** Quando sviluppi nuovi menu, layout, componenti UI
**Pre-requisiti:** Leggi specifiche interfaccia PRIMA di procedere
### 🔧 **FIX:** - Risoluzione Problemi
**Uso:** Quando risolvi bug, errori, malfunzionamenti
**Pre-requisiti:** Analizza logs e troubleshooting esistente
### 🧪 **TESTX:** - Testing Automatizzato
**Uso:** Per verificare strutture, menu, funzionalità
**Pre-requisiti:** Esegui controlli sistemici prima di rilascio
---
**Uso:** Quando risolvi bug, errori, malfunzionamenti
**Pre-requisiti:** Analizza logs e troubleshooting esistente
### 🧪 **TESTX:** - Testing Automatizzato
**Uso:** Per verificare strutture, menu, funzionalità
**Pre-requisiti:** Esegui controlli sistemici prima di rilascio
---
## 🎨 COMANDO UIX: - SPECIFICHE INTERFACCIA
### 📊 **STACK TECNOLOGICO FISSO**:
- **CSS Framework**: Tailwind CSS 3.x (PRINCIPALE) + Bootstrap 5 (supporto)
- **JavaScript**: Vanilla JS (NO jQuery)
- **Backend**: Laravel 10.x + Blade Templates
- **Database**: MySQL 8.0
- **Build System**: Vite 4.x
- **Icons**: Font Awesome 6
### 🗄️ **DATABASE CONNESSIONE**:
```env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=netgescon
DB_USERNAME=netgescon_user
DB_PASSWORD=NetGescon2024!
```
### 🔑 **CREDENZIALI COMPLETE**:
```bash
# MySQL Database
DB_DATABASE=netgescon
DB_USERNAME=netgescon_user
DB_PASSWORD=NetGescon2024!
# Git Repository
GITEA_URL=http://192.168.0.200:3000/NetGescon/netgescon-master.git
GITEA_USER=michele
GITEA_TOKEN=fd343cbe1d0d7a48e49ca3478f162d2911133670
# Sistema URLs
PROD_URL=http://192.168.0.200:8000
ADMIN_URL=http://192.168.0.200:8000/admin/admin
# Condivisione Rete (Windows ↔ Linux)
SERVER_IP=192.168.0.200
SAMBA_USER=michele
SAMBA_PASSWORD=netgescon123
NETBIOS_NAME=NETGESCON-DEV
SHARE_DEV=\\192.168.0.200\netgescon-dev
SHARE_DOCS=\\192.168.0.200\netgescon-docs
SHARE_PROD=\\192.168.0.200\netgescon-production
```
### 🎯 **LAYOUT PRINCIPALE**:
```php
// Layout Base OBBLIGATORIO
@extends('admin.layouts.netgescon') // SEMPRE questo layout
// Struttura HTML Standard
<div class="min-h-screen bg-gray-50">
<header> <!-- Fixed top 70px --> </header>
<aside> <!-- Sidebar fixed 280px --> </aside>
<main> <!-- Content area responsive --> </main>
<footer> <!-- Fixed bottom 70px --> </footer>
</div>
```
### 📐 **MENU STRUTTURA STANDARD**:
```php
// Controller Pattern
public function show(Stabile $stabile) {
$stabile->load([
'tabelleMillesimali' => function($query) {
$query->orderBy('ordinamento')->orderBy('nome_tabella');
},
'vociSpesa' => function($query) {
$query->orderBy('ordinamento')->orderBy('descrizione');
}
]);
return view('admin.stabili.show', compact('stabile'));
}
// Blade Pattern
<div class="tabs-container">
<nav class="tab-navigation">
<a href="#tab" class="tab-link active">Menu</a>
</nav>
<div class="tab-content">
@include('admin.stabili.tabs.content')
</div>
</div>
```
### 🎨 **CSS CLASSES STANDARD**:
```css
/* Containers */
.netgescon-container { @apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8; }
.netgescon-card { @apply bg-white rounded-lg shadow-sm border; }
.netgescon-header { @apply bg-gradient-to-r from-blue-600 to-blue-700 text-white; }
/* Buttons */
.btn-netgescon-primary { @apply bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-md; }
.btn-netgescon-secondary { @apply bg-gray-100 hover:bg-gray-200 text-gray-700 px-4 py-2 rounded-md; }
/* Forms */
.form-netgescon { @apply space-y-6; }
.input-netgescon { @apply border-gray-300 rounded-md shadow-sm focus:border-blue-500; }
```
### 📊 **TABELLE DATABASE PRINCIPALI**:
```sql
-- Sempre usare eager loading per relazioni
stabili -> id, denominazione, amministratore_id
tabelle_millesimali -> id, stabile_id, nome_tabella, ordinamento
voci_spesa -> id, stabile_id, descrizione, ordinamento
unita_immobiliari -> id, stabile_id, scala, interno
amministratori -> id, denominazione, codice_fiscale
```
---
## 🔧 COMANDO FIX: - TROUBLESHOOTING RAPIDO
### 🚨 **PROBLEMI COMUNI E SOLUZIONI**:
#### 1. **Tabs vuoti/dati non visibili**:
```php
// SOLUZIONE: Eager loading nel controller
$stabile->load(['tabelleMillesimali', 'vociSpesa', 'unitaImmobiliari']);
```
#### 2. **CSS non applicato**:
```bash
# SOLUZIONE: Rebuild assets
npm run build
php artisan view:clear
```
#### 3. **Errore SQL ordinamento**:
```sql
-- SOLUZIONE: Verifica colonna ordinamento
ALTER TABLE tabelle_millesimali ADD COLUMN ordinamento INT DEFAULT 0;
```
#### 4. **JavaScript non funziona**:
```html
<!-- SOLUZIONE: Verifica inclusione script -->
@push('scripts')
<script src="{{ asset('js/netgescon-admin.js') }}"></script>
@endpush
```
### 📋 **CHECKLIST DEBUG**:
- [ ] Controller ha eager loading?
- [ ] Relazioni modelli corrette?
- [ ] CSS build eseguito?
- [ ] JavaScript incluso?
- [ ] Database ha tutti i campi?
- [ ] Permessi file corretti?
---
## 🧪 COMANDO TESTX: - TESTING STRUTTURE
### 📊 **TEST AUTOMATICI MENU**:
```php
// Test esistenza dati
SELECT COUNT(*) FROM tabelle_millesimali WHERE stabile_id = 1; -- > 0
SELECT COUNT(*) FROM voci_spesa WHERE stabile_id = 1; -- > 0
// Test relazioni
$stabile = Stabile::with(['tabelleMillesimali', 'vociSpesa'])->find(1);
$stabile->tabelleMillesimali->count(); // > 0
$stabile->vociSpesa->count(); // > 0
```
### 🎯 **TEST INTERFACCIA**:
- [ ] URL accessibile: http://192.168.0.200:8000/admin/stabili/1/show
- [ ] Layout corretto (header, sidebar, content, footer)
- [ ] Tabs navigabili e funzionanti
- [ ] Dati visibili in tutte le sezioni
- [ ] Responsive design mobile/desktop
- [ ] JavaScript interazioni funzionanti
### 📱 **TEST RESPONSIVE**:
- [ ] Mobile (320px-768px): Stack verticale
- [ ] Tablet (768px-1024px): Layout ridotto
- [ ] Desktop (1024px+): Layout completo
---
## 📁 FILE RIFERIMENTO RAPIDO
### 🔑 **CREDENZIALI E ACCESSI**:
- **Database**: netgescon / netgescon_user / NetGescon2024!
- **Admin URL**: http://192.168.0.200:8000/admin/admin
- **Git Remote**: http://192.168.0.200:3000/NetGescon/netgescon-master.git
- **Samba Share Dev**: \\192.168.0.200\netgescon-dev (michele/netgescon123)
- **Samba Share Prod**: \\192.168.0.200\netgescon-production (michele/netgescon123)
- **Credenziali Complete**: `/docs/05-backup-unificazione/files-scattered-production/credenziali.txt`
### 🎨 **INTERFACCIA UNICA**:
- **Master Guide**: `/docs/90-UI-interfaccia-unica/00-MASTER-INTERFACCIA-UNICA.md`
- **Troubleshooting**: `/docs/90-UI-interfaccia-unica/99-TROUBLESHOOTING.md`
- **JavaScript**: `/docs/90-UI-interfaccia-unica/07-JAVASCRIPT.md`
### 🏗️ **ARCHITETTURA**:
- **Database**: `/docs/04-DATABASE-STRUTTURE.md`
- **Modelli Laravel**: `/docs/02-architettura-laravel/`
- **Technical Specs**: `/docs/05-backup-unificazione/files-scattered-production/TECHNICAL_SPECS.md`
### 🔧 **OPERATIVO**:
- **Manual Tabs Working**: `/docs/05-backup-unificazione/files-scattered-production/MANUAL-TABS-NETGESCON-WORKING.md`
- **Recovery Guide**: `/docs/05-backup-unificazione/files-scattered-production/RECOVERY-GUIDE.md`
---
## ⚡ WORKFLOW AUTOMAZIONE
### 1. **RICEVO COMANDO**:
```
User: "UIX: Crea nuovo menu gestione fornitori"
```
### 2. **STEP AUTOMATICI**:
- ✅ Leggo Master Guide interfaccia
- ✅ Verifico struttura database
- ✅ Controllo layout esistenti
- ✅ Applico pattern standard
### 3. **SVILUPPO GUIDATO**:
- Controller con eager loading
- Blade con layout netgescon
- CSS classes standard
- JavaScript modulare
### 4. **TEST AUTOMATICO**:
- Verifica responsive
- Test dati visibili
- Controllo performance
---
## 🎯 VANTAGGI SISTEMA
### ✅ **ZERO ERRORI**:
- Specifiche sempre aggiornate
- Pattern consolidati
- Test automatizzati
### ⚡ **VELOCITÀ SVILUPPO**:
- No ricerca documentazione
- Setup immediato
- Workflow ottimizzato
### 🔧 **MANUTENZIONE**:
- Standard consolidati
- Debug semplificato
- Update centralizzato
---
**🚀 PRONTO PER L'USO!**
**Usa: UIX:, FIX:, TESTX: per attivare l'automazione**