netgescon-day0/docs/90-UI-interfaccia-unica/90-01-content/06-checklist-implementazione.md

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!