https://github.com/nemesis-ft/condivisione-fermi
Peer to peer lesson manager webapp, currently in use @ ITIS Enrico Fermi.
https://github.com/nemesis-ft/condivisione-fermi
educational-software flask-webapp peer-education recovery-courses
Last synced: 3 months ago
JSON representation
Peer to peer lesson manager webapp, currently in use @ ITIS Enrico Fermi.
- Host: GitHub
- URL: https://github.com/nemesis-ft/condivisione-fermi
- Owner: Nemesis-FT
- License: lgpl-3.0
- Created: 2017-09-17T13:10:41.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2021-10-22T08:54:55.000Z (over 4 years ago)
- Last Synced: 2025-03-04T09:43:04.561Z (over 1 year ago)
- Topics: educational-software, flask-webapp, peer-education, recovery-courses
- Language: HTML
- Homepage: https://condivisione.fermi.mo.it/
- Size: 1.77 MB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# 
Un sito per permettere la pianificazione di ripetizioni gratuite tra studenti.
È [attualmente utilizzato](https://condivisione.fermi-mo.gov.it/login)
dall'[ITIS Enrico Fermi di Modena](https://www.fermi-mo.edu.it/pvw/app/MOIT0016/pvw_sito.php) 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
- [Git](https://git-scm.com/)
- [Python 3.6 o superiore](https://www.python.org/downloads/) con `pip` e `venv`
## Installazione
1. _Clona_ questo repository con Git ed entra nella directory creata:
```bash
git clone https://github.com/LBindustries/Condivisione-Fermi
cd Condivisione-Fermi
```
2. Crea un nuovo _venv_ in cui installare pacchetti e attivalo:
```powershell
# Su Windows Powershell
py -m venv venv
./venv/bin/activate.ps1
```
```bash
# Su Linux (Bash)
python3 -m venv venv
source ./venv/bin/activate
```
3. Installa i pacchetti richiesti all'interno del venv:
```bash
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](https://t.me/BotFather).
- `fromemail`: _(Opzionale)_ Email completa (`example@gmail.com`) di un account [Gmail](gmail.com) usato per inviare email
- `gmailusername`: _(Opzionale)_ Username di un account [Gmail](gmail.com) usato per inviare email
- `gmailpassword`: _(Opzionale)_ Password di un account [Gmail](gmail.com) usato per inviare email
- `sentrydsn`: _(Opzionale)_ Token ottenuto da un'istanza di [Sentry](https://sentry.io/) per il reporting automatico degli errori
- `recaptchapubkey`: _(Opzionale)_ Chiave pubblica ottenuta dalla
[Admin Console di ReCAPTCHA](https://www.google.com/recaptcha/admin/create)
- `recaptchasecret`: _(Opzionale)_ Chiave segreta ottenuta dalla
[Admin Console di ReCAPTCHA](https://www.google.com/recaptcha/admin/create)
- `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:
```bash
python server.py
```
## Deployment
Condivisione-Fermi può essere usato con tutte le opzioni di deployment
[supportate da Flask](https://flask.palletsprojects.com/en/1.1.x/deploying/), ma si suggerisce di utilizzare
[`apache2` con `mod_wsgi`](https://flask.palletsprojects.com/en/1.1.x/deploying/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](/docs/Manual.pdf).
## Documentazione
E' disponibile [un manuale (in inglese)](/docs/Manual.pdf) 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](https://github.com/LBindustries/Condivisione-Fermi/issues/new) nella pagina progetto di GitHub.
Se hai sviluppato una **modifica al software**, puoi
[aprire una pull request](https://github.com/LBindustries/Condivisione-Fermi/pulls) per richiedere di integrarla nel progetto!