Web App per la rilevazione delle statistiche nel basket
Autore: Fabrizio FelliniBaskPad è una "web app", cioè un'applicazione in grado di girare con il supporto di un navigatore web; grazie alle caratteristiche dei browser moderni, è in grado di lavorare anche offline, senza avere il bisogno di essere connessi ad Internet. Tutti i dati memorizzati dall'applicazione risiedono e vengono mantenuti all'interno del dispositivo che la utilizza, e quindi non vengono inviati ad un server esterno, con l'esclusione di apposite procedure per l'esportazione dei dati che ne permettono il backup.
Può essere utilizzato qualsiasi browser moderno. Il codice Javascript usato è stato volutamente mantenuto compatibile il più possibile con le vecchie specifiche ECMA5, anche con librerie esterne non aggiornate all'ultima versione; questo per fare in modo che anche vecchi dispositivi possano utilizzare l'app. L'unica eccezione al riguardo è l'installazione offline con service worker, dove, per forza di cose, si devono usare le Promises di ECMA6.È possibile usare l'applicazione su PC (Windows, Linux o Mac) o su tablet (iPad oppure Android): si potrebbe usarla anche su smartphone, ma le dimensioni limitate degli schermi ne ostacolerebbero il corretto utilizzo.
Termini legali: l'app è liberamente utilizzabile da chiunque. Al suo interno vengono usate librerie di terzi (Bootstrap, FastClick, JQuery) per le cui licenze si rimanda ai rispettivi produttori. Non vengono usati cookies, ma tecnologie di memorizzazione dati nel browser, che quindi non implicano l'invio dei dati ad un server esterno.
Esistono due tecnologie per l'installazione offline dell'app; la prima è basata sull' application cache, la seconda sul service worker. Si consiglia di usare l'application cache su browsers obsoleti, mentre il service worker va usato su quelli più recenti. Tenere anche in conto che l'Application Cache viene considerata deprecata, per cui, andando avanti col tempo, i browsers tenderanno a rimuoverne il supporto.
In caso di mancato funzionamento di queste due tecnologie, questo può dipendere dal tipo di connessione col server: i browsers più recenti esigono per sicurezza solo connessioni https, cioè criptate, cosa questa poi assolutamente obbligatoria per l'uso di un service worker. In caso di malfunzionamento, modificare l'URL di questa pagina da http a https.
Sono disponibili tre diverse tecnologie per la memorizzazione sul proprio dispositivo dei dati necessari al funzionamento dell'app:
Il database è suddiviso in tabelle che vanno impostate prima di poter rilevare una partita:
Tutte le assegnazioni di squadre e campionati sono relative ad un anno sportivo, questo per poter suddividere i dati tra le varie annate.
È possibile resettare, importare ed esportare il database. I files di importazione ed esportazione sono in formato di testo SQL compatibile con SQLite. Nel caso in cui si utilizzi l'app a tutto schermo sui dispositivi mobili, si potrebbero verificare problemi relativi alle procedure di importazione ed esportazione del database (così come nel caso di upload del referto della partita), dovuti al fatto che i sistemi operativi dei dispositivi possono bloccare le operazioni sui files: in tali situazioni è possibile bypassare i problemi applicando dei semplici "copia-incolla" sulle apposite aree di testo.
I dati generali sono la somma dei valori ricavati da tutte le partite giocate da una squadra, in uno o più campionati disputati.
La procedura della partita inizia con la scelta della gara su cui si vuole lavorare.
Le impostazioni di rilevazione consentono di scegliere l'opzione "punto" (indispensabile quando si rilevano entrambe le squadre), l'opzione per rilevare i tiri indicando la posizione sul campo, e, in caso di scelta di questa, l'opzione per indicare i tiri da sotto come quelli entro i tre metri dal canestro oppure quelli dentro l'area dei tre secondi.
Se è la prima volta che si elabora la partita aperta, vengono richieste le intestazioni (utilizzate in seguito nelle varie stampe) ed i numeri di maglia da assegnare ai giocatori. Riguardo ai numeri di maglia, si può utilizzare qualsiasi numero formato da una o due cifre. Se non viene indicato un numero, vuol dire che il giocatore non è stato iscritto a referto, e che quindi non partecipa all'incontro.
Nelle intestazioni ci sono due campi per risultato e parziali dei tempi di gioco: questi vengono aggiornati automaticamente dall'app solo se la rilevazione viene fatta su entrambe le squadre, mentre vanno aggiornati manualmente se viene rilevata solo una squadra.
La pagina della partita presenta, nella barra del menù, due bottoni per zoomare la finestra: questi funzionano, modificando il "viewport", solo su dispositivi mobili e non su PC; usandoli danno la possibilità di far rientrare tutti gli elementi della pagina nello schermo anche su quei dispositivi Android che presentano lo schermo più stretto rispetto agli iPad.
Il riquadro della partita presenta un campo per immissione di testo: qui verranno immessi, tramite i vari bottoni presenti oppure anche direttamente con la tastiera (metodo sconsigliato!), le sigle di giocatori ed azioni che avvengono durante la gara; le sigle immesse verranno poi elaborate quando verrà premuto il grande bottone blu a destra del campo di immissione. Il bottone con freccia destra, posto a sinistra del campo, consente di cancellare l'ultima sigla immessa, mentre il bottone SP consente di aggiungere uno spazio per separare l'ultima sigla immessa da quella che verrà (utile solo in caso di opzione "punto" selezionata per evitare di assegnare un'azione corrispondente).
Le sigle utilizzate per l'immissione sono le seguenti:
Se si è optato per la rilevazione dei tiri sul campo di gioco:
Il tiro verrà poi elaborato dall'app in automatico come tiro da sotto, da fuori o da tre a seconda della posizione indicata e dell'opzione "3 metri/area" selezionata.
In caso di errore dovuto alla mancata sistemazione dei bottoni A e B, per cui, ad esempio, un tiro da sotto venisse trasformato in un tiro da 3 da oltre metà campo, basterà modificare il referto:
In caso di tiri liberi immessi tramite l'apposita finestra di dialogo, se nessun libero è realizzato, verrà cancellato l'eventuale assist presente nella riga d'immissione.
Quando si rilevano due squadre contemporaneamente, l'uso del punto è praticamente indispensabile perché riduce il numero dei click necessari durante l'immissione dei dati. Il concetto da capire è questo: per ogni azione ne esiste una corrispondente, per cui, se dopo l'azione mettiamo un punto e la sigla di un giocatore, a questo verrà assegnata l'azione corrispondente. Qualche esempio:
Negli ultimi due casi, usando la tastiera per l'immissione, volendo si potrebbe omettere l'inserimento della lettera tra il punto ed il numero del giocatore perché è implicito che l'assist lo dia un giocatore della stessa squadra o che il fallo sia subito da uno dell'altra.
Molti dati vengono racchiusi tra parentesi quadre poste dopo una sigla: posizioni dei tiri, tempo di gioco e numeri dei giocatori per entrate e sostituzioni, ecc. Se si vogliono rilevare attacchi e difese, dentro le parentesi va immesso il nome dell'attacco o della difesa.
Al di sotto dei bottoni con le sigle dei giocatori, c'è una tabella contenente i dati che servono per controllare e verificare il lavoro che si sta facendo comparandoli tra le due squadre: ci sono i punti (da verificare sul tabellone elettronico), la situazione del bonus, falli fatti e subiti, rimbalzi difensivi e difensivi degli avversari (trovati usando la formula tiri sbagliati - rimbalzi offensivi), stoppate date e subite, palle perse e recuperate, chi ha il possesso del pallone (indicato dal numero 1); ci sono inoltre i quozienti di tiro. Se qualche valore non combina col corrispondente della squadra avversaria, viene segnalato cambiandogli il colore di sfondo.
La tabella del referto, posta in basso a sinistra, presenta tre colonne: