Indice

La app di esempio "Vicinato"

Una app di esempio per guidarti alla scoperta di Drupal.
Aggiornata il:
Stato: 🟩Pronta

Una app di esempio

Come esempio per la costruzione delle app con Drupal utilizzo "Vicinato", una app per il prestito di attrezzi tra vicini di casa che puoi vedere in bozza qui:

https://vicinato.bottasini.eu

Le credenziali per accedere alla app sono mostrate nella pagina di login.

Non ti sto invitando a ricostruire sul tuo computer o in cloud proprio questa app: "Vicinato" è solo un esempio di cosa si può fare con Drupal, da cui puoi prendere spunto per costruire l'app di tuo interesse. Anche se la app ha di per sé un obiettivo abbastanza semplice, per motivi didattici cercherò di inserirvi progressivamente una certa complessità. E' probabile che la tua prima app sia molto più semplice di questa.

Per descrivere la app applico il metodo che ti ho suggerito nella Guida precedente.    

Scopo

La app facilita il prestito gratuito di attrezzi tra persone che abitano nella stessa zona o città. Lo scambio degli attrezzi avviene direttamente tra le parti oppure, per maggiore tutela, tramite il deposito temporaneo presso luoghi aperti al pubblico, quali le sedi di associazioni o biblioteche.

Utenti

L'utilizzo della app è riservato agli Utenti iscritti. I Visitatori vedono solo le istruzioni per iscriversi. L'iscrizione viene accettata dai Gestori, Utenti scelti dall'Amministratore per la gestione della app. Con l'iscrizione alla app, gli Utenti diventano Partecipanti, che si prestano vicendevolmente gli attrezzi. Lo scambio degli attrezzi avviene direttamente tra le parti o presso sedi aperte al pubblico, in questo caso è intermediato da Operatori abilitati dai Gestori.

Processi

Ecco i processi svolti da ognuno dei ruoli sopra identificati:

  • Il Visitatore avanza domanda di iscrizione nella app. Se l'iscrizione viene accettata dai Gestori, facendo login con le credenziali ottenute il Visitatore entra nella app come Partecipante.
  • Il Partecipante popola il "magazzino" virtuale della app con gli attrezzi che mette a disposizione, catalogandoli secondo categorie predefinite dai Gestori. Chiede in prestito attrezzi altrui e presta i propri attrezzi in risposta a richieste altrui. Gli attrezzi vengono scambiati tra proprietario e richiedente direttamente oppure presso una sede aperta al pubblico. Quando il prestito è terminato, proprietario e richiedente possono esprimere una valutazione sull'esperienza del prestito.
  • L'Operatore gestisce la consegna degli attrezzi presso la sede cui è stato abilitato dai Gestori.
  • Il Gestore accetta le richieste di iscrizione dei Visitatori, gestisce gli Utenti e li supporta nell'utilizzo della app. Definisce le sedi di consegna ed vi abilita gli Operatori. Definisce le categorie per classificare gli attrezzi. Interviene su prestiti per risolvere eventuali anomalie.
  • Tutti gli Utenti si scambiano messaggi nella app per concordare i dettagli dei prestiti, per risolvere problemi, per chiedere assistenza ai Gestori, senza la necessità di esporre i propri contatti personali al destinatario.

Informazioni 

I processi sopra descritti richiedono la gestione delle seguenti informazioni elementari:

