Skip to content

Nemesis-FT/Condivisione-Fermi

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!

About

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

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors