Skip to content

Latest commit

 

History

History
339 lines (159 loc) · 14.9 KB

README.md

File metadata and controls

339 lines (159 loc) · 14.9 KB

Prefazione

Il seguente documento ha l'obiettivo di delineare il funzionamento di Leonapp (www.leonapp.it) per quanto riguarda la funzione dei buoni merenda delle focaccine.

Introduzione

Osservando il sistema corrente dell’acquisto e la cessione dei buoni merenda in cambio delle focaccine, noi autori di questo documento -Niccolò Pagano e Daniele Lin- abbiamo osservato una situazione con dei “problemi” che può essere migliorata. Dopo aver parlato anche con gli studenti, l’amministrazione e le signore delle merendine (d’ora in poi chiamate “commesse”), abbiamo osservato i seguenti problemi:

  1. I buoni delle focaccine cartacei sono volatili, facilmente smarribili e/o prendibili da non-autorizzati (soprattutto nelle classi più basse). Quindi non garantiscono una proprietà sicura.
  2. I buoni delle focaccine cartacei, soprattutto per i consumatori meno frequenti, spesso vengono dimenticati a casa. Tralasciando chi per l’attenzione richiesta di mattina per preparare il materiale scolastico dimentica di mettere nello zaino il buono, sono frequenti i casi in cui il “pasto” con la focaccina non era stato pianificato in precedenza. Quindi non garantiscono la portabilità e la fruibilità senza priore pianificazione.
  3. Chi non ha un blocco di buoni delle focaccine lo deve comprare in amministrazione. Considerati gli orari dell’amministrazione, spesso l’unico momento utile all’acquisto del blocco è l’intervallo (10:40-11:00). Perdere gran parte dell’intervallo scoraggia molti studenti ad andare ad acquistare i buoni, considerata pure la fila fuori dall’amministrazione che in certi giorni è talmente lunga che chi è in fondo non riesce ad acquistare i buoni in tempo. Quindi non garantiscono la facile e veloce acquistabilità.
  4. L’acquisto dei buoni sobbarca l’amministrazione di un compito ripetitivo e intermittente (gli studenti entrando anche in orari sparpagliati disturbano l’amministrazione) che consuma pure tempo. Quindi non riduce il carico sull’amministrazione.
  5. I buoni delle focaccine cartacei non possono essere convalidati velocemente dalle commesse. Non hanno la filigrana né un qualche cosa per rendere difficile la replicazione. Pertanto sono facilmente fotocopiabili (come sfortunatamente è già successo). Quindi non garantiscono la validabilità rispetto a buoni contraffatti.

A questi problemi abbiamo provato a dare una soluzione: un’app/un sito web dove ciascuno studente può accedere, comprare buoni e usufruirne attraverso i codici QR, bypassando le gravose commissioni delle carte di credito.

Definizioni

  • blocco merenda = 10 buoni per acquistare delle focaccine
  • account google scolastico = account dato a ciascuno studente della Google Suite che segue il seguente schema: nome.cognome@studentilicei.leonexiii.it

Procedure operative

Studente

Abilitazione all’acquisto di blocchi merenda

I genitori dello studente (quelli che pagano la retta) compileranno un modulo cartaceo da consegnare ai rappresentanti di classe (che lo consegnano a quelli di istituto) che abilita lo studente ad acquistare fino a 3 blocchi merenda al mese a carico della retta scolastica.

I rappresentanti di istituto consegnano i moduli dei rispettivi plessi all’amministrazione.

Il modulo dovrà contenere:

  • nome e cognome dello studente
  • la mail scolastica dello studente
  • classe, sezione e plesso dello studente
  • casella di consenso da barrare
  • firma di uno/entrambi i genitori

Prima di consegnare il modulo, lo studente si deve già essere recato su www.leonapp.it ed aver inserito la propria classe, la propria sezione e il proprio plesso.

Acquisto di un blocco merenda

Lo studente per acquistare un blocco merenda si reca sul sito www.leonapp.it, accede con l’account google scolastico attraverso il pulsante “sign-in with google”.

>>>>> gd2md-html alert: inline image link here (to images/image1.png). Store image on your image server and adjust path/filename/extension if necessary.
(Back to top)(Next alert)
>>>>>

alt_text

Successivamente nella home page lo studente potrà acquistare un blocco merenda con un pulsante e premendo poi il dialogo di conferma.

! Ogni studente è consapevole che i buoni focaccine sono validi finché l’account google scolastico è abilitato. Quindi concluso il percorso al Leone, i buoni saranno inutilizzabili.

Acquisto di una focaccina

Lo studente può recarsi dalle signore delle focaccine mostrando un codice QR che può ottenere cliccando, sempre sulla home page di www.leonapp.it, il pulsante “mostra buono”. Questo mostrerà il codice QR del primo buono non consumato appartenente allo studente.

Signore delle focaccine

Verifica del buono

Log-In

  • recarsi sul sito scan.leonapp.it
  • inserire il codice uninominale (ogni signora ne ha uno) a 6 cifre