InformazioneCosa rappresenta
UtenteUna persona fisica che usa la app, cui i Gestori hanno rilasciato le credenziali (nome utente, password) personali per accedervi
AttrezzoUn attrezzo fisico, messo a disposizione dal suo Proprietario agli altri Partecipanti
CategoriaUna categoria di classificazione degli Attrezzi, predisposta dai Gestori ed applicata all'Attrezzo dal Proprietario, per facilitare la ricerca da parte dei Partecipanti
RichiestaUna richiesta di prestito avanzata da un Partecipante su un Attrezzo altrui
PrestitoLa concessione del prestito su un Attrezzo da parte del Proprietario in risposta ad una Richiesta
SedeUn luogo fisico dove l'Attrezzo può essere portato per facilitare il passaggio tra Proprietario e Richiedente
OperatoreUna persona fisica, abilitata dai Gestori a ricevere e consegnare Attrezzi presso una Sede
AbilitazioneL'abilitazione da parte dei Gestori di un Operatore ad agire presso una Sede
ConsegnaLa registrazione del passaggio di un Attrezzo da un Utente (Partecipante o Operatore) ad un altro Utente, registrata dall'Utente che cede l'Attrezzo e accettata dall'Utente che lo riceve.
ValutazioneLa valutazione dell'esperienza relativa ad un Prestito, espressa dal Proprietario o dal Richiedente 
NotaUna nota inviata da un Utente ad un altro Utente della app, relativa ad una Richiesta, un Attrezzo o all'uso della app

Il motivo per cui "spacchettiamo" il concetto di prestito in diverse informazioni più elementari (Richiesta, Prestito, Consegna e Valutazione) sarà più chiaro quando vedremo in questa Guida come tradurre queste informazioni in Entità gestite nella app.

Permessi

Dall'analisi fin qui svolta, emergono le seguenti considerazioni sulle azioni consentite nel tempo ai diversi Utenti sulle informazioni:

  • Utente: è creato da un Gestore che ne definisce il Ruolo, mentre l'Utente può modificare di se stesso solo la password.
  • Attrezzo: è creato dal Proprietario, che può variarne la disponibilità al prestito ma non può eliminarlo per evitare perdite di informazioni sui prestiti già avvenuti. E' visibile a tutti gli Utenti.
  • Categoria: è creata da un Gestore ed è visibile a tutti gli Utenti
  • Richiesta: è creata da un Partecipante ed è visibile solo al Proprietario dell'Attrezzo richiesto e agli Operatori della Sede in cui eventualmente transita l'Attrezzo. La sua eliminazione da parte del Richiedente comporta l'eliminazione dell'eventuale Prestito concesso in risposta dal Proprietario. Non può essere eliminata dopo la creazione della prima Consegna relativa all'Attrezzo. Si conclude con la riconsegna dell'Attrezzo al Proprietario.
  • Prestito: è creata dal Proprietario dell'Attrezzo in risposta ad una Richiesta ed è visibile solo al Richiedente e agli Operatori della Sede in cui eventualmente transita l'Attrezzo. La sua eliminazione non comporta l'eliminazione della Richiesta. Non può essere eliminato dopo la creazione della prima Consegna relativa all'Attrezzo. Si conclude con la riconsegna dell'Attrezzo al Proprietario.
  • Sede: è creata ed eventualmente disabilitata da un Gestore ed è visibile a tutti gli Utenti
  • Abilitazione: è creata ed eventualmente disabilitata da un Gestore ed è visibile a tutti gli Utenti
  • Consegna: è creata in bozza dall'Utente che consegna l'Attrezzo ed accettata dall'Utente che lo riceve; dopo l'accettazione, non è più modificabile.
  • Valutazione: è creata in bozza dal Proprietario o dal Richiedente e può essere modificata fino a quando l'Utente stesso non la firma; è visibile solo a Proprietario, Richiedente e Gestori.
  • Nota: è creata da un Utente e visibile solo al mittente ed al destinatario. Una volta inviata, non è più modificabile.

Più in dettaglio, questi sono i Permessi dei diversi ruoli sulle diverse informazioni:

