Skip to main content

Analisi Funzionale - Versione 1.0

Sintesi esecutiva

Questa versione definisce i requisiti iniziali per una libreria Angular riusabile: componenti UI wrapper con doppio supporto PrimeNG/Bootstrap, servizi di utilità (storage, log, form), componente AutoForm, auth opzionale con Azure Entra External ID e componenti avanzati tra cui tabella “server-driven” e menu laterale responsive.

Domande di chiarimento (max 10)

  1. Quale nome vuoi dare alla libreria (nome npm + namespace, es. @org/ui-kit)?
  2. Quali versioni di Angular devono essere supportate (minimo target)?
  3. PrimeNG e Bootstrap: vuoi supportare solo styled (CSS) o anche unstyled/design tokens? Come gestire temi?
  4. AutoForm: lo schema JSON è custom o vuoi compatibilità con JSON Schema (draft-07/2020-12)?
  5. Tabella: export deve supportare CSV/XLSX/PDF o solo CSV?
  6. Auth: preferisci basarti su MSAL Angular o un’integrazione astratta (con servizi pronti e feature flag)?
  7. Storage: serve TTL e/o cifratura? Serve migrazione/versioning per IndexedDB?
  8. i18n: vuoi supporto multi-lingua per label/errori (strumento preferito)?
  9. Accessibility: target WCAG 2.1 AA è requisito bloccante per v1?
  10. Vuoi un “grid system” astratto o delega al provider (Bootstrap grid)?

Indice

Contesto & Stakeholder

Vedi docs/overview.md.

Ambito

  • Selezione UI provider (PrimeNG/Bootstrap) a livello progetto.
  • Set di componenti base e avanzati come wrapper.
  • Servizi di utilità: storage, logging, supporto form.
  • AutoForm (generazione form da JSON).
  • Auth Azure Entra External ID (opzionale/feature flag).
  • Componenti avanzati: tabella server-driven e menu laterale responsive.
  • Documentazione dettagliata in Markdown.

Fuori ambito (v1.0)

  • Design system completo (token/branding) per più brand senza input di UX.
  • Implementazione di API backend o contratti specifici di dominio.
  • Migrazioni/adapter per UI provider diversi da PrimeNG/Bootstrap.

Requisiti non funzionali (NFR)

CodiceCategoriaCriterio misurabileSoglia/TargetNote
NFR-01CompatibilitàVersione minima Angular supportataApertoDa confermare (Q2)
NFR-02PackagingBuild ESM + tree-shakingVerificabile in app consumerNessuna dipendenza runtime superflua
NFR-03QualitàCopertura unit test (core servizi + componenti critici)≥ 70% linee sul coreSoglia iniziale
NFR-04AccessibilitàConformità controlli principaliTarget WCAG 2.1 AADa confermare (Q9)
NFR-05PerformanceTable server-side su dataset grandeNessun blocco UI percepibileDipende da provider
NFR-06SicurezzaNessun segreto hardcoded; auth attivabileObbligatorioLogging non espone PII by default
NFR-07DocumentazioneEsempi completi per componenti principali≥ 1 esempio per componentev1.0: subset critico

Regole di business (cross-cutting)

  • Un progetto deve poter scegliere un solo UI provider attivo alla volta (PrimeNG oppure Bootstrap).
  • I componenti wrapper devono offrire API stabile e coerente tra provider.
  • Le feature opzionali (es. Auth) devono essere disattivate di default e attivabili tramite configurazione.

Modello dati & integrazioni (alto livello)

  • AutoForm: input JSON (schema) + modello dati iniziale (opzionale).
  • Table server-side: interfaccia astratta per fetch dati paginati/ordinati/filtrati.
  • Auth: integrazione verso Azure Entra External ID tramite provider configurabile.

Flussi di processo (alto livello)

  1. Consumer configura la libreria (provider UI, logging, feature flags).
  2. Consumer usa componenti wrapper minimizzando dipendenze dirette dal provider nel codice applicativo.
  3. Servizi (storage/log/form/auth) sono disponibili via DI e sostituibili/estendibili.