# MathLesson — Product Backlog

**Generated by:** AIRchetipo Backlog Skill  
**Date:** 2026-05-08  
**Source PRD:** docs/PRD.md  
**Version:** 1.0

---

## Backlog Summary

| Epic | Title | Stories | Story Points | Scope |
|---|---|---|---|---|
| EP-001 | Account, accesso e ruoli | 2 | 6 | MVP |
| EP-002 | Profilo tutor e prezzi | 3 | 8 | MVP |
| EP-003 | Ricerca tutor e disponibilita | 4 | 13 | MVP |
| EP-004 | Richieste, conferme e agenda lezioni | 4 | 14 | MVP |
| EP-005 | Notifiche e promemoria | 2 | 6 | MVP |
| EP-006 | Dashboard e recensioni | 4 | 12 | MVP |
| EP-007 | Crescita del marketplace | 6 | 24 | Growth |
| EP-008 | Evoluzione strategica della piattaforma | 6 | 30 | Vision |

**Total stories:** 31  
**Total story points:** 113  
**MVP stories:** 19 (59pt)

---

## Prioritization Notes

- Le storie HIGH coprono il flusso essenziale del marketplace: registrazione, profilo tutor, ricerca, disponibilita, richiesta e conferma della lezione.
- La gestione dei conflitti e l'aggiornamento dell'agenda sono prioritari per proteggere la metrica primaria delle lezioni confermate ed evitare sovrapposizioni.
- Notifiche, dashboard e recensioni sono MVP ma non bloccano la prima validazione del matching, quindi sono in prevalenza MEDIUM.
- Le funzionalita Growth migliorano retention, fiducia e scalabilita commerciale, ma vengono dopo la validazione del flusso base.
- Le funzionalita Vision sono mantenute a bassa priorita per non anticipare pagamenti, app mobile o matching automatico prima della validazione del mercato.

---

## Epics & User Stories

---

### EP-001: Account, accesso e ruoli

> Consentire a studenti e tutor di accedere alla piattaforma con il ruolo corretto e proteggere le aree riservate.  
> **Scope:** MVP | **Stories:** 2 | **Story Points:** 6

---

#### US-001: Registrarsi e accedere con un ruolo

**Epic:** EP-001 | **Priority:** HIGH | **Story Points:** 3

**Story**  
As Giulia Rossi o Marco Bianchi,  
I want creare un account e accedere come studentessa o tutor,  
so that possa usare le funzionalita corrette della piattaforma.

**Acceptance Criteria**  
- [ ] Un nuovo utente puo registrarsi scegliendo il ruolo studente o tutor e accedere con credenziali valide.  
- [ ] Se i dati obbligatori o le credenziali non sono validi, il sistema mostra un errore chiaro senza creare una sessione.  
- [ ] Un utente gia autenticato viene riconosciuto come studente o tutor nelle aree riservate.

---

#### US-002: Accedere solo alle aree autorizzate

**Epic:** EP-001 | **Priority:** HIGH | **Story Points:** 3

**Story**  
As utente registrato,  
I want accedere solo alle funzioni consentite dal mio ruolo,  
so that le azioni di studenti e tutor restino separate e sicure.

**Acceptance Criteria**  
- [ ] Uno studente puo accedere alle funzioni studente e un tutor puo accedere alle funzioni tutor.  
- [ ] Un utente non autenticato viene invitato ad accedere quando prova ad aprire un'area riservata.  
- [ ] Un utente autenticato non puo completare azioni riservate a un ruolo diverso dal proprio.

---

### EP-002: Profilo tutor e prezzi

> Permettere ai tutor di presentarsi in modo chiaro e agli studenti di valutare rapidamente competenze, prezzo e modalita.  
> **Scope:** MVP | **Stories:** 3 | **Story Points:** 8

---

#### US-003: Creare e aggiornare il profilo tutor

**Epic:** EP-002 | **Priority:** HIGH | **Story Points:** 3

**Story**  
As Marco Bianchi,  
I want creare e modificare il mio profilo pubblico con bio, citta, materie e modalita,  
so that gli studenti possano capire se sono adatto alle loro esigenze.

