Questo repository nasce con l'obiettivo di raccogliere, archiviare e standardizzare i quiz universitari. L'idea è quella di creare una base di dati strutturata in formato JSON, utile per facilitare lo studio e permettere l'integrazione di questi dati in applicazioni o piattaforme di apprendimento.
Per utilizzare gli script di generazione e validazione, è consigliato configurare un ambiente Python:
./scripts/quiz_cli.shQuesto comando crea/usa venv, installa le dipendenze (solo quando cambiano) e apre una CLI interattiva per lanciare tutti gli script principali.
- Crea e attiva l'ambiente virtuale:
python3 -m venv venv source venv/bin/activate # Su Windows: .\venv\Scripts\activate
- Installa le dipendenze:
pip install -r scripts/requirements.txt
- Configura le chiavi: Copia il file
.env.examplein.enve inserisci la tua Gemini API Key.
Il progetto è organizzato per università e facoltà:
quizzes/<università>/<facoltà>/:_docs/: Contiene il materiale grezzo (PDF, dispense).community/: Contiene i quiz generati o revisionati dagli utenti.uniquizzes/: (Opzionale) Quiz provenienti da fonti ufficiali o specifiche.
open-questions/<università>/<facoltà>/<categoria>.json: Domande a risposta aperta, valutate tramite AI.- Il nome del file definisce la categoria (es.
sistemi-operativi.jsondiventa "Sistemi Operativi"). - Ogni file JSON contiene un array di oggetti con campo
text(obbligatorio),referenceAnswerehint(opzionali).
- Il nome del file definisce la categoria (es.
scripts/: Strumenti per la generazione e validazione dei quiz.schema/: Schemi JSON di riferimento.
Inserisci il PDF nella cartella _docs del corso di riferimento (es: quizzes/sapienza/informatica/_docs/esame.pdf).
Lo script generate_quiz.py usa l'IA per analizzare il PDF e salvarlo nella cartella community corretta.
python scripts/generate_quiz.pySe preferisci usare NotebookLM:
- Carica i file nel notebook.
- Usa il prompt che trovi nella cartella
prompt/per generare il JSON. - Salva il risultato nella cartella
community/del corso.
Il controllo della struttura JSON è automatico su ogni Pull Request tramite GitHub Actions. Per verificare localmente prima di caricare:
python3 scripts/validate.py- Origine dei dati: I quiz devono essere generati esclusivamente a partire da appunti personali, rielaborazioni originali di concetti generali o da materiale di cui si detengono i diritti di distribuzione. È severamente vietato caricare materiale protetto da copyright (scansioni di libri, slide protette, test ufficiali) nella cartella
_docs. - Responsabilità: Ogni contributore è l'unico responsabile del materiale che carica. I manutentori del repository si riservano il diritto di rimuovere immediatamente qualsiasi contenuto segnalato per violazione della proprietà intellettuale.
- DMCA / Takedown: Questo progetto ha scopi puramente didattici. Se sei il titolare di un diritto d'autore e ritieni che un contenuto violi il copyright, contattaci inviando una segnalazione: provvederemo alla rimozione immediata del materiale indicato.
- Carica il materiale in
_docs/. - Genera il JSON (automaticamente o via prompt).
- Verifica il file con lo script.
- Invia una Pull Request.
- Crea un file JSON in
open-questions/<università>/<facoltà>/<categoria>.json. - Ogni oggetto deve avere almeno il campo
text. AggiungireferenceAnswerper guidare la valutazione AI ehintper aiutare lo studente. - Verifica il file con lo script di validazione.
- Invia una Pull Request.
L'obiettivo è rendere il materiale didattico più accessibile e organizzato attraverso la condivisione.