🎯 Esempio: Sprint Planning & User Stories 🎯 Example: Sprint Planning & User Stories

Estratto dalla pianificazione Sprint 01 - POC Errantia Excerpt from Sprint 01 - POC Errantia planning

Sprint: SPRINT-01-POC - Proof of Concept
Obiettivo: Implementare il flusso minimo end-to-end per validare il concept
Durata: MVP funzionante
Team: 1 Full Stack Developer
Gestito con: MdExplorer + Git
Sprint: SPRINT-01-POC - Proof of Concept
Objective: Implement minimum end-to-end flow to validate the concept
Duration: Working MVP
Team: 1 Full Stack Developer
Managed with: MdExplorer + Git

Scope del POC

✅ Cosa Include

  • Login artigiano (semplificato)
  • Creazione oggetto errante (pietra)
  • Generazione URL NFC
  • Landing page pubblica con wizard segnalazione
  • Salvataggio avvistamento con geolocalizzazione

❌ Cosa NON Include (Rimandato)

  • Registrazione artigiano (wizard completo)
  • Verifica admin artigiani
  • Upload foto
  • Sistema notifiche email
  • Following oggetti
  • Diari di viaggio
  • Integrazione Instagram
  • Branding personalizzato

User Stories

US-01: Login Artigiano
artigiano pre-registrato
fare login con email e password
accedere alla mia dashboard
Criteri di Accettazione:
  • ✓ Form login con email + password
  • ✓ Validazione credenziali
  • ✓ Redirect a dashboard dopo login
  • ✓ Messaggio errore se credenziali errate
US-02: Creazione Pietra Errante
artigiano loggato
creare un nuovo oggetto errante
iniziare a tracciare il suo viaggio
Criteri di Accettazione:
  • ✓ Form con: nome, messaggio (dedica), descrizione (opzionale)
  • ✓ Generazione automatica codice univoco (es. ABC123)
  • ✓ Generazione URL: https://errantia.net/e/{codice}
  • ✓ Visualizzazione URL + QR code da stampare
  • ✓ Salvataggio oggetto in database
US-03: Landing NFC Pubblica
utente che trova la pietra
scansionare il tag NFC
scoprire cos'è e segnalare dove l'ho trovata
Criteri di Accettazione:
  • ✓ Pagina responsive mobile-first
  • ✓ Mostra: nome oggetto, messaggio artigiano, numero avvistamenti
  • ✓ Wizard semplificato (3 step invece di 7)
US-04: Wizard Segnalazione (Semplificato)
utente sulla landing page
segnalare dove ho trovato l'oggetto
contribuire al suo viaggio
Criteri di Accettazione:
  • ✓ Step 1: Consenso privacy (checkbox obbligatoria)
  • ✓ Step 2: Geolocalizzazione (richiesta permesso browser)
  • ✓ Step 3: Conferma e ringraziamento
  • ✓ Salvataggio avvistamento con coordinate GPS
  • ✓ Mostra mappa con tutti gli avvistamenti precedenti

Architettura POC

┌─────────────────────────────────────────────────────┐ │ FRONTEND │ │ Angular 17 (Standalone) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Login │ │ Dashboard │ │ Landing │ │ │ │ Component │ │ Artigiano │ │ Wizard │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────┐ │ BACKEND │ │ Node.js + Express │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Auth │ │ Objects │ │ Sightings │ │ │ │ Module │ │ Module │ │ Module │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────┐ │ DATABASE │ │ PostgreSQL + PostGIS │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌────────┐ │ │ │ users │ │ artisan │ │ objects │ │sighting│ │ │ │ │ │_profiles│ │ │ │ s │ │ │ └─────────┘ └─────────┘ └─────────┘ └────────┘ │ └─────────────────────────────────────────────────────┘

Task di Implementazione

🔧 Backend Tasks

BE-01
Setup progetto Node.js + Express
BE-02
Configurazione PostgreSQL + PostGIS
BE-03
Migration schema POC
BE-04
Middleware JWT authentication
BE-05
Modulo Auth (login, me)
BE-06
Modulo Objects (CRUD artigiano)
BE-07
Modulo Sightings (registrazione pubblica)
BE-08
Generatore codici univoci

🎨 Frontend Tasks

FE-01
Setup progetto Angular 17 (zoneless)
FE-02
Servizio API base + interceptor JWT
FE-03
Auth Guard
FE-04
Pagina Login
FE-05
Dashboard Artigiano
FE-06
Form creazione oggetto
FE-07
Visualizzazione URL + QR code
FE-08
Landing page pubblica (/e/:code)

🚀 DevOps Tasks

DO-01
Script setup ambiente locale
DO-02
Docker compose per sviluppo
DO-03
Seed dati di test

Criteri di Completamento POC

  • ✓ Artigiano può loggarsi con credenziali di test
  • ✓ Artigiano può creare un oggetto con nome e messaggio
  • ✓ Sistema genera URL univoco (es. errantia.net/e/ABC123)
  • ☐ QR code visualizzabile e scaricabile
  • ☐ Utente anonimo può aprire URL e vedere info oggetto
  • ☐ Wizard funziona su mobile (consenso → posizione → grazie)
  • ☐ Avvistamento salvato con coordinate GPS
  • ☐ Mappa mostra tutti gli avvistamenti dell'oggetto