**Acceptance Criteria**  
- [ ] Il tutor puo salvare un profilo con bio, citta, materie insegnate e modalita online o in presenza.  
- [ ] Se mancano informazioni obbligatorie, il sistema indica quali campi devono essere completati.  
- [ ] Le modifiche salvate sono visibili nella scheda pubblica del tutor.

---

#### US-004: Configurare prezzi per livello scolastico

**Epic:** EP-002 | **Priority:** HIGH | **Story Points:** 2

**Story**  
As Marco Bianchi,  
I want impostare prezzi separati per studenti delle superiori e universitari,  
so that possa comunicare tariffe trasparenti prima del contatto.

**Acceptance Criteria**  
- [ ] Il tutor puo indicare un prezzo per studenti delle superiori e uno per studenti universitari.  
- [ ] Se un prezzo non e valido o e assente quando richiesto, il sistema mostra un errore comprensibile.  
- [ ] Gli studenti vedono i prezzi aggiornati nella scheda tutor e nei contesti di confronto.

---

#### US-005: Consultare la scheda tutor completa

**Epic:** EP-002 | **Priority:** MEDIUM | **Story Points:** 3

**Story**  
As Giulia Rossi,  
I want visualizzare bio, citta, materie, prezzi, modalita e recensioni del tutor,  
so that possa scegliere con maggiore fiducia chi contattare.

**Acceptance Criteria**  
- [ ] La scheda tutor mostra le informazioni pubbliche essenziali per la scelta.  
- [ ] Se alcune informazioni non sono ancora disponibili, la scheda lo comunica senza risultare ambigua.  
- [ ] La scheda resta consultabile in modo chiaro da mobile e desktop.

---

### EP-003: Ricerca tutor e disponibilita

> Aiutare gli studenti a trovare tutor disponibili in base a materia, citta, modalita, prezzo e agenda.  
> **Scope:** MVP | **Stories:** 4 | **Story Points:** 13

---

#### US-006: Gestire le disponibilita in agenda

**Epic:** EP-003 | **Priority:** HIGH | **Story Points:** 3

**Story**  
As Marco Bianchi,  
I want inserire, modificare e rimuovere le mie disponibilita,  
so that gli studenti possano richiedere lezioni in orari realmente gestibili.

**Acceptance Criteria**  
- [ ] Il tutor puo aggiungere disponibilita indicando giorno e orario.  
- [ ] Il tutor puo modificare o rimuovere disponibilita future non gia occupate da lezioni confermate.  
- [ ] Il sistema segnala disponibilita non valide o sovrapposte in modo chiaro.

---

#### US-007: Cercare tutor con filtri principali

**Epic:** EP-003 | **Priority:** HIGH | **Story Points:** 5

**Story**  
As Giulia Rossi,  
I want cercare tutor filtrando per materia, citta, modalita e fascia prezzo,  
so that possa trovare rapidamente opzioni adatte al mio bisogno.

**Acceptance Criteria**  
- [ ] Lo studente puo combinare i filtri principali e vedere risultati coerenti.  
- [ ] Se nessun tutor corrisponde ai filtri, il sistema mostra uno stato vuoto utile.  
- [ ] La ricerca restituisce risultati in tempi adeguati per un uso normale MVP.

---

#### US-008: Confrontare i risultati di ricerca

**Epic:** EP-003 | **Priority:** MEDIUM | **Story Points:** 2

**Story**  
As Giulia Rossi,  
I want vedere nei risultati prezzo, citta, materie e valutazione media del tutor,  
so that possa confrontare piu opzioni senza aprire ogni scheda.

**Acceptance Criteria**  
- [ ] Ogni risultato mostra le informazioni essenziali del tutor quando disponibili.  
- [ ] Se un tutor non ha ancora recensioni, il sistema lo indica senza penalizzarlo in modo fuorviante.  
- [ ] Dai risultati lo studente puo aprire la scheda completa del tutor.

---

#### US-009: Consultare le disponibilita prima della richiesta

**Epic:** EP-003 | **Priority:** HIGH | **Story Points:** 3

**Story**  
As Giulia Rossi,  
I want vedere le disponibilita del tutor prima di inviare una richiesta,  
so that possa scegliere un orario compatibile senza lunghe conversazioni.

