6 - Notifiche, Admin, Rifinitura
Backend
· Sistema notifiche in-app: GET /notifications, PATCH /notifications/{id}/read
· Preferenze notifiche per utente: email / push (default entrambe)
· Web push notifications (service worker, opzionale se nei tempi)
· Panel admin:
o Gestione utenti (CRUD, assegnazione ruoli/gruppi)
o Configurazione soglie alert (tabella alert_config) + TTL cache targa (default 90gg)
o Log importazioni CSV
o Gestione Vehicle Registry (cache targhe):
§ GET /admin/vehicle-registry – lista targhe in cache (filtri: source, scaduta, data)
§ GET /admin/vehicle-registry/{plate} – dettaglio targa + versioni candidate
§ DELETE /admin/vehicle-registry/{plate} – cancella singola targa dalla cache
§ DELETE /admin/vehicle-registry – svuota tutta la cache (bulk, richiede conferma)
§ PATCH /admin/vehicle-registry/{plate}/refresh – forza re-fetch da API esterna
o Widget API Usage (pannello admin):
§ ricercheTargaRimanenti Motornet (ultimo valore da api_usage_log)
§ cache hit rate % (chiamate evase da DB vs chiamate reali)
§ grafico storico chiamate API nel tempo
· Storico: 5 anni per valutazioni perse e perizie, illimitato per vinte
o Policy di retention configurabile
· Rate limiting API (slowapi)
· Logging strutturato (structlog) + health endpoint dettagliato
Frontend
· Campanella notifiche in header (badge contatore, dropdown lista)
· Pagina preferenze notifiche utente
· Pannello admin (solo ruolo admin):
o Tabella utenti con azioni
o Form configurazione soglie + TTL cache
o Log import CSV con stato e timestamp
o Sezione Vehicle Registry:
§ Tabella targhe in cache (colonne: targa, source, data fetch, scadenza, versione selezionata)
§ Pulsanti: cancella singola, refresh forzato
§ Pulsante "Svuota tutta la cache" con modal di conferma
o Widget monitoraggio API:
§ Card "Ricerche Motornet rimanenti" (valore live da ultimo log)
§ Card "Cache hit rate" con percentuale e contatori
§ Mini-grafico chiamate API ultimi 30gg
· Gestione errori globale (toast/banner per errori API)
· Loading skeleton su tutte le liste
· Responsive: tablet-friendly (operatività in reparto)
No results
Try adjusting your search filters.