# π BEST PRACTICES SVILUPPO - NetGescon
> **Guida rapida per sviluppo veloce e senza errori**
> **π
Creato:** 06/08/2025
> **π― Obiettivo:** Evitare errori comuni e accelerare lo sviluppo
---
## β
**CHECKLIST PRE-SVILUPPO**
### π¨ **Layout e Grafica**
- [ ] **SEMPRE usare:** `@extends('admin.layouts.netgescon')`
- [ ] **MAI usare:** `admin.layouts.app` (sidebar verde vecchia)
- [ ] **MAI usare:** `layouts.app-universal-*` (Bootstrap invece di Tailwind)
- [ ] Vite dev server attivo: `npm run dev`
- [ ] Server Laravel attivo: `php artisan serve --host=0.0.0.0 --port=8000`
### π **Structure Controller Standard**
```php
'Categoria Principale', 'icon' => 'fas fa-icon'],
['title' => 'Pagina Corrente', 'icon' => 'fas fa-icon']
];
// 2. Page setup
$pageTitle = 'Titolo Pagina';
$pageSubtitle = 'Descrizione di cosa fa questa pagina';
// 3. Page actions
$pageActions = [
[
'type' => 'secondary',
'label' => 'Azione Secondaria',
'url' => route('admin.route.action'),
'icon' => 'fas fa-icon'
],
[
'type' => 'primary',
'label' => 'Azione Principale',
'url' => route('admin.route.create'),
'icon' => 'fas fa-plus'
]
];
// 4. Dati per la vista
$data = $this->getData($request);
// 5. Return view
return view('admin.modulo.pagina', compact(
'breadcrumbs',
'pageTitle',
'pageSubtitle',
'pageActions',
'data'
));
}
}
```
### π― **Template Vista Standard**
```blade
@extends('admin.layouts.netgescon')
@section('title', 'Titolo Pagina')
@section('content')
{{ $pageTitle }}
{{ $pageSubtitle }}
{{-- Contenuto principale qui --}}
@endsection
```
---
## π§ **CONFIGURAZIONE AMBIENTE**
### π **File .env Requirements**
```env
APP_URL=http://192.168.0.200:8000
VITE_APP_URL="${APP_URL}"
```
### β‘ **Vite Configuration (vite.config.js)**
```javascript
export default defineConfig({
server: {
host: '0.0.0.0',
port: 5174,
hmr: {
host: '192.168.0.200'
}
},
// resto della config...
});
```
### π **Comandi di Avvio**
```bash
# Terminal 1: Laravel Server
php artisan serve --host=0.0.0.0 --port=8000
# Terminal 2: Vite Dev Server
npm run dev
# Oppure usa i task VS Code configurati
```
---
## π **ORGANIZZAZIONE MENU SIDEBAR**
### π― **Struttura Attuale**
- **STABILI** - Gestione edifici e unitΓ
- **CONDOMINI** - Persone e relazioni
- **AMMINISTRAZIONE** - Tickets e documenti
- **CONTABILITΓ** - Bilanci e registrazioni NetGescon
- **GESTIONE ECONOMICA** - Preventivi e fornitori
- **MODULI** - FunzionalitΓ aggiuntive
- **GESCON IMPORT** - β Sistema import/export GESCON
- **SUPPORTO** - Help e configurazioni
### π **Aggiungere Nuova Voce Menu**
1. Aggiungere la voce nel file: `resources/views/components/menu/sidebar-netgescon.blade.php`
2. Aggiornare array JavaScript `categories`
3. Aggiornare `routeMapping` per l'auto-opening
4. Aggiornare selettori in `document.querySelectorAll`
---
## π¨ **ERRORI COMUNI DA EVITARE**
### β **Layout Sbagliato**
```blade
@extends('admin.layouts.app') // β Sidebar verde
@extends('layouts.app-universal-*') // β Bootstrap
```
### β **Mancanza Breadcrumbs**
```php
// β SBAGLIATO - Nessun breadcrumb
return view('admin.pagina');
// β
CORRETTO - Con breadcrumbs
$breadcrumbs = [...];
return view('admin.pagina', compact('breadcrumbs', ...));
```
### β **Asset Non Caricati**
- Vite non attivo
- APP_URL non configurato
- Percorsi asset sbagliati
### β **Variabili Mancanti**
- `$pageTitle` non definito
- `$pageActions` vuoto
- Dati non passati con `compact()`
---
## π― **WORKFLOW SVILUPPO VELOCE**
1. **Setup ambiente:** Vite + Laravel server attivi
2. **Copia template:** Usa controller e vista standard
3. **Modifica breadcrumbs:** Personalizza categorie
4. **Aggiungi logica:** Implementa getData() e filtri
5. **Test immediato:** Accesso remoto funzionante
6. **Commit frequenti:** Small iterations
---
## π **RIFERIMENTI RAPIDI**
- **Layout corretto:** `admin.layouts.netgescon`
- **CSS Framework:** Tailwind CSS (via Vite)
- **Icone:** FontAwesome 6.4.0
- **Documentazione completa:** `03-CONTENT.md`
- **Sidebar menu:** `components/menu/sidebar-netgescon.blade.php`
---
**β
ULTIMO AGGIORNAMENTO: 06/08/2025 - GESCON Menu separato creato**