**Acceptance Criteria**  
- [ ] La scheda tutor mostra le disponibilita future utili per richiedere una lezione.  
- [ ] Se il tutor non ha disponibilita future, il sistema lo comunica chiaramente.  
- [ ] Lo studente puo usare una disponibilita visibile come riferimento per inviare la richiesta.

---

### EP-004: Richieste, conferme e agenda lezioni

> Gestire il ciclo principale della piattaforma: richiesta dello studente, decisione del tutor e conferma della lezione.  
> **Scope:** MVP | **Stories:** 4 | **Story Points:** 14

---

#### US-010: Inviare una richiesta di lezione

**Epic:** EP-004 | **Priority:** HIGH | **Story Points:** 5

**Story**  
As Giulia Rossi,  
I want inviare una richiesta indicando tutor, materia, livello, modalita, data, orario e note,  
so that possa chiedere una lezione senza spostarmi su chat esterne.

**Acceptance Criteria**  
- [ ] Lo studente registrato puo inviare una richiesta con tutte le informazioni necessarie.  
- [ ] Se mancano dati obbligatori o l'orario non e valido, il sistema impedisce l'invio e spiega il problema.  
- [ ] Dopo l'invio, lo studente vede lo stato della richiesta come in attesa.

---

#### US-011: Accettare o rifiutare una richiesta

**Epic:** EP-004 | **Priority:** HIGH | **Story Points:** 3

**Story**  
As Marco Bianchi,  
I want accettare o rifiutare manualmente ogni richiesta ricevuta,  
so that mantenga controllo sul mio calendario e sui miei impegni.

**Acceptance Criteria**  
- [ ] Il tutor puo visualizzare le richieste ricevute e scegliere se accettarle o rifiutarle.  
- [ ] Se una richiesta non e piu valida, il sistema impedisce una decisione incoerente.  
- [ ] Lo stato della richiesta cambia in modo visibile dopo la decisione del tutor.

---

#### US-012: Confermare la lezione e aggiornare l'agenda

**Epic:** EP-004 | **Priority:** HIGH | **Story Points:** 3

**Story**  
As Marco Bianchi,  
I want una richiesta accettata diventi una lezione confermata nell'agenda,  
so that il mio calendario rifletta gli impegni reali.

**Acceptance Criteria**  
- [ ] Quando il tutor accetta una richiesta, la lezione risulta confermata per studente e tutor.  
- [ ] L'agenda del tutor mostra l'orario come occupato dopo la conferma.  
- [ ] Se la conferma non puo essere completata, il sistema mantiene uno stato coerente e informa l'utente.

---

#### US-013: Evitare conflitti di disponibilita

**Epic:** EP-004 | **Priority:** HIGH | **Story Points:** 3

**Story**  
As Marco Bianchi,  
I want essere avvisato quando una richiesta crea un conflitto di orario,  
so that possa evitare sovrapposizioni tra lezioni confermate.

**Acceptance Criteria**  
- [ ] Il sistema segnala un conflitto quando una richiesta coincide con una lezione gia confermata.  
- [ ] Il tutor non puo confermare due lezioni sovrapposte per lo stesso orario.  
- [ ] Lo studente vede uno stato coerente se l'orario richiesto non e piu disponibile.

---

### EP-005: Notifiche e promemoria

> Tenere studenti e tutor aggiornati su richieste, decisioni e lezioni confermate.  
> **Scope:** MVP | **Stories:** 2 | **Story Points:** 6

---

#### US-014: Ricevere notifiche in-app sugli eventi importanti

**Epic:** EP-005 | **Priority:** MEDIUM | **Story Points:** 3

**Story**  
As utente registrato,  
I want ricevere notifiche in-app per richieste, accettazioni, rifiuti e lezioni confermate,  
so that possa seguire l'evoluzione delle lezioni senza perdere aggiornamenti.

**Acceptance Criteria**  
- [ ] Lo studente e il tutor ricevono notifiche pertinenti al proprio ruolo.  
- [ ] Se non ci sono notifiche, il sistema mostra uno stato vuoto chiaro.  
- [ ] Le notifiche distinguono eventi nuovi e gia consultati.

---

#### US-015: Ricevere promemoria email per richieste e lezioni

**Epic:** EP-005 | **Priority:** MEDIUM | **Story Points:** 3

