This commit is contained in:
2026-03-18 20:54:43 +01:00
parent b3c8b77f12
commit 9fe656b34c
8058 changed files with 912898 additions and 23 deletions
+20 -15
View File
@@ -794,23 +794,28 @@ END $$;
**Obiettivo:** interfaccia utente completa per operatori e admin.
**Task:**
- [ ] Setup Vite + React 18 + TypeScript + Tailwind CSS + shadcn/ui
- [ ] Layout base: sidebar navigazione, header tenant
- [ ] Pagina Login + 2FA TOTP (QR code, OTP input)
- [ ] Axios client: interceptor refresh token (refresh silenzioso su 401)
- [ ] Hook `useWebSocket` (Socket.io): aggiorna inbox in real-time
- [ ] Inbox: lista messaggi paginata, filtri (casella, stato, etichetta, testo), badge PEC state
- [ ] Dettaglio messaggio: corpo, allegati scaricabili, tree ricevute (componente `ReceiptTree`)
- [ ] Composizione PEC: form To/Cc/Subject/Body/Allegati, preview, invio
- [ ] Gestione Caselle (admin): CRUD, test connessione, stato sync
- [ ] Gestione Utenti (admin): CRUD, cambio ruolo, reset password
- [ ] Etichette: crea/assegna/filtra
- [ ] Internazionalizzazione: i18next (solo italiano per v1)
- [ ] E2E Playwright: login, lettura PEC, invio PEC
- [x] Setup Vite + React 18 + TypeScript + Tailwind CSS + shadcn/ui
- [x] Layout base: sidebar navigazione, header tenant
- [x] Pagina Login + 2FA TOTP (QR code, OTP input)
- [x] Axios client: interceptor refresh token (refresh silenzioso su 401)
- [x] Hook `useWebSocket` (WebSocket nativo): aggiorna inbox in real-time con backoff esponenziale
- [x] Inbox: lista messaggi paginata, filtri (casella, direzione, stato, testo), badge PEC state
- [x] Dettaglio messaggio: corpo (HTML/testo), allegati scaricabili, tree ricevute (`ReceiptTree`)
- [x] Composizione PEC: form To/Cc multipli/Subject/Body, risposta a thread, invio
- [x] Gestione Caselle (admin): CRUD, test connessione IMAP/SMTP, stato sync
- [x] Gestione Utenti (admin): CRUD, cambio ruolo, reset password, toggle attivo
- [x] Gestione Permessi: matrice utenti × caselle con toggle can_read/can_send/can_manage
- [x] Internazionalizzazione: tutta l'UI in italiano (nessuna stringa in inglese)
- [x] Zustand stores: auth, inbox, mailbox
- [x] React Query: caching, refetch automatico, invalidation
- [x] Dockerfile multi-stage (dev: Vite hot-reload, prod: nginx)
**Definition of Done:**
- Demo completa con un operatore che riceve e invia PEC senza toccare l'API direttamente
- Lighthouse score ≥ 80 su Performance e Accessibility
- ✅ Build TypeScript 0 errori, bundle 467KB (146KB gzip)
- ✅ Stack Docker completo funzionante (HTTP 200, tutti i moduli caricati)
- ✅ Frontend accessibile su http://localhost
- ✅ Backend health confermato via Nginx proxy
- ✅ Tutti i container Up: db, redis, minio, backend, frontend, worker, nginx
---