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

8.1 KiB
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:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=netgescon
DB_USERNAME=netgescon_user
DB_PASSWORD=NetGescon2024!

🔑 CREDENZIALI COMPLETE:

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

// 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:

// 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:

/* 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:

-- 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:

// SOLUZIONE: Eager loading nel controller
$stabile->load(['tabelleMillesimali', 'vociSpesa', 'unitaImmobiliari']);

2. CSS non applicato:

# SOLUZIONE: Rebuild assets
npm run build
php artisan view:clear

3. Errore SQL ordinamento:

-- SOLUZIONE: Verifica colonna ordinamento
ALTER TABLE tabelle_millesimali ADD COLUMN ordinamento INT DEFAULT 0;

4. JavaScript non funziona:

<!-- 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:

// 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:

🎨 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