# 05 — Requisiti di prodotto (bozza)

> Bozza da validare con Paolo e con l'organizzazione.

## ⭐ Principio cardine: motore eventi GENERICO e configurabile
Il gestionale **non** deve modellare solo le Bolge attuali. Deve essere un **motore di eventi
generico**: l'admin può creare **qualunque tipo di evento** (Bolgia, Torneo Generale, Duello, Palio,
Supercoppa, o formati nuovi non ancora immaginati) configurandone liberamente i parametri (numero
giocatori, dimensione/numero gironi, composizione partite, tabella punti, promo/retro, fasi).
- Conseguenza pratica: se oggi l'organizzazione dice "niente Torneo Generale" ma tra un anno lo
  rivuole, **nessuna modifica al codice** — basta creare l'evento con la sua configurazione.
- La "formula" indecisa ([`04-riforma-formula.md`](04-riforma-formula.md)) diventa **dato di
  configurazione**, non logica hardcoded → **smette di essere un vero blocco architetturale**.
- Base di riferimento per gli archetipi da supportare: **tutti i tipi di evento storici** documentati
  in [`02-dominio-tornei.md`](02-dominio-tornei.md).

## Ruoli (attori)
- **Visitatore** (non autenticato): consulta la vetrina pubblica.
- **Giocatore** (registrato): profilo, partite, calendario, classifiche, storico personale, notifiche.
- **Admin / Organizzatore**: gestisce eventi, gironi, partite, risultati, sanzioni, comunicazioni.
- *(eventuale)* **Super-admin**: gestione utenti/ruoli e configurazione.

## A) Vetrina pubblica (multi-pagina) — *procedibile*
- **Home**: presentazione, evento/stagione in corso, ultime notizie, link community.
- **Eventi**: calendario delle competizioni (Bolge, Duello, Palio, Supercoppa) con stato.
- **Classifiche**: classifiche live delle Bolge in corso; ranking globale.
- **Albo d'oro**: vincitori storici per competizione (dati già su Trello + workbook).
- **Regolamento**: versione corrente leggibile (da [`../data/sorgenti/regolamento-v1.5.md`](../data/sorgenti/regolamento-v1.5.md)).
- **Community/Contatti**: link a Telegram, goblins.net, contenuti TdG.
- Requisiti trasversali: responsive, SEO base, veloce, design moderno/accattivante.

## B) Portale gestionale (autenticato)

### Giocatore — *procedibile*
- **Registrazione autonoma** (email + password; nick TdG + nome app TTA).
- **Profilo**: dati, palmarès, serie/ranking attuale.
- **Le mie partite**: partite in corso e da giocare, con avversari e scadenze.
- **Calendario** personale degli incontri.
- **Storico**: tornei passati, risultati, andamento ranking nel tempo.
- **Notifiche**: email (o push se PWA) all'avvio di ogni partita; eventuali reminder.

### Admin — *configurabile (motore generico)*
- **Gestione eventi/stagioni**: creazione di **qualunque** evento (Bolgia/Generale/Duello/Palio/
  Supercoppa/custom) scegliendo un **template di formato** + parametri, o full-custom; apertura/chiusura iscrizioni.
- **Iscrizioni**: invito massivo, accettazioni, gestione nuovi dal forum.
- **Generazione gironi/fasi** + **seeding** dal ranking — dimensione e numero gironi sono
  **parametri**, non valori fissi (13/7/4 = configurazione).
- **Generazione calendario partite** — composizione partite (quante a 2/3/4 giocatori) **configurabile** per formato.
- **Inserimento risultati** e calcolo automatico di **classifica + spareggi** (tabella punti configurabile).
- **Promozioni/retrocessioni** automatiche a fine stagione secondo le **regole configurate** dell'evento.
- **Sanzioni**: timeout, ammonizioni, squalifiche, penalizzazioni ranking.
- **Comunicazioni**: annunci/notizie pubblicate sulla vetrina.

## Requisiti non funzionali / vincoli
- **Pro bono** → costi di hosting/manutenzione bassi; soluzione mantenibile nel tempo.
- **Migrazione** dello storico dal workbook xlsx (26 fogli) e dell'albo d'oro.
- **Notifiche email** affidabili; predisposizione a **PWA + push**.
- **GDPR**: registrazione utenti → privacy policy, consensi, gestione dati personali.
- Multi-admin con audit minimo delle azioni.

## Fuori scope (per ora)
- App native (si valuta PWA).
- Integrazione automatica con l'app CGE (da verificare se esiste un dato esportabile).
