• 8 Open
    3 Closed
    Updated 2026-04-28 17:27:42 +02:00
    No due date

    Backend:

    · Setup repo Git (accesso Cliente dalla creazione)
    · docker-compose.yml: PostgreSQL, Redis, MinIO, backend, frontend
    · Struttura FastAPI: router, middleware CORS, error handling globale
    · Alembic: migration iniziale con tutte le tabelle core
    · Auth: JWT login/refresh, hashing password (bcrypt), RBAC middleware
    · GET /api/health con check DB e Redis
    · Seed dati: utenti demo per ogni ruolo

    Frontend:

    · Vite + React 18 + TypeScript + TailwindCSS + shadcn/ui
    · Axios client con interceptor (refresh token automatico)
    · React Query setup (cache, invalidation strategy)
    · Layout base: sidebar navigazione per ruolo, header, breadcrumb
    · Pagina Login (form + gestione errori)
    · Route guard per ruolo
    · Pagina 404 / Unauthorized

  • 9 Open
    0 Closed
    Updated 2026-04-28 15:19:53 +02:00
    No due date

    Backend

    · POST /valuations – creazione richiesta con validazione campi obbligatori
    · GET /valuations – lista con filtri (targa, stato, priorità) + paginazione
    · GET /valuations/{id} – dettaglio + storico
    · Upload foto (MinIO): POST /valuations/{id}/photos
    · POST /valuations/{id}/comments – solo commenti (dato congelato)
    · Integrazione MotorNet (o fallback): GET /vehicles/lookup?plate=XX000XX
    o lookup targa → marca, modello, versione, anno immatricolazione
    o gestione versioni multiple con selezione manuale
    · Logica "freeze": dopo inserimento, dati sola lettura per venditore
    · Visibilità per gruppo: venditore vede solo valutazioni del proprio gruppo

    Frontend

    · Form inserimento richiesta valutazione
    o Targa → autocomplete dati veicolo (MotorNet)
    o Selezione versione da lista
    o Campi: KM, regime ritiro, data rientro, alimentazione interesse, priorità, note
    o Upload foto drag-and-drop con preview
    · Lista valutazioni venditore (card + filtri)
    · Dettaglio valutazione: readonly dopo invio, sezione commenti
    · Visualizzazione "scheda veicolo" in stile Eurotax (listino nuovo, rettifiche km)

  • 5 Open
    0 Closed
    Updated 2026-04-28 15:21:13 +02:00
    No due date

    Backend

    · Coda FIFO + priorità: query ordinata per (priority_rank, created_at)
    o priority_rank: Contratto=1, Preventivo=2, Valutazione=3
    · PATCH /valuations/{id} – inserimento valore finale, modifica parametri tecnici
    · GET /valuations/{id}/history – log modifiche (solo valutatori)
    · POST /valuations/{id}/market-value – trigger on-demand Eurotax API
    · Integrazione Portale dell'Automobilista (TrOCR CAPTCHA se necessario, vedi DealerEase)
    · Import CSV Infinity (endpoint admin): stock, costi medi, margini, prezzi, giacenza
    o POST /admin/import/stock
    o Parser CSV configurabile (separatore, colonne mappate)
    o Storicizzazione per modello
    · GET /vehicles/{model}/stats – aggregati da CSV importati
    · Email automatica a venditore al completamento valutazione (template HTML)
    o con link diretto alla valutazione
    · GET /valuations/previous?plate=XX000XX – storico valutazioni su stessa targa

    Frontend

    · Dashboard valutatore: coda di lavoro ordinata, indicatori priorità colorati
    · Ricerca avanzata: targa, venditore, marca, modello, stato, data
    · Dettaglio valutazione valutatore:
    o Pannello dati veicolo + dati mercato
    o Sezione dati interni (stock, costo medio ripristino, giacenza, margine, prezzo medio)
    o Pulsante "Richiedi valore mercato" (Eurotax on-demand)
    o Form inserimento valore finale con note
    o Storico modifiche (accordion o timeline)
    · Badge storico valutazioni stessa targa
    · Visualizzazione verifica revisioni (Portale Automobilista)

  • 0 Open
    0 Closed
    Updated 2026-04-28 14:36:21 +02:00
    No due date

    Backend

    · Import CSV contratti da Infinity: POST /admin/import/contracts
    · POST /valuations/{id}/contract – abbinamento (ruolo backoffice/valutatore)
    o input: azienda, area, numero contratto, anno
    o lookup nel CSV importato → restituzione targa + cliente per conferma
    · Stato won sulla valutazione dopo abbinamento confermato
    · Alert giornaliero (Celery beat):
    o se data_richiesta_consegna > data_previsto_ritiro + X_giorni → alert email valutatore
    o X configurabile per admin
    · Check giornaliero: contratti con permuta senza valutazione a sistema → report
    · GET /dashboard/valuations – KPI: totale valutazioni, vinte, filtro azienda/sede/venditore

    Frontend

    · Modal abbinamento contratto con step conferma (targa + cliente)
    · Badge "Vinta" su valutazione abbinata
    · Dashboard semplice (ruolo valutatore/admin):
    o Contatori: tot valutazioni, vinte, in attesa
    o Filtri: azienda, sede, venditore, periodo
    o Grafico trend mensile (recharts)

  • 0 Open
    0 Closed
    Updated 2026-04-28 14:37:02 +02:00
    No due date

    Backend

    · CRUD repairs: POST /repairs, GET /repairs, PATCH /repairs/{id}
    · Upload PDF preventivo: POST /repairs/{id}/documents
    · Commenti con @mention: POST /repairs/{id}/comments
    o Notify via email gli utenti menzionati
    · In fase di creazione: recupero automatico da CSV (marca, modello, data imm., km, valore perizia preventiva e consuntiva) dalla targa
    · Ruolo approvatore: PATCH /repairs/{id} con campi aggiuntivi (destinazione, stato offerta, subtotale finale)
    · Obbligo subtotale in chiusura (accettato/rifiutato) – validazione server-side
    · Task Celery giornaliero:
    o Aggiornamento dati perizia da CSV Infinity
    o Check: se targa non ha perizia su Infinity → alert approvatore
    o Alert se preventivo approvato supera X% perizia consuntiva
    o Alert se preventivo approvato supera X% perizia preventiva
    o Soglie X configurabili da admin
    · GET /dashboard/repairs – riepilogo costi (sede, marca, venditore, tipologia lavorazione)
    · GET /repairs/export – export CSV/Excel per BI esterno
    · Visibilità per gruppo di appartenenza

  • 0 Open
    0 Closed
    Updated 2026-04-28 14:37:32 +02:00
    No due date

    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)

  • 0 Open
    0 Closed
    Updated 2026-04-28 14:37:17 +02:00
    No due date

    Backend

    · Test unitari (pytest): services, business logic, alert thresholds
    · Test integrazione: flusso completo venditore→valutatore→backoffice
    · Test import CSV con file reali forniti da GMG
    · Configurazione ambiente staging (clone prod)

    Frontend

    · Test E2E (Playwright o Cypress): flusso principale per ogni ruolo
    · Test cross-browser: Chrome, Edge, Firefox, Safari