290 lines
8.1 KiB
Markdown
Executable File
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**
|