Benefici dello Spec Driven Development

Questa pianificazione di sprint è versionata insieme al codice:

  • ✓ File sprints/SPRINT-01-POC.md nel repository Git
  • ✓ Ogni task completato genera un commit: git commit -m "BE-05: implement auth module"
  • ✓ Il team aggiorna i checkbox (☐ → ✓) man mano che progredisce
  • ✓ Gli stakeholder vedono lo stato in tempo reale via Git/GitHub
  • ✓ Le modifiche al piano generano PR per discussione
  • ✓ Storico completo delle decisioni prese durante lo sprint

POC Scope

✅ What's Included

  • Artisan login (simplified)
  • Wandering object creation (stone)
  • NFC URL generation
  • Public landing page with sighting wizard
  • Sighting saving with geolocation

❌ What's NOT Included (Deferred)

  • Artisan registration (full wizard)
  • Admin artisan verification
  • Photo upload
  • Email notification system
  • Object following
  • Travel diaries
  • Instagram integration
  • Custom branding

User Stories

US-01: Artisan Login
a pre-registered artisan
to login with email and password
I can access my dashboard
Acceptance Criteria:
  • ✓ Login form with email + password
  • ✓ Credential validation
  • ✓ Redirect to dashboard after login
  • ✓ Error message for wrong credentials
US-02: Create Wandering Stone
a logged-in artisan
to create a new wandering object
I can start tracking its journey
Acceptance Criteria:
  • ✓ Form with: name, message (dedication), description (optional)
  • ✓ Automatic unique code generation (e.g., ABC123)
  • ✓ URL generation: https://errantia.net/e/{code}
  • ✓ URL + QR code display for printing
  • ✓ Object saved to database
US-03: Public NFC Landing
a user who finds the stone
to scan the NFC tag
I can discover what it is and report where I found it
Acceptance Criteria:
  • ✓ Mobile-first responsive page
  • ✓ Shows: object name, artisan message, sightings count
  • ✓ Simplified wizard (3 steps instead of 7)
US-04: Sighting Wizard (Simplified)
a user on the landing page
to report where I found the object
I can contribute to its journey
Acceptance Criteria:
  • ✓ Step 1: Privacy consent (mandatory checkbox)
  • ✓ Step 2: Geolocation (browser permission request)
  • ✓ Step 3: Confirmation and thank you
  • ✓ Sighting saved with GPS coordinates
  • ✓ Map shows all previous sightings

POC Architecture

┌─────────────────────────────────────────────────────┐ │ FRONTEND │ │ Angular 17 (Standalone) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Login │ │ Dashboard │ │ Landing │ │ │ │ Component │ │ Artigiano │ │ Wizard │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────┐ │ BACKEND │ │ Node.js + Express │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Auth │ │ Objects │ │ Sightings │ │ │ │ Module │ │ Module │ │ Module │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────┐ │ DATABASE │ │ PostgreSQL + PostGIS │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌────────┐ │ │ │ users │ │ artisan │ │ objects │ │sighting│ │ │ │ │ │_profiles│ │ │ │ s │ │ │ └─────────┘ └─────────┘ └─────────┘ └────────┘ │ └─────────────────────────────────────────────────────┘

Implementation Tasks

🔧 Backend Tasks

BE-01
Setup Node.js + Express project
BE-02
Configure PostgreSQL + PostGIS
BE-03
POC schema migration
BE-04
JWT authentication middleware
BE-05
Auth module (login, me)
BE-06
Objects module (artisan CRUD)
BE-07
Sightings module (public registration)
BE-08
Unique code generator

🎨 Frontend Tasks

FE-01
Setup Angular 17 project (zoneless)
FE-02
Base API service + JWT interceptor
FE-03
Auth Guard
FE-04
Login page
FE-05
Artisan dashboard
FE-06
Object creation form
FE-07
URL + QR code display
FE-08
Public landing page (/e/:code)

🚀 DevOps Tasks

DO-01
Local environment setup script
DO-02
Docker compose for development
DO-03
Test data seed

POC Completion Criteria

  • ✓ Artisan can login with test credentials
  • ✓ Artisan can create an object with name and message
  • ✓ System generates unique URL (e.g., errantia.net/e/ABC123)
  • ☐ QR code viewable and downloadable
  • ☐ Anonymous user can open URL and see object info
  • ☐ Wizard works on mobile (consent → location → thanks)
  • ☐ Sighting saved with GPS coordinates
  • ☐ Map shows all object sightings

Benefits of Spec Driven Development

This sprint plan is versioned together with code:

  • ✓ File sprints/SPRINT-01-POC.md in the Git repository
  • ✓ Each completed task generates a commit: git commit -m "BE-05: implement auth module"
  • ✓ The team updates checkboxes (☐ → ✓) as work progresses
  • ✓ Stakeholders see real-time status via Git/GitHub
  • ✓ Plan changes generate PRs for discussion
  • ✓ Complete history of decisions made during the sprint
← Torna al Case Study ← Back to Case Study