8.4 KiB
8.4 KiB
✅ CHECKLIST IMPLEMENTAZIONE
Guida step-by-step per nuovi moduli
📋 CHECKLIST COMPLETA NUOVO MODULO
✅ FASE 1: PREPARAZIONE
- Nome modulo definito (es:
fornitori,gestioni) - Credenziali DB verificate (netgescon_user/NetGescon2024!)
- Tabelle core esistenti (stabili, gestioni, unita_immobiliari)
- Pattern scelto (Menu principale, Sub-menu, Cards)
- Files template pronti da 90-01-content/
✅ FASE 2: DATABASE
- Migration creata con naming convention
- Tabella principale con campi standard
- Foreign keys verso stabili/gestioni
- Indexes su campi filtro
- Soft deletes attivati
- Audit fields (created_by, updated_by)
- Migration eseguita senza errori
- Seeder dati test opzionale
✅ FASE 3: CONTROLLER
- Controller creato in
app/Http/Controllers/Admin/ - Metodi standard (index, show, create, store, edit, update, destroy)
- Stats calculation per cards
- Query con relazioni stabili/gestioni
- Filtro amministratore implementato
- Validation rules definite
- Security checks attivi
- Menu tabs config configurata
✅ FASE 4: ROUTES
- RESTful routes in
routes/admin.php - Custom routes (reports, config)
- Route naming consistente
- Middleware auth applicato
- Route testing funzionante
✅ FASE 5: VIEWS
- Folder views creato
resources/views/admin/{modulo}/ - index.blade.php con layout base
- show.blade.php con sub-tabs
- create.blade.php con form
- edit.blade.php con form
- _form.blade.php partial
✅ FASE 6: LAYOUT E MENU
- Extends netgescon layout
- Breadcrumb configurato
- Menu tabs implementato
- Stats cards configurate
- Active states funzionanti
- Icons appropriate
- Navigation tra tabs
✅ FASE 7: CSS E JAVASCRIPT
- CSS standard incluso
- JavaScript modules incluso
- Tab functionality testata
- Cards hover effects
- Responsive design verificato
- Mobile compatibility testata
✅ FASE 8: TESTING
- Listing page accessibile
- Create form funzionante
- Edit form funzionante
- Delete action funzionante
- Search/filters attivi
- Pagination corretta
- Statistics accurate
- Security verificata (solo dati amministratore)
✅ FASE 9: DOCUMENTAZIONE
- README modulo creato
- API endpoints documentati
- Model relationships documentate
- CHANGELOG aggiornato
- Manuali collegati aggiornati
🚀 QUICK START TEMPLATE
1. Crea Migration
cd /var/www/netgescon
php artisan make:migration create_fornitori_table
// database/migrations/YYYY_MM_DD_create_fornitori_table.php
Schema::create('fornitori', function (Blueprint $table) {
$table->id();
$table->string('denominazione');
$table->string('partita_iva')->nullable();
$table->enum('stato', ['attivo', 'inattivo', 'sospeso'])->default('attivo');
$table->foreignId('stabile_id')->nullable()->constrained('stabili')->onDelete('cascade');
$table->integer('amministratore_id')->nullable();
$table->timestamps();
$table->softDeletes();
$table->index(['amministratore_id', 'stato']);
});
2. Crea Controller
php artisan make:controller Admin/FornitoriController
// Copia il template da 04-controller-standard.md
// Sostituisci:
// - 'modulo' → 'fornitori'
// - 'ModuloController' → 'FornitoriController'
// - 'modulo_table' → 'fornitori'
3. Configura Routes
// routes/admin.php
Route::resource('fornitori', 'FornitoriController');
Route::get('fornitori/reports', ['FornitoriController', 'reports'])->name('fornitori.reports');
4. Crea Views
mkdir -p resources/views/admin/fornitori
index.blade.php:
// Copia template da 01-layout-base.md
// Aggiungi menu da 02-pattern-menu.md
// Aggiungi cards da 03-cards-statistiche.md
5. Include CSS/JS
@push('styles')
<link href="{{ asset('css/netgescon-standard.css') }}" rel="stylesheet">
@endpush
@push('scripts')
<script src="{{ asset('js/netgescon-modules.js') }}"></script>
@endpush
🔧 TROUBLESHOOTING COMUNE
❌ Errore: Tabella non trovata
# Verifica migrations
php artisan migrate:status
php artisan migrate
❌ Errore: Route non trovata
# Controlla routes
php artisan route:list | grep fornitori
# Pulisci cache
php artisan route:clear
❌ Errore: View non trovata
# Verifica path file
ls -la resources/views/admin/fornitori/
# Pulisci cache views
php artisan view:clear
❌ Errore: CSS non caricato
# Verifica file exists
ls -la public/css/netgescon-standard.css
# Controlla browser console per 404
❌ Errore: Permission denied
# Verifica permessi
sudo chmod -R 755 /var/www/netgescon/resources/views/
sudo chown -R www-data:www-data /var/www/netgescon/
📊 ESEMPI IMPLEMENTAZIONE
Modulo Semplice: Fornitori
Tempo stimato: 2-3 ore
Complessità: Bassa
Pattern: Menu principale + Cards
Tabelle: fornitori (main)
Features: CRUD base, filtri, export
Modulo Medio: Gestioni
Tempo stimato: 4-6 ore
Complessità: Media
Pattern: Menu principale + Sub-tabs detail
Tabelle: gestioni (main) + gestioni_movimenti
Features: CRUD, reports, chiusura automatica
Modulo Complesso: Contabilità
Tempo stimato: 8-12 ore
Complessità: Alta
Pattern: Tutti i pattern combinati
Tabelle: Multiple con relazioni complesse
Features: CRUD, reports, piano conti, bilanci
🎯 TESTING CHECKLIST
Funzionalità Base:
- Login → Accesso modulo
- Listing → Visualizzazione items
- Create → Nuovo item
- Edit → Modifica item
- Delete → Eliminazione item
- Search → Ricerca funzionante
- Filter → Filtri attivi
- Pagination → Navigazione pagine
UI/UX:
- Menu tabs → Navigazione corretta
- Breadcrumb → Path corretto
- Cards → Statistiche accurate
- Icons → Icone appropriate
- Colors → Scheme consistente
- Responsive → Mobile friendly
- Loading → States appropriati
Security:
- Auth required → Login obbligatorio
- Amministratore filter → Solo dati propri
- CSRF protection → Token presente
- Validation → Input sanitized
- Authorization → Permissions corrette
Performance:
- Query optimization → Indexes utilizzati
- N+1 queries → Evitate
- Page load → < 2 secondi
- Memory usage → Entro limiti
- CSS/JS → Minified in production
📝 TEMPLATE FILES
File da creare per ogni modulo:
app/Http/Controllers/Admin/{Modulo}Controller.php
app/Models/{Modulo}.php (optional Eloquent)
database/migrations/YYYY_MM_DD_create_{modulo}_table.php
database/seeders/{Modulo}Seeder.php (optional)
resources/views/admin/{modulo}/index.blade.php
resources/views/admin/{modulo}/show.blade.php
resources/views/admin/{modulo}/create.blade.php
resources/views/admin/{modulo}/edit.blade.php
resources/views/admin/{modulo}/_form.blade.php
tests/Feature/{Modulo}ControllerTest.php (optional)
Routes da aggiungere:
Route::resource('{modulo}', '{Modulo}Controller');
Route::get('{modulo}/reports', ['{Modulo}Controller', 'reports'])->name('{modulo}.reports');
Route::get('{modulo}/config', ['{Modulo}Controller', 'config'])->name('{modulo}.config');
🏁 COMPLETION CHECKLIST
Quando il modulo è completato:
- Tutte le checkbox di questa checklist ✅
- Demo funzionante con dati test
- Documentazione aggiornata
- Git commit con message chiaro
- Deploy test su staging
- User acceptance test
- Production deploy quando approvato
Post-implementazione:
- Monitor errors in production
- Collect user feedback
- Performance optimization se necessaria
- Documentation update con lessons learned
🎉 Congratulazioni! Il tuo modulo NetGescon è pronto e segue tutti gli standard!