Sulla schermata saranno impressi il numero di buoni scannerizzati in un giorno e la lista degli ultimi 5 buoni scannerizzati (ID e orario di scansione).

Scansione

  • cliccare il pulsante “scansiona”
  • eventualmente abilitare al sito l’accesso alla fotocamera
  • rivolgere la fotocamera posteriore (quella senza lo schermo) verso il codice QR mostrato dallo studente
    • in caso di scansione avvenuta con successo sarà mostrato uno schermo pressoché verde con un pulsante “scansione” per tornare a scansionare altri buoni
    • se il buono non è valido non accadrà nulla e si rimarrà sulla schermata della scansione.

Amministrazione LeoneXIII

Inserire uno studente agli studenti abilitati

  • recarsi su amministrazione.leonapp.it e inserire la relativa password
  • scegliere la schermata “studenti abilitati”
  • sarà disponibile la lista degli studenti con una box di fianco che indica la relativa abilitazione o meno. Se il box è vuoto, cliccare, in caso contrario significa che è già stato abilitato.
  • si prega di verificare se le informazioni sul modulo cartaceo corrispondono a quelle inserite dallo studente su www.leonapp.it

SE lo studente non si è auto-registrato prima (come invece gli è stato indicato), con grande magnanimità:

  • cliccare su “aggiungi studente”
  • inserire nome, cognome, email, classe, sezione e plesso
  • spuntare il box di abilitazione
  • confermare con “conferma”

Scaricare la lista di fatturazione

  • recarsi su amministrazione.leonapp.it e inserire la relativa password
  • scegliere la schermata “lista acquisto buoni”
  • saranno disponibili tutti i downloads contenenti l’excel dell’acquisto dei buoni di tutti i mesi trascorsi
  • cliccando il download si scaricherà il file excel che sarà ordinato per classe, sezione e plesso
    nome | cognome | email | FocaccinaX1/X2/X3 | classe | sezione | plesso | mese

Eventualmente saranno disponibili altri formati per la lista di fatturazione scaricabili sotto API con credenziale OAuth abilitata direttamente da amministrazione.leonapp.it

Amministrazione Pellegrini

Scaricare la lista di fatturazione

  • recarsi su stats.leonapp.it
  • saranno disponibili i download dei mesi precedenti contenenti data e ora di ogni scansione di un QR code

Di fianco al pulsante download sarà già disponibile il conteggio già effettuato del numero di scansioni di quel mese.

Nella pagina ci sarà un grafico cartesiano (orizzontale=giorno, verticale=conteggio focaccine vendute).

Mastercom (?)

Ci rendiamo disponibili ad integrarci con Mastercom per semplificare fino all’ultimo osso l’amministrazione scolastica.

Ci sono tre opzioni che abbiamo pensato (non limitanti):

  1. o Mastercom chiama una nostra API per richiedere le informazioni di fatturazione e automaticamente inserirle.
  2. o noi chiamiamo un’API di Mastercom, una volta concluso il mese, per inviare le informazioni di fatturazione in nostro possesso
  3. o l’amministrazione chiede su amministrazione.leonapp.it un file che poi caricherà su Mastercom. Mastercom poi interpreterà il file e chiederà eventualmente conferma di casi di persone con più nomi, omonime etc.

Dati tecnici

Sistema

  • Sistema operativo: Ubuntu 22.04
  • sito web poggia su: Apache
  • linguaggi utilizzati: php, javascript. html & css (+file di configurazione).
  • database: MySQL + phpmyadmin (leonapp.it/phpmyadmin)
  • gestore VPS corrente: OVH (Essential, 2v Core / 4Gb / 80GB SSD NVMe / 500mbps) → 12,20 EUR/mese (detraibili)
  • gestore DNS leonapp.it → register.it (sempre detraibile)
  • gestore certificato SSL: ZeroSSL (gratuito, da rinnovare ogni 90 giorni!)
  • gestore email: il Devaux dovrà creare un account leonapp@leonexiii.it che invierà le mail di sistema agli studenti e alle due amministrazioni coinvolte.

Passaggio gestione alla scuola

  • i nameservers devono passare a Cloudflare per:

    • protezione daI DoS e dai bot gratuita (qualche simpaticone ci potrebbe provare)
    • certificato SSL automatico gratuito

    register.it non permette di impostare i nameservers diversi dai propri, quindi bisogna riscattare il dominio e trasferirlo a una piattaforma più seria e meno costosa.

  • la VPS deve essere gestita dalla scuola con i relativi costi. Sarebbe possibile avere anche 1v Core, ma bisogna considerare che www.leonapp.it sarà utilizzato anche per l’organizzazione di futuri eventi (come avviene per la cogestione), per il giornalino, per il podcast e per tutte le iniziative degli studenti.

Mantenimento del codice

considerando che finirò anche io il mio percorso scolastico, premettendo che avrò sempre mio fratello come contatto all’interno del Leone, bisogna pensare ad una soluzione a lungo termine dato che questa piattaforma sarà il fulcro dell’organizzazione degli studenti qui al Leone.

Comitato Leonapp

Formalmente si creerà il “Comitato Leonapp” che autorizza cambiamenti resi validi con un voto palese raggiunto il quorum (>50%).

  1. Ogni membro ha pari peso di voto rispetto agli altri. Se un membro ricopre due o più cariche, avrà il doppio o triplo.
  2. Niccolò Pagano e Daniele Lin saranno membri del comitato fino a conclusione del percorso scolastico al Leone. Concluso il percorso, possono nominare il proprio successore. Concluso anch’esso il percorso, farà lo stesso.
  3. Il rappresentante di ogni plesso è membro del comitato fino a nuove elezioni
  4. Il reparto di informatica del Leone può nominare fino a due membri del comitato. Possono nominare fino a 1 non-studente liceale del Leone. La nomina deve essere fatta entro 14 giorni dalla comunicazione dei nuovi rappresentanti di istituto e termina con l’elezione dei nuovi rappresentanti.
  5. Qualora mancasse qualche nomina, la Preside del Liceo può nominare in via eccezionale le cariche mancanti.

Con la suddetta “costituzione” Comitato Leonapp, sono in contrasto 3 poteri: monarchico (i nostri successori), democratico (i rappresentanti degli studenti) e oligarchico (nomine dal reparto di informatica).

L'obiettivo del Comitato è garantire innanzitutto il corretto funzionamento della piattaforma degli studenti e soprattutto mantenere vive le iniziative degli studenti tramite leonapp.it.

GitHub

Tutto il codice, eccetto dei file specifici modificati per evitare di inserire password e informazioni sensibili, saranno caricati su GitHub ed eventualmente su GitLab. Le proposte potranno avvenire anche tramite le pull requests.

Organizzazione GitHub: github.com/leonapp-project

Struttura delle tabelle

Queste sono le seguenti tabelle SQL:

  • utenti: studenti registrati
  • tickets: elenco dei tickets
  • acquisti: elenco dei blocchi acquistati
  • consumazioni: registro delle scannerizzazioni effettuate
  • scanners: elenco stazioni di scannerizzazione (quelle con il pin di 6 cifre) abilitate
  • OAuth: contiene le chiavi di accesso valide e non dell’amministrazione e di eventualmente Mastercom
  • accessi: registro degli accessi degli studenti e dell’amministrazione
  • scaricabili: lista dei file excel per le amministrazioni e il link diretto
  • downloads: registro dei downloads effettuati dalle due amministrazioni
  • abilitazioni: registro di quando uno studente viene abilitato e quando viene disabilitato
  • sent_emails: registro delle mail inviate da leonapp@leonexiii.it

utenti

id, mail, nome, cognome, sessionid, ultimo_accesso, classe, sezione, indirizzo, is_abilitato

tickets

id, ticket_code, status, date_created, date_used, block_id, scanned_by

acquisti

id, user_id, date_purchased, ticket_type

consumazioni

id, ticket_code, ticket_type, ticket_id, date_scanned, scanner_id

scanners

id, scan_pin, display_name, count

OAuth

id, type, grade, key, expiration, access_to, commento

accessi

id, type, timestamp, ip, path, unique

scaricabili

id, type, display_name, path, OAuth_type

downloads

id, file_id, OAuth_id, timestamp, ip

abilitazioni

id, user_id, action, administration_OAuth, ip, timestamp, unique

sent_emails

id, type, recipient, extra_data

Piani per il futuro

Prenotazione focaccine

Lo studente può prenotare il giorno prima la focaccina per il giorno dopo, riservandosi, ad un prezzo ridotto.

Questo ridurrà lo spreco delle focaccine invendute, aumentando i profitti. Inoltre ridurrà la possibile delusione e insoddisfazione di non trovare le focaccine al banco, rimanendo a secco (e questo potrebbe portare lo studente a considerare le focaccine come un piano B in quanto inaffidabili).

Si potrà inoltre prenotare le focaccine per tutta la settimana.

Machine Learning

Avvalendosi dei dati raccolti (che rimarranno all’interno della scuola) ovvero dei giorni di acquisto, di accesso etc. di ogni studente, proveremo ad addestrare una rete neurale che stimerà con una certa precisione il numero di focaccine per il certo giorno.

Confidiamo molto che questo modello sarà efficace ad aumentare i profitti riducendo gli sprechi ed eventualmente riducendo il prezzo delle focaccine soprattutto per chi le prenota.

Acquisto buoni mensa

Confidiamo che il Gruppo Pellegrini e la scuola, vedendo il successo sperato per le focaccine, voglia (come vogliamo noi) estendere il funzionamento di Leonapp all’acquisto dei buoni pasto della mensa eventualmente anche ai professori.

Iniziative degli studenti

Premettendo che questo non riguarda Leonapp-focaccine, queste potrebbero essere i futuri miglioramenti di Leonapp:

  • gestione degli eventi come la Cogestione
  • ospitare in formato moderno i giornalini degli studenti
  • ospitare in formato moderno il podcast
  • prenotazione delle aule scolastiche
  • scambio di appunti tra gli studenti
  • votazione democratica di proposte