**Story**  
As Giulia Rossi o Marco Bianchi,  
I want ricevere email per richieste rilevanti e lezioni confermate,  
so that possa ricordare gli impegni anche fuori dalla piattaforma.

**Acceptance Criteria**  
- [ ] Gli utenti ricevono email per eventi rilevanti collegati a richieste e lezioni confermate.  
- [ ] Se l'indirizzo email non e valido o non raggiungibile, il sistema mantiene comunque lo stato della lezione.  
- [ ] I contenuti dell'email rendono chiari data, orario, ruolo dell'utente e stato dell'evento.

---

### EP-006: Dashboard e recensioni

> Offrire viste operative separate per studenti e tutor e costruire fiducia tramite recensioni post-lezione.  
> **Scope:** MVP | **Stories:** 4 | **Story Points:** 12

---

#### US-016: Consultare la dashboard tutor

**Epic:** EP-006 | **Priority:** MEDIUM | **Story Points:** 3

**Story**  
As Marco Bianchi,  
I want una dashboard con richieste ricevute, prossime lezioni, prezzi e disponibilita,  
so that possa gestire la mia attivita da un unico punto.

**Acceptance Criteria**  
- [ ] Il tutor vede richieste ricevute, lezioni future, prezzi e disponibilita principali.  
- [ ] Se non ci sono richieste o lezioni, la dashboard mostra messaggi utili.  
- [ ] Gli elementi principali rimandano alle azioni pertinenti.

---

#### US-017: Consultare la dashboard studente

**Epic:** EP-006 | **Priority:** MEDIUM | **Story Points:** 3

**Story**  
As Giulia Rossi,  
I want una dashboard con richieste inviate, lezioni confermate e recensioni da lasciare,  
so that possa seguire le mie ripetizioni senza cercare nelle chat.

**Acceptance Criteria**  
- [ ] Lo studente vede richieste inviate, lezioni confermate e recensioni ancora disponibili.  
- [ ] Se non ci sono attivita, la dashboard guida lo studente verso la ricerca tutor.  
- [ ] Gli stati delle richieste sono comprensibili e aggiornati.

---

#### US-018: Lasciare una recensione dopo una lezione

**Epic:** EP-006 | **Priority:** MEDIUM | **Story Points:** 3

**Story**  
As Giulia Rossi,  
I want lasciare una recensione solo dopo una lezione accettata e completata,  
so that possa contribuire alla fiducia della piattaforma con feedback verificabili.

**Acceptance Criteria**  
- [ ] Lo studente puo recensire un tutor solo quando la lezione risulta accettata e completata.  
- [ ] Se la lezione non e idonea alla recensione, il sistema non permette l'invio.  
- [ ] Dopo l'invio, la recensione risulta associata al tutor corretto.

---

#### US-019: Mostrare recensioni pubblicate sul profilo tutor

**Epic:** EP-006 | **Priority:** MEDIUM | **Story Points:** 3

**Story**  
As Giulia Rossi,  
I want leggere le recensioni pubblicate nel profilo del tutor,  
so that possa valutare meglio l'affidabilita prima di richiedere una lezione.

**Acceptance Criteria**  
- [ ] Il profilo tutor mostra le recensioni pubblicate disponibili.  
- [ ] Se non ci sono recensioni, il profilo lo comunica in modo neutro.  
- [ ] Le recensioni visibili sono collegate a lezioni idonee.

---

### EP-007: Crescita del marketplace

> Rafforzare ricerca, fidelizzazione, fiducia e sostenibilita economica dopo la validazione del flusso MVP.  
> **Scope:** Growth | **Stories:** 6 | **Story Points:** 24

---

#### US-020: Usare filtri avanzati di ricerca

**Epic:** EP-007 | **Priority:** MEDIUM | **Story Points:** 5

**Story**  
As Giulia Rossi,  
I want filtrare i tutor per voto medio, disponibilita immediata e livello scolastico,  
so that possa restringere la scelta quando ci sono molte opzioni.

**Acceptance Criteria**  
- [ ] Lo studente puo applicare filtri avanzati ai risultati di ricerca.  
- [ ] Se i filtri avanzati non producono risultati, il sistema suggerisce di ampliarli.  
- [ ] I filtri avanzati non nascondono informazioni essenziali dei risultati.

---

#### US-021: Gestire lezioni ricorrenti

**Epic:** EP-007 | **Priority:** MEDIUM | **Story Points:** 5

**Story**  
As Marco Bianchi,  
I want gestire lezioni ricorrenti con uno studente,  
so that possa organizzare percorsi continuativi senza ricreare ogni appuntamento.

**Acceptance Criteria**  
- [ ] Il tutor e lo studente possono concordare una ricorrenza per lezioni future.  
- [ ] Se una ricorrenza crea conflitti, il sistema segnala gli appuntamenti problematici.  
- [ ] Le lezioni ricorrenti sono distinguibili dalle lezioni singole nelle viste dell'utente.

---

#### US-022: Comunicare tramite messaggistica interna

**Epic:** EP-007 | **Priority:** MEDIUM | **Story Points:** 3

**Story**  
As Giulia Rossi o Marco Bianchi,  
I want scambiare messaggi nella piattaforma,  
so that possa chiarire dettagli della lezione senza usare canali esterni.

**Acceptance Criteria**  
- [ ] Studente e tutor possono scambiarsi messaggi collegati a una richiesta o lezione.  
- [ ] Se un utente non e coinvolto nella richiesta, non puo partecipare alla conversazione.  
- [ ] I messaggi rendono visibile il contesto della lezione a cui si riferiscono.

---

#### US-023: Verificare il profilo tutor con badge qualita

**Epic:** EP-007 | **Priority:** LOW | **Story Points:** 3

**Story**  
As Giulia Rossi,  
I want vedere se un tutor ha un profilo verificato o un badge qualita,  
so that possa fidarmi di piu nella scelta.

**Acceptance Criteria**  
- [ ] Il profilo tutor puo mostrare uno stato di verifica o badge qualita.  
- [ ] Se il tutor non e verificato, il profilo non comunica informazioni fuorvianti.  
- [ ] Gli studenti possono distinguere chiaramente badge, recensioni e informazioni dichiarate dal tutor.

---

#### US-024: Consultare report e storico avanzato lezioni

**Epic:** EP-007 | **Priority:** MEDIUM | **Story Points:** 3

**Story**  
As Marco Bianchi,  
I want consultare report e storico avanzato delle lezioni,  
so that possa capire andamento, frequenza e attivita della mia offerta.

**Acceptance Criteria**  
- [ ] Il tutor puo vedere uno storico organizzato delle lezioni passate.  
- [ ] Se non ci sono dati sufficienti, il sistema mostra uno stato informativo.  
- [ ] Il report aiuta a distinguere richieste, lezioni confermate e lezioni completate.

---

#### US-025: Validare una forma di monetizzazione

**Epic:** EP-007 | **Priority:** LOW | **Story Points:** 5

**Story**  
As gestore di MathLesson,  
I want sperimentare abbonamento tutor o commissione su lezioni confermate,  
so that possa verificare la sostenibilita economica dopo la validazione del marketplace.

**Acceptance Criteria**  
- [ ] Il modello di monetizzazione e presentato in modo comprensibile ai tutor interessati.  
- [ ] Se un tutor non aderisce, il sistema comunica chiaramente eventuali limiti o condizioni.  
- [ ] Le metriche consentono di valutare interesse e impatto sulla conferma delle lezioni.

---

### EP-008: Evoluzione strategica della piattaforma

> Espandere MathLesson verso pagamenti, matching automatico, mobile, nuove materie e strumenti didattici integrati.  
> **Scope:** Vision | **Stories:** 6 | **Story Points:** 30

---

#### US-026: Gestire pagamenti integrati

**Epic:** EP-008 | **Priority:** LOW | **Story Points:** 5

**Story**  
As Giulia Rossi,  
I want pagare la lezione direttamente nella piattaforma,  
so that possa completare prenotazione e pagamento in un unico flusso.

**Acceptance Criteria**  
- [ ] Lo studente puo pagare una lezione idonea direttamente dalla piattaforma.  
- [ ] Se il pagamento non riesce, la lezione non viene comunicata come pagata.  
- [ ] Studente e tutor vedono uno stato chiaro del pagamento.

---

#### US-027: Ricevere suggerimenti automatici di tutor

**Epic:** EP-008 | **Priority:** LOW | **Story Points:** 5