InformazionePartecipanteOperatoreGestore
Dati UtenteModifica i propri dati personali (password compresa). Vede il nome degli altri Utenti. Non vede i dati personali degli altri Utenti. Crea gli Utenti. Vede e modifica i dati personali di tutti gli Utenti. Non può togliere il ruolo Gestore agli altri Gestori.
AttrezzoCrea l'Attrezzo. Modifica i propri Attrezzi. Vede tutti gli AttrezziVede tutti gli AttrezziVede e modifica tutti gli Attrezzi
CategoriaVede tutte le CategorieCrea e modifica tutte le Categorie
RichiestaCrea la Richiesta su un Attrezzo altrui. Modifica e elimina le proprie Richieste (1). Vede le Richieste altrui sui propri Attrezzi. Non vede Richieste che non lo coinvolgono.Vede le Richieste che transitano in una Sede in cui è abilitatoVede, modifica ed elimina tutte le Richieste
PrestitoCrea il Prestito in risposta ad una Richiesta su un proprio Attrezzo. Modifica e elimina i propri Prestiti (1). Vede i Prestiti che rispondono alle sue Richieste. Non vede i Prestiti che non lo coinvolgono.Vede i Prestiti che transitano in una Sede in cui è abilitatoVede, modifica ed elimina tutti i Prestiti
SedeVede tutte le SediCrea, modifica e disattiva tutte le Sedi
AbilitazioneVede tutte le AbilitazioniCrea, modifica e disattiva tutte le Abilitazioni
ConsegnaCrea la Consegna quando consegna l'Attrezzo. Modifica e elimina le proprie Consegne (2). Accetta la Consegna quando riceve l'Attrezzo. Non vede le Consegne che non lo coinvolgono. Crea la Consegna quando consegna l'Attrezzo. Modifica e elimina le proprie Consegne (2). Accetta la Consegna quando riceve l'Attrezzo. Vede tutte le Consegne. Crea, modifica e elimina tutte le Consegne 
ValutazioneCrea la Valutazione (3) su un Prestito che l'ha coinvolto come Proprietario o Richiedente. Firma le proprie Valutazioni (2). Non vede Valutazioni che non lo coinvolgono.  Vede, modifica e elimina tutte le Valutazioni

Note:
(1) Il Partecipante può modificare o eliminare Richieste e Prestiti propri fino a quando non viene creata la prima Consegna relativa al Prestito.
(2) L'Utente non può modificare o eliminare le proprie Consegne e Valutazioni dopo che sono state accettate o firmate.
(3) Il Partecipante può creare Valutazioni solo dopo la riconsegna dell'Attrezzo al Proprietario.

Vedremo in questa Guida come configurare i Permessi in Drupal. 

Percorsi

DA RIVEDERE

Essendo una applicazione web, la app si presenta come un insieme di pagine, visitate dagli Utenti secondo uno o più percorsi progettati dall'Amministratore. Nella app di esempio, i percorsi partono dalla pagina "Cruscotto", che mostra all'Utente le informazioni più importanti o urgenti e un insieme di comandi che conducono nei diversi percorsi. In tutte le pagine è presente un comando che riporta immediatamente al Cruscotto. Vedremo da questa Guida in avanti come costruire le pagine e realizzare i percorsi. 

Ecco i Percorsi previsti per la app di esempio, le pagine corrispondenti ad ogni percorso e, per ogni pagina, le informazioni presentate e i comandi che portano ad altre pagine. 

Al login→
Cruscotto→
CRUSCOTTO
UtenteTu
Comando "Tuoi dati"
La comunità
Elenco Messaggi per l'Utente e non ancora letti  â†’ Messaggio
Comando "Tutti i  Messaggi"
Comando "Scrivi Messaggio"
Comando "Le sedi di consegna"
PartecipanteGli Attrezzi
Comando "Magazzino"
Comando "Tuoi Attrezzi"
Le tue Richieste
Elenco Richieste non concluse dell'Utente→ Richiesta, Attrezzo, Prestito
Comando "Tue Richieste concluse"
I tuoi Prestiti
Elenco Richieste non concluse su Attrezzi dell'Utente → Richiesta, Attrezzo, Prestito
Comando "Tuoi Prestiti conclusi"
OperatoreConsegne nelle tue sedi
Elenco Prestiti non conclusi con consegna nelle sedi dell'Utente → Attrezzo, Prestito, Consegne
Comando "Archivio Consegne"
Comando "Operatori di sede"
GestoreGestione app
Comando "Gestione Utenti"
Comando "Gestione Categorie"
Comando "Gestione Sedi"
Comando "Gestione anomalie"

