Skip to content

Peer to peer lesson manager webapp, currently in use @ ITIS Enrico Fermi.

License

Notifications You must be signed in to change notification settings

Nemesis-FT/Condivisione-Fermi

Repository files navigation

Condivisione-Fermi

Un sito per permettere la pianificazione di ripetizioni gratuite tra studenti.

È attualmente utilizzato dall'ITIS Enrico Fermi di Modena nelle attività della Peer Education. Negli anni, ha aiutato centinaia di studenti gestendo l'erogazione sicura e controllata di videolezioni.

Caratteristiche principali

  • Gestione di corsi di recupero, sia da parte di volontari autorizzati che da parte di docenti.
  • Alte capacità di interazione con gli utenti, sia mediante Telegram che mediante email.
  • Facilmente scalabile ed estendibile a qualsiasi realtà scolastica, a patto che vi sia una pre-esistente struttura di Peer Education presente in loco.
  • Funzionalità di appello: i genitori degli studenti che partecipano alle lezioni vengono sempre informati della presenza (o dell'assenza) dei propri figli.

Requisiti

Installazione

  1. Clona questo repository con Git ed entra nella directory creata:

    git clone https://github.com/LBindustries/Condivisione-Fermi
    cd Condivisione-Fermi
  2. Crea un nuovo venv in cui installare pacchetti e attivalo:

    # Su Windows Powershell
    py -m venv venv
    ./venv/bin/activate.ps1
    # Su Linux (Bash)
    python3 -m venv venv
    source ./venv/bin/activate
  3. Installa i pacchetti richiesti all'interno del venv:

    pip install -r requirements.txt
  4. Crea un file configurazione.txt o una variabile di ambiente SITE_CONFIG con il seguente contenuto:

    cookiekey|telegramkey|fromemail|gmailusername|gmailpassword|sentrydsn|recaptchapubkey|recaptchasecret|brasamail
    

    Sostituisci i seguenti parametri con il loro valore corrispondente, rimuovendoli completamente nel caso si voglia lasciare vuoto un parametro opzionale:

    • cookiekey: una chiave segreta sicura che sarà utilizzata per criptare i cookies (puoi usare una stringa casuale di testo di almeno 24 caratteri, oppure generala con python -c "import os; print(os.urandom(24))")
    • telegramkey: l'API key di un bot di Telegram ottenuta registrando un bot su @BotFather.
    • fromemail: (Opzionale) Email completa (example@gmail.com) di un account Gmail usato per inviare email
    • gmailusername: (Opzionale) Username di un account Gmail usato per inviare email
    • gmailpassword: (Opzionale) Password di un account Gmail usato per inviare email
    • sentrydsn: (Opzionale) Token ottenuto da un'istanza di Sentry per il reporting automatico degli errori
    • recaptchapubkey: (Opzionale) Chiave pubblica ottenuta dalla Admin Console di ReCAPTCHA
    • recaptchasecret: (Opzionale) Chiave segreta ottenuta dalla Admin Console di ReCAPTCHA
    • brasamail: (Opzionale) si per abilitare l'eliminazione definitiva tutti gli account utente registrati
  5. Finito! Ora puoi avviare Condivisione-Fermi mentre sei all'interno del venv con:

    python server.py

Deployment

Condivisione-Fermi può essere usato con tutte le opzioni di deployment supportate da Flask, ma si suggerisce di utilizzare apache2 con mod_wsgi in quanto essa è la modalità attualmente utilizzata dall'ITIS Fermi.

Per ulteriori informazioni relative al deployment, si consiglia di fare riferiemento al manuale.

Documentazione

E' disponibile un manuale (in inglese) per l'utilizzo di Condivisione-Fermi, il quale è diviso in sezioni a seconda del tipo di utente della piattaforma (dall'utente normale, all'amministratore di sistema).

Contributi

Per segnalare bug, fare domande o richiedere nuove feature, puoi aprire una issue nella pagina progetto di GitHub.

Se hai sviluppato una modifica al software, puoi aprire una pull request per richiedere di integrarla nel progetto!