diff --git a/architettura.md b/architettura.md index 63a3e49..ee009b9 100644 --- a/architettura.md +++ b/architettura.md @@ -1,7 +1,7 @@ # Architettura del software **Progetto:** Gestionale per enti del Terzo Settore **Documento:** `architettura.md` -**Versione:** 0.4.3 · **Data:** 27/09/2026 · **Stato:** Bozza, proposta da confermare; uso interno +**Versione:** 0.4.4 · **Data:** 27/09/2026 · **Stato:** Bozza, proposta da confermare; uso interno **Allineato a:** `richiesta.md` v0.4 · **Schema di versione:** vedi `indice-documenti.md` **Cosa contiene:** come si costruisce il software: forma dell'applicazione, componenti, dati, permessi, stack, sicurezza, infrastruttura e rilascio. I requisiti non si ripetono: si citano con il codice. Servizi e prezzi di riferimento sono in `costi-ricorrenti.md`, le scelte ancora aperte (B) in `domande-cliente.md` §3, l'ordine di realizzazione in `blueprint.md`. @@ -170,7 +170,7 @@ Per ogni misura: cosa protegge e da quale requisito nasce. ⚖️ Le misure fina | Test con dati finti ed email intercettate | Persone reali durante i test | RT-10 | | Registro delle operazioni (§3) | Valore probatorio, controllo degli accessi | RT-9 | | 🔸 Misure aggiuntive per i possibili dati art. 9 | Categorie particolari di dati | ⚖️ C2 | -| Aggiornamenti di sicurezza di sistema e librerie | Vulnerabilità note | RT-10; ore di manutenzione (D11) | +| Aggiornamenti di sicurezza di sistema e librerie | Vulnerabilità note | RT-10; dal secondo anno rientra nel contratto di manutenzione separato (D11), termini e ore non ancora decisi | --- @@ -263,10 +263,11 @@ Per evitare aggiunte non richieste durante lo sviluppo: | 0.4.1 | 27/09/2026 | `richiesta.md` v0.4 | Verifica sulle fonti: la conservazione digitale è richiesta da [D], quindi Q9 decide solo se va fatta a norma (prima sembrava facoltativa); il CSV nell'importazione è segnato 🔸 perché le fonti citano solo Excel e PDF | | 0.4.2 | 27/09/2026 | `richiesta.md` v0.4 | Nome di M3 allineato a `richiesta.md` v0.4.4 ("Anagrafica stakeholder", da [X]) | | 0.4.3 | 27/09/2026 | `richiesta.md` v0.4 | §1: il vincolo "un solo sviluppatore" non indica più chi segue la manutenzione dal secondo anno (richiesta di Davide) | +| 0.4.4 | 27/09/2026 | `richiesta.md` v0.4 | §7: tolta l'indicazione che D11 decida le "ore di manutenzione" dal secondo anno; D11 decide solo che la gestione tecnica resta a Davide con contratto separato, non termini e ore, ancora aperti | --- ## Stato -- **Fase corrente:** analisi dei requisiti; architettura in bozza v0.4.3. +- **Fase corrente:** analisi dei requisiti; architettura in bozza v0.4.4. - **Decisioni prese:** D12 (PostgreSQL, migrazioni, row-level security); firma simulata in sviluppo (`costi-ricorrenti.md`). Il resto è proposta 🔸. - **Prossimo passo:** Davide sceglie lo stack (B1.10) e conferma le proposte 🔸; quelle approvate diventano decisioni in `richiesta.md` §7 (versione 0.5, con allineamento dei documenti derivati). diff --git a/costi-ricorrenti.md b/costi-ricorrenti.md index 65986ab..679284c 100644 --- a/costi-ricorrenti.md +++ b/costi-ricorrenti.md @@ -1,7 +1,7 @@ # Costi ricorrenti del primo anno **Progetto:** Gestionale per enti del Terzo Settore **Documento:** `costi-ricorrenti.md` -**Versione:** 0.4.4 · **Data:** 27/09/2026 · **Stato:** Bozza, da validare +**Versione:** 0.4.5 · **Data:** 27/09/2026 · **Stato:** Bozza, da validare **Allineato a:** `richiesta.md` v0.4 · **Schema di versione:** vedi `indice-documenti.md` --- @@ -30,14 +30,14 @@ Abbonamenti e servizi a pagamento ricorrente per **12 mesi**, divisi in: | Sviluppo | 90,00 € | 1.080,00 € | | Test | 5,99 € | 71,88 € | | Produzione | 13,89 € + dominio 11,99 €/anno | 178,65 € | -| **Costi fissi** | | **1.330,53 €** | -| **Costi variabili** | formule al §4 | 376,00 € nello scenario minimo, 1.902,82 € nell'alto, che non è un massimo (§5) | +| **Spese certe** (§3) | | **1.330,53 €** | +| **Spese da quantificare** (§4) | formule al §4 | 376,00 € nello scenario minimo, 1.902,82 € nell'alto, che non è un massimo (§5) | La voce variabile più pesante è la **firma elettronica**: senza le risposte a Q4 (tipo di firma) e Q1 (numero di enti) il totale non si chiude. --- -## 3. Costi fissi +## 3. Spese certe | Ambiente | Voce | Servizio di riferimento | Al mese | 12 mesi | Perché | Fonte | |---|---|---|---|---|---|---| @@ -70,7 +70,9 @@ La voce variabile più pesante è la **firma elettronica**: senza le risposte a --- -## 4. Costi variabili: formule +## 4. Spese da quantificare + +Richieste dal progetto, ma il cui importo non si può ancora scrivere in euro. 🔸 Si dividono in due gruppi: §4.1 quelle legate a un requisito e a una risposta del cliente ancora mancante (Qn), §4.2 quelle facoltative, attivabili con una scelta di Davide indipendente dal cliente. La divisione è un raggruppamento per chiarezza, non cambia nessuna cifra. **Simboli:** - **E** = enti gestiti (Q1); @@ -80,30 +82,39 @@ La voce variabile più pesante è la **firma elettronica**: senza le risposte a - **G** = GB conservati per archivio (arrotondati al GB intero, minimo 1); - **D** = GB di spazio disco aggiuntivo. +### 4.1 Legate a un requisito, importo aperto in attesa del cliente + | Voce | Dipende da | Formula (costo annuo) | Fonte | |---|---|---|---| | Firma semplice (RT-5) | ⏳ Q4, F | **1.248 €** se F ≤ 500 · **1.248 € + 2 € × (F − 500)** se F > 500 | [Youtrust API Plus](https://youtrust.com/pricing-api) ① | | Firma qualificata (RT-5) | ⏳ Q4 | firma semplice **+ 10 €** per firma qualificata (pacchetti annuali da almeno 10) oppure **+ 15 €** l'una (da 1 a 9, mensile) | [Youtrust, piani](https://youtrust.com/pricing-application) ② | | Firma avanzata (RT-5) | ⏳ Q4 | solo su preventivo | [Youtrust](https://youtrust.com/pricing-api) · [Confirmo](https://www.confirmo.it/prezzi-firma-elettronica-api-confirmo) | -| Marche temporali via API (RT-6) | M | lotti: **20 = 6 €** · **100 = 16 €** · **250 = 37,50 €** · **500 = 70 €**; si compra la combinazione più economica. Esempi: M = 120 → 22 €; M = 800 → 118 € | [Openapi, lotti Aruba](https://openapi.com/products/aruba-time-stamps) · [Openapi](https://openapi.com/products/timestamping-services) ③ | +| Marche temporali via API (RT-6) | M (volume legato a Q1) | lotti: **20 = 6 €** · **100 = 16 €** · **250 = 37,50 €** · **500 = 70 €**; si compra la combinazione più economica. Esempi: M = 120 → 22 €; M = 800 → 118 € | [Openapi, lotti Aruba](https://openapi.com/products/aruba-time-stamps) · [Openapi](https://openapi.com/products/timestamping-services) ③ | | Conservazione a norma (RT-6) | ⏳ Q9, A, G | **0 €** se non serve · **A × [49,90 € + 25 € × (G − 1)]** se serve. Esempi: 1 archivio da 3 GB → 99,90 €; 200 archivi da 1 GB → 9.980 € | [Aruba DocFly](https://www.pec.it/docfly-conservazione-digitale-a-norma.aspx) ④ | -| Email senza logo | volume (Q1), scelta sul logo | **0 €** con il piano gratuito (con logo) · **85,03 €** con Starter annuale ($96,96), 94,71 € se mensile ($9/mese); fino a 5.000 email al mese | [Brevo](https://www.brevo.com/pricing/) · [SMTPedia](https://smtpedia.com/brevo-pricing/) ⑤ | -| Spazio disco aggiuntivo | D | **0,6864 € × D** (0,0572 € per GB al mese). Esempi: D = 20 → 13,73 €; D = 50 → 34,32 € | [CostGoat](https://costgoat.com/pricing/hetzner) | -| Fatturazione elettronica | ⏳ Q5 | non quotata | — ⑥ | -| Monitoraggio errori con più utenti | più persone sul software | **273,61 €** ($26/mese) | [Sentry](https://sentry.io/pricing/) | -| Monitoraggio disponibilità a pagamento | rinuncia a Uptime Kuma | **126,28 €** ($12/mese, annuale) | [UptimeRobot](https://uptimerobot.com/pricing/) ⑦ | - -**Totale annuo = 1.330,53 € + firma + marche + conservazione + email + disco** [+ fatturazione elettronica] [+ monitoraggio a pagamento]. +| Fatturazione elettronica | ⏳ Q5 | non quotata | — ⑤ | **Note:** 1. 104 €/mese, 500 firme semplici l'anno incluse. Soglia: 500 firme ≈ 166 enti con 3 documenti. Alternativa: Confirmo da 30 €/mese (360 €/anno), ma firme incluse e costo per firma non sono pubblicati: serve un preventivo. 2. 🔸 Da confermare se la firma qualificata si somma al piano API o lo sostituisce. 3. Al server del fornitore si invia solo l'impronta del documento, quindi nessun dato personale esce. Il pacchetto Aruba da 19,90 €/100 ([Ufficio Camerale](https://www.ufficiocamerale.it/marche-temporali/100-marche-temporali-aruba)) si usa solo a mano con ArubaSign, non dal software. 🔸 Verificare con Openapi costi di servizio per richiesta e validità dei lotti. 4. 49,90 €/anno con 1 GB, 25 €/GB in più; un servizio per partita IVA. ⚠️ Senza API: caricamento manuale (§6.4). Conservatori con API (es. [Namirial](https://partner.namirial.it/conservazione-sostitutiva/)): solo su preventivo. -5. 🔸 Consigliato in produzione: le circolari con il logo di un altro marchio non sono professionali. Oltre 5.000 email al mese: piano superiore, da verificare. ⚠️ I prezzi Brevo in euro sono incoerenti tra le fonti, quindi si usa il listino ufficiale in dollari. -6. Se serve, integrazione con un servizio esistente (B1.5). +5. Se serve, integrazione con un servizio esistente (B1.5). + +### 4.2 Facoltative, scelta indipendente dal cliente + +| Voce | Dipende da | Formula (costo annuo) | Fonte | +|---|---|---|---| +| Email senza logo | volume (Q1), scelta sul logo | **0 €** con il piano gratuito (con logo) · **85,03 €** con Starter annuale ($96,96), 94,71 € se mensile ($9/mese); fino a 5.000 email al mese | [Brevo](https://www.brevo.com/pricing/) · [SMTPedia](https://smtpedia.com/brevo-pricing/) ⑥ | +| Spazio disco aggiuntivo | D | **0,6864 € × D** (0,0572 € per GB al mese). Esempi: D = 20 → 13,73 €; D = 50 → 34,32 € | [CostGoat](https://costgoat.com/pricing/hetzner) | +| Monitoraggio errori con più utenti | più persone sul software | **273,61 €** ($26/mese) | [Sentry](https://sentry.io/pricing/) | +| Monitoraggio disponibilità a pagamento | rinuncia a Uptime Kuma | **126,28 €** ($12/mese, annuale) | [UptimeRobot](https://uptimerobot.com/pricing/) ⑦ | + +**Note:** +6. 🔸 Consigliato in produzione: le circolari con il logo di un altro marchio non sono professionali. Oltre 5.000 email al mese: piano superiore, da verificare. ⚠️ I prezzi Brevo in euro sono incoerenti tra le fonti, quindi si usa il listino ufficiale in dollari. 7. Il piano gratuito di UptimeRobot è indicato "per progetti hobby e non profit": per un servizio professionale meglio non contarci. +**Totale annuo = 1.330,53 € (§3) + §4.1 (firma + marche + conservazione [+ fatturazione elettronica]) + §4.2 se attivate (email + disco [+ monitoraggio a pagamento]).** + --- ## 5. Scenari @@ -112,7 +123,7 @@ La voce variabile più pesante è la **firma elettronica**: senza le risposte a | Voce | Minimo | Alto | |---|---|---| -| Costi fissi | 1.330,53 € | 1.330,53 € | +| Spese certe | 1.330,53 € | 1.330,53 € | | Firma | 360,00 € (Confirmo base; firme incluse da verificare) | 1.248,00 € (F ≤ 500) | | Marche temporali | 16,00 € (M ≤ 100) | 70,00 € (M ≤ 500) | | Conservazione | 0 € | 99,90 € (A = 1, G = 3) | @@ -128,7 +139,7 @@ La voce variabile più pesante è la **firma elettronica**: senza le risposte a | Voce | 30 enti | 200 enti | |---|---|---| -| Costi fissi | 1.330,53 € | 1.330,53 € | +| Spese certe | 1.330,53 € | 1.330,53 € | | Firma | F = 90 → 1.248,00 € | F = 600 → 1.448,00 € | | Marche | M = 120 → 22,00 € | M = 800 → 118,00 € | | Conservazione | non serve → 0 € | A = 1, G = 3 → 99,90 € | @@ -206,11 +217,12 @@ Costi di Davide come professionista, da valutare con il commercialista (alcuni p | 0.4.2 | 27/09/2026 | `richiesta.md` v0.4 | Prezzi ricontrollati; IPv4; marche via API; monitoraggio della disponibilità; spazio disco; verifica della copertura dei servizi | | 0.4.3 | 27/09/2026 | `richiesta.md` v0.4 | Solo euro (cambio BCE del 25/09/2026); voci variabili come formule; esempi per 30 e 200 enti | | 0.4.4 | 27/09/2026 | `richiesta.md` v0.4 | Firma in test verificata: sandbox gratuita solo 40 giorni, quindi firma simulata durante lo sviluppo. Documento riscritto in forma lineare: link della fonte accanto a ogni prezzo (tolta la tabella separata delle fonti); costi fissi di tutti gli ambienti in una tabella; tolte le ripetizioni (domande che cambiano i costi, differenze rispetto alla v0.4.1, dettagli ripetuti tra sezioni). Nessuna cifra cambiata | +| 0.4.5 | 27/09/2026 | `richiesta.md` v0.4 | §3 rinominato "Spese certe"; §4 riorganizzato in 4.1 "Legate a un requisito, importo aperto in attesa del cliente" (firma, marche, conservazione, fatturazione elettronica) e 4.2 "Facoltative, scelta indipendente dal cliente" (email, disco, monitoraggio). Numeri di sezione (§3, §4, §6.2) e cifre invariati: riferimenti da `architettura.md` e `blueprint.md` restano validi | --- ## Stato -- **Fase corrente:** analisi dei requisiti, costi v0.4.4. +- **Fase corrente:** analisi dei requisiti, costi v0.4.5. - **Decisioni prese:** D10, D11; firma simulata durante lo sviluppo, sandbox del fornitore solo negli ultimi 40 giorni. - **Prossimo passo:** - risposte del cliente a Q1, Q4, Q9 e Q23, poi ricalcolo con le formule del §4; diff --git a/indice-documenti.md b/indice-documenti.md index 3d794be..e08d976 100644 --- a/indice-documenti.md +++ b/indice-documenti.md @@ -28,8 +28,8 @@ Ogni informazione sta in **un solo documento**; gli altri la richiamano con il s | `richiesta.md` | **Documento base.** Cosa deve fare il software: moduli, requisiti (RF, RT), dati personali, differenze tra le fonti, decisioni (D) | **0.4.5** | Bozza | Fonti del 25/09/2026 | | `workflow.md` | Processi del software passo per passo (W), con i riferimenti ai requisiti | **0.4.3** | Bozza | `richiesta.md` v0.4 | | `domande-cliente.md` | Tutto ciò che è aperto: domande essenziali per il cliente (Q), cose da comunicare, verifiche con legale e commercialista (C), scelte in sospeso (B), rischi | **0.4.6** | Bozza | `richiesta.md` v0.4 | -| `costi-ricorrenti.md` | Costi ricorrenti di sviluppo, test e produzione: prezzi con fonte, formule delle voci variabili, scenari, effetti economici delle decisioni | **0.4.4** | Bozza | `richiesta.md` v0.4 | -| `architettura.md` | Come si costruisce il software: forma dell'applicazione, componenti, dati, permessi, confronto sugli stack, sicurezza, infrastruttura e rilascio (uso interno) | **0.4.3** | Bozza | `richiesta.md` v0.4 | +| `costi-ricorrenti.md` | Costi ricorrenti di sviluppo, test e produzione: prezzi con fonte, spese certe e da quantificare, scenari, effetti economici delle decisioni | **0.4.5** | Bozza | `richiesta.md` v0.4 | +| `architettura.md` | Come si costruisce il software: forma dell'applicazione, componenti, dati, permessi, confronto sugli stack, sicurezza, infrastruttura e rilascio (uso interno) | **0.4.4** | Bozza | `richiesta.md` v0.4 | | `blueprint.md` | Come si organizza la realizzazione: prerequisiti, pacchetti di lavoro (P) con dipendenze, tappe di collaudo (T), rischi di pianificazione; base per la stima delle ore (uso interno) | **0.4.2** | Bozza | `richiesta.md` v0.4 | | `indice-documenti.md` | Versioni in vigore e schema di versione | — | — | — | | `CLAUDE.md` | Istruzioni per Claude: regole, convenzioni, procedura di aggiornamento | — | In uso | Non segue lo schema di versione | @@ -127,3 +127,6 @@ La versione si legge nell'intestazione e in questo indice. Quando un documento v | 27/09/2026 | Domande per il cliente: la proposta `invii/2026-09-27_proposta_v0.4.csv` (mai inviata) è eliminata e sostituita da `invii/2026-09-27_domande-cliente_v0.4.md` (domande e comunicazioni, senza riepilogo delle funzioni). `richiesta.md` 0.4.4 (Q25, Q26, nomi allineati a [X] per D13, rimando alla legenda corretto), `domande-cliente.md` 0.4.6, `architettura.md` e `blueprint.md` 0.4.2. `CLAUDE.md` aggiornato (esempio della cartella `invii/`) | | 27/09/2026 | `architettura.md` a v0.4.3: tolto dal vincolo "un solo sviluppatore" il riferimento alla manutenzione dal secondo anno | | 27/09/2026 | Verifica di allineamento: `richiesta.md` 0.4.5 (stato di M2 con Q25), `workflow.md` 0.4.3 (W1 passo 6 allineato ad `architettura.md`: link di attivazione) | +| 27/09/2026 | `costi-ricorrenti.md` a v0.4.5: le voci variabili (§4) riorganizzate in "legate a un requisito, in attesa del cliente" e "facoltative"; §3 rinominato "Spese certe". Solo forma, nessuna cifra cambiata | +| 27/09/2026 | `architettura.md` a v0.4.4: tolta l'indicazione (§7) che D11 avesse deciso le "ore di manutenzione" dal secondo anno; D11 decide solo che la gestione tecnica resta a Davide con contratto separato, non i termini né le ore | +| 27/09/2026 | `invii/2026-09-27_domande-cliente_v0.4.md` non ancora inviato: §2 e §3 riformulati in tono più formale e sintetico, nessun contenuto o codice cambiato | diff --git a/invii/2026-09-27_domande-cliente_v0.4.md b/invii/2026-09-27_domande-cliente_v0.4.md index e1b0a0e..7bc069d 100644 --- a/invii/2026-09-27_domande-cliente_v0.4.md +++ b/invii/2026-09-27_domande-cliente_v0.4.md @@ -27,15 +27,15 @@ Ogni risposta cambia in modo sensibile tempi o costi, oppure chiarisce un punto ### 2.1 Punti già decisi -- **Word ed Excel:** dove dicono cose diverse vale l'Excel; ciò che compare in uno solo dei due è incluso. -- **Dati separati:** ogni ente vede solo i propri dati; lo studio vede quelli di tutti gli enti. -- **Utilizzo:** software web da usare dal computer, senza app per smartphone; dati conservati nell'Unione Europea e trattati nel rispetto del GDPR. -- **Dati esistenti:** il software parte vuoto; soci e volontari già presenti si inseriscono a mano. Un'importazione da Excel si può quotare a parte. -- **Servizi (server, email, firma, backup):** il primo anno sono a mio carico e compresi nel preventivo; dal secondo anno passano a vostro nome, con un contratto di manutenzione. +- **Word ed Excel:** in caso di discordanza prevale l'Excel; quanto presente in un solo documento è comunque incluso. +- **Dati separati:** ogni ente accede esclusivamente ai propri dati; lo studio ha visibilità su tutti gli enti. +- **Utilizzo:** applicazione web per computer, senza versione per smartphone; dati conservati nell'Unione Europea e trattati nel rispetto del GDPR. +- **Dati esistenti:** il software viene attivato senza dati preesistenti; soci e volontari già presenti vanno inseriti manualmente. Un'importazione automatica da Excel può essere quotata separatamente. +- **Servizi (server, email, firma, backup):** a carico dello scrivente e inclusi nel preventivo per il primo anno; dal secondo anno passano a vostro nome, nell'ambito di un contratto di manutenzione. -### 2.2 Funzioni che ho completato io +### 2.2 Funzioni definite in autonomia -Nei documenti non sono descritte nel dettaglio; le ho impostate così e le verificherete durante il collaudo. Se qualcosa non va, ditemelo anche prima. +Non descritte nel dettaglio nei documenti ricevuti; sono state impostate come segue e saranno verificate in fase di collaudo. Eventuali osservazioni possono essere segnalate anche prima di tale fase. | Area | Come funziona | |---|---| @@ -56,7 +56,7 @@ Nei documenti non sono descritte nel dettaglio; le ho impostate così e le verif ## 3. Materiali da parte vostra -Servono per sviluppare le funzioni indicate. Vi chiedo di indicare una data di consegna: la inseriremo nel contratto, perché un ritardo sposta i tempi di consegna. +Necessari per lo sviluppo delle funzioni indicate. Si richiede di indicare una data di consegna, da riportare nel contratto: un ritardo comporta uno slittamento dei tempi di realizzazione. | Materiale | Serve per | Entro il | |---|---|---|