**Story**  
As Giulia Rossi,  
I want ricevere tutor suggeriti in base a materia, livello, citta, budget e disponibilita,  
so that possa trovare piu velocemente una soluzione adatta.

**Acceptance Criteria**  
- [ ] Lo studente riceve suggerimenti coerenti con i criteri principali di ricerca.  
- [ ] Se non ci sono suggerimenti affidabili, il sistema non forza raccomandazioni deboli.  
- [ ] Lo studente puo confrontare i suggerimenti con i risultati di ricerca ordinari.

---

#### US-028: Usare MathLesson da app mobile dedicata

**Epic:** EP-008 | **Priority:** LOW | **Story Points:** 5

**Story**  
As Giulia Rossi o Marco Bianchi,  
I want usare una app mobile dedicata,  
so that possa gestire ricerca, richieste e agenda con un'esperienza ottimizzata per smartphone.

**Acceptance Criteria**  
- [ ] Le funzioni principali sono accessibili da esperienza mobile dedicata.  
- [ ] Se una funzione non e ancora disponibile su mobile, l'utente riceve un'indicazione chiara.  
- [ ] L'esperienza mobile preserva stati e informazioni gia presenti nella piattaforma.

---

#### US-029: Estendere il marketplace ad altre materie STEM

**Epic:** EP-008 | **Priority:** LOW | **Story Points:** 5

**Story**  
As gestore di MathLesson,  
I want estendere il marketplace ad altre materie STEM,  
so that possa aumentare il valore della piattaforma oltre matematica e fisica.

**Acceptance Criteria**  
- [ ] Il catalogo materie puo includere nuove discipline STEM oltre matematica e fisica.  
- [ ] Se una materia non e ancora supportata, non viene mostrata come disponibile.  
- [ ] Tutor e studenti possono distinguere chiaramente le materie offerte.

---

#### US-030: Usare strumenti didattici integrati

**Epic:** EP-008 | **Priority:** LOW | **Story Points:** 5

**Story**  
As Marco Bianchi,  
I want condividere materiali, esercizi e follow-up nella piattaforma,  
so that possa dare continuita didattica dopo la lezione.

**Acceptance Criteria**  
- [ ] Il tutor puo associare materiali o follow-up a una lezione.  
- [ ] Se uno studente non e collegato alla lezione, non puo accedere ai materiali.  
- [ ] Lo studente puo ritrovare i materiali collegati alle proprie lezioni.

---

#### US-031: Rafforzare reputazione e qualita controllata

**Epic:** EP-008 | **Priority:** LOW | **Story Points:** 5

**Story**  
As gestore di MathLesson,  
I want controllare qualita e reputazione del marketplace,  
so that la piattaforma resti affidabile mentre cresce.

**Acceptance Criteria**  
- [ ] Il marketplace puo evidenziare segnali di reputazione verificata dei tutor.  
- [ ] Se emergono contenuti o comportamenti problematici, il sistema permette una gestione coerente.  
- [ ] Gli studenti vedono informazioni di fiducia comprensibili e non fuorvianti.

---

## Backlog Assumptions & Open Questions

> _This section lists assumptions made during backlog generation and questions left open for the team._

- **[ASSUMPTION]** Il backlog considera tutte le funzionalita elencate nel PRD, con storie MVP piu granulari e storie Growth/Vision volutamente piu alte di livello.
- **[ASSUMPTION]** Le recensioni sono considerate pubblicabili dopo una lezione accettata e completata, coerentemente con il PRD anche se il criterio esatto di completamento resta da definire.
- **[ASSUMPTION]** Accessibilita, sicurezza e performance sono trattate come criteri trasversali da applicare durante l'implementazione delle storie, non come epiche funzionali separate.
- **[OPEN]** Quale stato operativo determina che una lezione sia ufficialmente completata e quindi recensibile?
- **[OPEN]** La monetizzazione Growth dovra partire da abbonamento tutor, commissione per lezione confermata o test comparativo tra entrambi?
- **[OPEN]** La verifica tutor richiedera controllo manuale, documenti, referenze o un criterio piu leggero basato su reputazione interna?

---

_Backlog generated via AIRchetipo — 2026-05-08_  
_[Total 31 stories across 8 epics — 113 story points total]_
