ReintegrApp è una Web Application gestionale sviluppata senza fini di lucro da Riccardo Riggi per organizzazioni di volontariato che operano nel campo dell'emergenza/urgenza
- MySQL
- HTML
- CSS
- JavaScript
- AJAX
- Jquery
- SBAdmin 2
- ChartJs
- Bootstrap & Bootstrap Italia
- FontAwesome
- DataTables.js
- PHP puro
- Servizio Google per la generazione dei QR code
Per avviare l'installazione bisogna entrare tramite il browser all'interno della cartella ./installazione. Per procedere sono richieste le seguenti informazioni:
- Nome dell'ente/associazione
- Indirizzo ip del database MySQL
- Nome utente del database
- Password per accedere al database
- Chiave di cifratura per la crittografia delle informazioni personali
- Indirizzo email dell'utente amministratore
- Password dell'utente amministratore
Dopo aver cliccato su Avvia installazione una schermata confermerà il buon esito dell'operazione. In automatico verrete ridiretti sulla schermata di autenticazione dove saranno richiesti indirizzo email e password dell'utente amministratore. La schermata home confermerà il buon esito dell'operazione. Adesso è necessario cancellare la cartella ./installazione per impedire ad altri utenti di sovrascrivere il database. Si consiglia sempre di effettuare backup periodici, compreso il pacchetto appena scaricato.
Di seguito potete trovare una documentazione che illustra le funzionalità di quest'applicazione web. Dalla homepage è possibile vedere la classifica degli utenti più attivi, il grafico dei movimenti dell'ultima settimana e il menu rapido per i prodotti scaduti, in scadenza, da reintegrare o da ordinare perché esauriti.
Sotto la voce anagrafica è disponibile la funzionalità per creare un nuovo utente. I campi obbligatori sono nome, cognome, numero di tessera, email e password (per consentirgli successivamente di accedere all'applicativo). I campi facoltativi sono il sesso, la data di nascita, il numero di abilitazione DAE, il possesso della certificazione per l'emergenza, il comune di residenza, l'indirizzo, il civico e l'interno. Dopo il salvataggio verrete portati nella pagina di modifica dell'utente.
Dalla lista utenti è possibile accedere alla pagina di modifica, stampare il codice qr che permette l'autenticazione agli utenti dalla web app mobile ed eliminare la singola occorrenza.
Dalla pagina di gestione badge è possibile procedere alla stampa dei codici di accesso, vedere lo stato di attivazione di ogni singolo account, variarlo e rigenerare il qr code in caso di smarrimento o furto.
Dalla pagina di gestione ruoli è possibile variare il ruolo di ogni singolo utente. Durante la procedura di installazione vengono creati quattro ruoli con funzioni specifiche:
- Volontario: può accedere solamente alla parte dell'applicativo adibita alla registrazione dei movimenti del magazzino
- Caposquadra: può accedere al gestionale per stampare le checklist dei mezzi da compilare ad ogni inizio turno
- Magazziniere: può accedere a tutta la gestione del magazzino, messaggi, notifiche
- Super utente: ha tutti i privilegi
Dalla pagina aggiungi veicolo è possibile inserire un nuovo mezzo nel sistema. Le informazioni richieste sono il nome, il codice di riconoscimento (identificativo radio), la targa e il tipo di veicolo. Ogni veicolo può contenere degli zaini, delle sacche e dei prodotti. Quando andiamo ad inserire un prodotto in un veicolo, zaino, oppure sacca per la prima volta, dobbiamo specificare il quantitativo massimo e successivamente la quantità inserita in maniera effettiva e la data di scadenza. Per i successivi aggiornamenti solamente la quantità inserita e la data di scadenza, se diversa da quella inserita precedentemente.
In questa pagina è possibile vedere l'elenco dei veicoli, modificarne i dettagli ed eliminarli.
Grazie a questa pagina è possibile registrare dei nuovi zaini, bisogna inserire un nome e, necessariamente, associarlo ad un veicolo. Ogni zaino può contenere delle sacche e dei prodotti.
In questa pagina è possibile vedere l'elenco degli zaini, modificarne i dettagli ed eliminarli.
Dalla pagina aggiungi sacca è possibile aggiungere l'oggetto al database. Bisogna inserire il nome, il colore e la posizione che può essere dentro uno zaino oppure dentro un veicolo. Ogni sacca può contenere una lista di prodotti. Al salvataggio viene chiesto un numero di sigillo da applicare.
In questa pagina è possibile vedere l'elenco delle sacche, modificarne i dettagli ed eliminarle.
Dalla pagina aggiungi prodotto è possibile inserire l'elenco dei presidi, materiali, attrezzatura e altro presente all'interno del magazzino. Bisogna inserire un nume, eventualmente una descrizione, il quantitativo totale presente attualmente nel magazzino e il quantitativo disponibile per il personale che addetto a reintegrare i mezzi. Ad ogni ripristino di mezzi i quantitativi verranno aggiornati automaticamente.
In questa pagina è possibile vedere l'elenco dei prodotti, modificarne le quantità ed eliminarli.
Dalla lista delle etichette è possibile stampare i QR code identificativi dei singoli prodotti da applicare nei relativi scompartimenti del magazzino. Ogni singolo utente, tramite la web application mobile potrà scansionare il codice per identificare l'articolo e confermare il movimento.
Dalla homepage, cliccando su una delle quattro card colorate è possibile accedere ad una lista filtrata per data di scadenza oppure quantitativo. Ogni singolo prodotto aggiunto ad un mezzo, zaino oppure sacca dispone di una data di scadenza per dare la possibilità al magazziniere di tenere traccia delle scadenze e sostituire per tempo gli articoli in scadenza.
Configurando mezzi, zaini, sacche e prodotti il software è in grado in maniera automatica di generare una checklist per ogni singolo veicolo.
Dalla pagina lista checklist è possibile selezionare un mezzo per stampare la relativa checklist.
Per rendere più semplice e veloce l'operazione di tracciatura dei movimenti all'interno del magazzino viene utilizzata una web application progettata appositamente per dispositivi mobile. L'autenticazione può avvenire tramite l'inserimento di email e password oppure tramite la scansione del proprio token cartaceo.
Successivamente una schermata illustrerà alcune statistiche come la data dell'ultimo accesso, il numero di veicoli ripristinati, il numero di prodotti rimessi a posto e il numero di messaggi di segnalazione inviati.
Cliccando su reintegra un mezzo è possibile scegliere il veicolo e successivamente inquadrare il codice qr del prodotto scelto. Per ogni prodotto possiamo scegliere la quantità e, in caso di numeri non congruenti (l'applicazione segnala 10 articoli, ma nel magazzino ne sono presenti solamente 7) è possibile notificare al responsabile questa discrepanza.
Terminata la lista dei materiali da ripristinare è possibile cliccare sul pulsante "Ho finito" per terminare l'operazione.
Dalla pagina della lista reintegri è possibile vedere ogni singolo evento con la relativa lista di articoli movimentati.
La classifica dei reintegri mostra in ordine decrescente gli utenti in base al numero di movimenti.
Dalla web application mobile, tramite il menu di navigazione presente a fondo pagina, è possibile accedere alla pagina per poter inviare un messaggio ai magazzinieri.
La lista messaggi offre la possibilità di leggere le comunicazioni inviate da parte degli utenti.
Da questa pagina è possibile vedere le segnalazioni di prodotti con quantità non corrispondenti.
I dati personali degli utenti sono cifrati in banca dati mediante l'algoritmo di cifratura AES con chiave a 128 bit. In fase di installazione è possibile scegliere la chiave di cifratura.
Le password degli utenti vengono cifrate mediante una funzione crittografica di hash irreversibile. La password, se dimenticata, può essere reimpostata, ma non recuperata
Per prevenire tentativi di attacco Brute Force è stato implementato un sistema di controllo delle autenticazioni fallite, dopo 10 tentativi l'applicazione bloccherà l'accesso a quel determinato indirizzo ip che potrà essere sbloccato manualmente. Ogni indirizzo ip prima di venire salvato viene elaborato con una funzione di hash che lo rende anonimo.
In qualunque momento è possibile bloccare l'accesso all'applicazione da parte di un utente, se autenticato, verrà disconnesso automaticamente.
Lasciando l'applicazione ferma sulla stessa pagina per un determinato periodo, variabile dal file di configurazione, entrerà in automatico un sistema di protezione che bloccherà la sessione e la farà proseguire solamente previo inserimento di password.
Il software è progettato in maniera tale da permettere una sola sessione attiva per utente. Ad ogni nuova autenticazione le sessioni precedenti verranno disconnesse.
Spetta alla singola associazione adempire agli obblighi di legge imposti dal regolamento generale sulla protezione dei dati n. 2016/679 dell'Unione Europea.
Il codice sorgente viene rilasciato con licenza MIT. Framework, temi, librerie e tutte le tecnologie mantengono le loro relative licenze.
Il software viene fornito "così com'è", senza garanzie. Riccardo Riggi non concede alcuna garanzia per il software e la relativa documentazione in termini di correttezza, accuratezza, affidabilità o altro. L'utente si assume totalmente il rischio utilizzando questo applicativo.
Il nome deriva dalla classica frase "Vai a reintegrare il mezzo", detta da ogni soccorritore a fine intervento. Dopo ogni missione di soccorso bisogna "reintegrare", ovvero riportare nelle condizioni iniziali il mezzo andando a ripristinare il materiale usato.
Sono consapevole che il codice possa essere notevolmente migliorato. Questo progetto è datato Aprile 2020, realizzato con le conoscenze e l'esperienza dell'epoca. In una prima versione avevo utilizzato Bootstrap Italia, solo ultimamente ho deciso di aggiornare l'interfaccia grafica e pubblicarlo su GitHub nella speranza che questo software possa essere utile anche a qualcuno.