PERCORSO UTENTI

Tuoi dati→UTENTE
UtenteSolo sui propri dati: Dati dell'Utente
GestoreDati dell'Utente
Solo se l'Utente è Operatore:
Elenco Sedi abilitate all'Utente → Sede
Comando "Aggiungi Sede a Operatore"
Gestione Utenti→GESTIONE UTENTI
GestoreElenco degli Utenti → Utente 
Comando "Aggiungi Utente"
Aggiungi Utente→CREA UTENTE
Gestoremodulo di creazione Utente → Utente 

PERCORSO MESSAGGI

Tutti i Messaggi→MESSAGGI
UtenteElenco dei Messaggi inviati o ricevuti dall'Utente → Messaggio
Comando "Scrivi messaggio"
Click su un Messaggio→MESSAGGIO
Utente (se Mittente del Messaggio)Dati del Messaggio
Comando "Tutti i Messaggi"
Utente (se Destinatario del Messaggio) Dati del Messaggio
Comando "Rispondi al messaggio"
Comando "Tutti i Messaggi"
Scrivi messaggio→
Rispondi al messaggio→
CREA MESSAGGIO
Utentemodulo di creazione di un Messaggio (se da "Rispondi al messaggio" viene precaricato il destinatario) → Messaggio

PERCORSO ATTREZZI

Gestione Categorie→ GESTIONE CATEGORIE
GestoreElenco delle Categorie → Categoria
Comando "Aggiungi Categoria"
Click su una Categoria→ CATEGORIA
GestoreDati della Categoria
Comando "Gestione Categorie"
Aggiungi Categoria→ CREA CATEGORIA
GestoreModulo di creazione di una Categoria → Categoria

Magazzino →MAGAZZINO (vedi in funzione) (come è costruita)
UtenteElenco Attrezzi disponibili al prestito → Attrezzo
PartecipanteComando "Tuoi Attrezzi"

Tuoi Attrezzi→TUOI ATTREZZI (vedi in funzione) (come è costruita)
PartecipanteComando "Magazzino Attrezzi"
Comando "Aggiungi Attrezzo"
Elenco Attrezzi dell'Utente → Attrezzo

