mirror of
https://github.com/idrainformatica/PecFlow.git
synced 2026-06-16 12:45:42 +02:00
fase 5
This commit is contained in:
+20
-15
@@ -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
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user