Click su un Attrezzo→ATTREZZO (vedi in funzione) (come è costruita)
UtenteComando "Magazzino"
Dati dell'Attrezzo
Partecipante (se Proprietario dell'Attrezzo)Elenco Richieste non concluse sull'Attrezzo  â†’ Richiesta, Prestito
Comando "Prestiti conclusi su Attrezzo"
Partecipante (se diverso dal Proprietario dell'Attrezzo)Elenco Richieste non concluse sull'Attrezzo → Richiesta 
Comando "Chiedi Attrezzo in prestito"
Aggiungi Attrezzo→CREA ATTREZZO
PartecipanteModulo di creazione di un Attrezzo → Attrezzo

PERCORSO RICHIESTE

Chiedi Attrezzo in prestito →CREA RICHIESTA
Partecipante (se diverso dal Proprietario dell'Attrezzo)Modulo di creazione di Richiesta, con precaricato l'Attrezzo → Richiesta
Click su una Richiesta→RICHIESTA
Partecipante (se Richiedente o Proprietario)Dati della Richiesta → Attrezzo,
Dati dell'eventuale Prestito → Prestito
Elenco Consegne → Consegna
Se esiste Prestito: Comando "Consegna Attrezzo"  
Partecipante (se Proprietario dell'Attrezzo)Se non esiste Prestito : Comando "Presta l'Attrezzo"
Partecipante (se Richiedente)Se Richiesta è conclusa: Comando "Valuta il Prestito"
Tue Richieste concluse→RICHIESTE CONCLUSE
PartecipanteElenco Richieste concluse dell'Utente →  Attrezzo, Richiesta, Prestito, Consegna, Valutazioni
Gestione anomalie→GESTIONE ANOMALIE
GestoreElenco di tutte Richieste →  Attrezzo, Richiesta, Prestito,  Consegna, Valutazioni

PERCORSO PRESTITI

Presta l'Attrezzo→CREA PRESTITO
Partecipante (se Proprietario dell'Attrezzo)Modulo di creazione del Prestito, con precaricato la Richiesta → Prestito
Click su un Prestito→PRESTITO
Partecipante (se Proprietario dell'Attrezzo)Dati del Prestito→ Attrezzo, Richiesta
Comando "Consegna Attrezzo"
Se il Prestito è conclusa: Comando "Valuta il Prestito"
Operatore (se abilitato alla sede di consegna)Solo se il Prestito prevede consegna in sede:
Dati del Prestito → Attrezzo, Consegne
Comando "Consegna Attrezzo"

Tuoi Prestiti conclusi →
Prestiti sull'Attrezzo conclusi→
PRESTITI CONCLUSI (vedi in funzione) (icome è costruita)
PartecipanteElenco Richieste concluse dell'Utente come Proprietario →  Attrezzo, Richiesta, Prestito (filtrato per Attrezzo se da comando "Prestiti sull'Attrezzo conclusi ")
Consegna Attrezzo→CREA CONSEGNA
Partecipante (se Proprietario dell'Attrezzo)
Partecipante (se autore della Richiesta)
Operatore (se assegnato alla sede di consegna)
Modulo di creazione di Consegna, con precaricato il Prestito, Sede e Destinatario→ Consegna
Click su una Consegna→CONSEGNA
Partecipante (se Proprietario dell'Attrezzo)
Operatore (se assegnato alla sede di consegna)
Dati della Consegna→ Attrezzo, Richiesta, Prestito
Partecipante (se autore della Richiesta)Dati della Consegna → Attrezzo, Richiesta, Prestito
Archivio Consegne→ARCHIVIO CONSEGNE
OperatoreElenco delle Consegne emesse nelle Sedi dell'Utente: → Attrezzo, Prestito, Consegne

PERCORSO VALUTAZIONI

Aggiungi Valutazione→CREA VALUTAZIONE
Partecipante (se Proprietario dell'Attrezzo)
Partecipante (se Autore della Richiesta)
Modulo di creazione di Valutazione con precaricato il Prestito → Valutazione
Click su una Valutazione→VALUTAZIONE
Partecipante (se Proprietario dell'Attrezzo)Dati della Valutazione del Richiedente e del Proprietario → Prestito
Partecipante (se Autore della Richiesta)Dati della Valutazione del Richiedente e del Proprietario → Richiesta

PERCORSO SEDI

Gestione sedi→
Le sedi per le consegne→
SEDI
UtenteMappa ed elenco delle Sedi: → Sede
GestoreComando "Aggiungi Sede"
Aggiungi Sede→CREA SEDE
GestoreModulo di creazione di Sede → Sede
Click su una Sede→SEDE
UtenteDati della Sede
GestoreElenco delle Abilutazioni di Operatori nella sede → Abilitazione, Utente Operatore
Comando "Aggiungi Operatore a Sede"
Aggiungi Operatore a Sede→
Aggiungi Sede a Operatore→
CREA ABILITAZIONE
GestoreModulo di creazione di Abilitazione → Abilitazione
Se da comando "Aggiungi Operatore a Sede" con precaricata Sede
Se da comando "Aggiungi Sede a Operatore" con precaricata Operatore
Click su una Abilitazione→ABILITAZIONE
GestoreDati della Abilitazione → Sede, Utente Operatore
Operatori di sede→OPERATORI DI SEDE
OperatoreElenco delle Abilitazioni di Operatori nelle Sedi cui è abilitato l'Utente

Automazioni

La app provvede automaticamente a:

  • eliminare kil Prestito di cui è stata eliminata la Richiesta