Skip to content

Repository files navigation

QuizApp iOS

App di studio per iPhone e iPad. Importi i tuoi contenuti via JSON e l'app ti fa quiz, ti propone la teoria e ripropone le domande al momento giusto per fissarle in memoria.

License Platform Swift UI


Indice


Come funziona

Carichi le tue materie con file JSON. Ogni materia porta con sé domande, tassonomia degli argomenti e (facoltativamente) la teoria. L'app organizza lo studio in cinque schede:

  • Oggi — punto di partenza: ripasso intelligente con le domande in scadenza (ripetizione dilazionata), precisione media e giorni di fila.
  • Quiz — scegli la modalità (ripasso intelligente, generale, per categoria o solo errori) e quante domande fare.
  • Teoria — leggi i notebook per argomento, con percorso di studio guidato e avanzamento.
  • Statistiche — andamento della precisione nel tempo, per sessione e per argomento.
  • Materie — la libreria delle materie importate.

Tour dell'app

Schermata Oggi
Oggi
Il ripasso intelligente propone le domande in scadenza secondo l'algoritmo SM-2: le rivedi proprio quando stai per dimenticarle.
Modalità Quiz
Modalità di quiz
Scegli come allenarti — ripasso intelligente, generale, per categoria o solo errori — e quante domande fare.
Indice Teoria
Teoria — indice
Un notebook per ogni argomento, con percorso guidato e avanzamento.
Lettura notebook di teoria
Teoria — lettura
Testo in Markdown; da qui passi al quiz sull'argomento ("Allenati sulle domande chiave").
Feedback risposta errata
Feedback — errata
Quando sbagli ti mostra subito la risposta giusta e perché le altre non andavano bene.
Feedback risposta corretta
Feedback — corretta
Le risposte giuste vengono confermate subito, con la motivazione.
Caso di studio
Casi di studio
Uno stimolo comune — codice, testo o media — seguito da più sotto-domande collegate.
Riepilogo sessione
Riepilogo sessione
Punteggio, tempo, media per domanda e prestazione per categoria a fine quiz.
Statistiche
Statistiche
Andamento nel tempo: precisione media, sessioni, giorni di fila e dettaglio per argomento.

Crea i tuoi contenuti (JSON)

L'app legge file JSON per avere i contenuti. Ogni materia è un file separato che puoi scrivere con qualsiasi editor di testo.

Struttura di base

Ogni file ha quattro parti obbligatorie — meta, config, taxonomy, questions — e una facoltativa, theory:

{
  "meta": {
    "subject_id": "auto:sha256",
    "subject_name": "Nome della tua materia",
    "version": 1
  },
  "config": {
    "scales_questions": [10, 20, 50, "all"],
    "scales_category": [5, 10, 20, "all"],
    "scales_errors": [5, 10, 20, "all"],
    "feedback": "immediate"
  },
  "taxonomy": [
    { "id": "argomento_1", "name": "Primo argomento" },
    { "id": "argomento_2", "name": "Secondo argomento" }
  ],
  "questions": [
    // Le domande vanno qui
  ],
  "theory": [
    // Notebook di teoria (facoltativo)
  ]
}
  • meta.subject_id può essere lasciato a "auto:sha256": l'app lo deriva dal contenuto del file.
  • config.scales_* sono gli scaglioni per "quante domande" mostrati nelle varie modalità ("all" = tutte).
  • taxonomy elenca gli argomenti; ogni domanda deve riferirsi a un id presente qui (campo category).

Le domande

Ogni domanda ha sempre id (unico nel file), category (un id della tassonomia), kind e prompt. I tipi supportati (kind) sono:

kind Descrizione
multiple Scelta multipla (una o più risposte corrette)
matching Abbinamento tra due colonne
trueFalseMotivated Vero/Falso con motivazione da scegliere
clozeWordBank Testo bucato con banca di parole
shortAnswer Risposta breve testuale
ordered Riordino di elementi
calculation Calcolo con tolleranza numerica
openRubric Risposta aperta valutata su rubrica (formativa)
constructedResponse Produzione guidata su criteri (formativa)
mediaAnalysis Analisi di un media con sotto-domande
caseStudy Caso di studio: stimolo comune + più sotto-domande

Esempio a scelta multipla:

{
  "id": "domanda_001",
  "category": "argomento_1",
  "kind": "multiple",
  "prompt": "Qual è la capitale della Francia?",
  "options": [
    { "id": 1, "text": "Londra", "isCorrect": false },
    { "id": 2, "text": "Parigi", "isCorrect": true },
    { "id": 3, "text": "Roma", "isCorrect": false }
  ]
}

Esempio Vero/Falso motivato:

{
  "id": "domanda_002",
  "category": "argomento_1",
  "kind": "trueFalseMotivated",
  "prompt": "Il metodo GET invia i parametri nella query string.",
  "answer": true,
  "optionPool": {
    "displayCount": 4,
    "correctCountRange": { "min": 1, "max": 3 },
    "allowDuplicateConcepts": false,
    "entries": [
      { "id": "d002_c1", "text": "I dati sono nell'URL e quindi riapribili.", "isCorrect": true },
      { "id": "d002_w1", "text": "GET cifra sempre i parametri.", "isCorrect": false }
    ]
  }
}

Per il dettaglio degli altri tipi, i file in quiz_app/Documents/ sono esempi completi e funzionanti da cui partire; gli script in scripts/ mostrano come generarli e arricchirli (es. struttura guidata della teoria).

Le domande aperte (openRubric, constructedResponse) sono formative: mostrano una rubrica di autovalutazione ma non producono un esito e non rientrano nelle statistiche di precisione.

La teoria (facoltativa)

Ogni voce di theory è un notebook agganciato a un argomento tramite categoryId (lo stesso id della tassonomia):

{
  "categoryId": "argomento_1",
  "title": "Titolo dell'argomento",
  "intro": "Riga introduttiva breve.",
  "body": "Corpo completo in **Markdown**.",
  "sections": [
    { "id": "sez_1", "title": "Sezione", "summary": "Anteprima", "body": "Testo in Markdown." }
  ],
  "estimatedMinutes": 8
}

Le sections ordinate alimentano il percorso di studio guidato; body è la versione integrale leggibile con "Leggi tutto".

Caricamento

L'app importa automaticamente tutti i file JSON presenti nella cartella quiz_app/Documents/: aggiungili lì e verranno caricati all'avvio.


Widget

L'app include un widget per la home "Ripasso del giorno", che mostra il numero di domande in scadenza. Target ed App Group sono già configurati nel progetto: vedi WIDGET_SETUP.md per i dettagli.


Tema scuro

L'app segue di default l'aspetto di sistema e puoi forzare chiaro o scuro dalle impostazioni. Il tema scuro è curato e vale la pena provarlo.

Oggi (dark) Quiz (dark) Teoria (dark)
Domanda (dark) Statistiche (dark) Riepilogo (dark)

Installazione

Serve iOS 18.5 o più recente. Clona il repository, apri il progetto in Xcode, metti i tuoi file JSON in quiz_app/Documents/ e compila lo schema quiz_app.


Licenza MIT — by subnetMusk · vedi DISCLAIMER per le fonti dei contenuti.

About

App per iOS per la generazione di schede di quiz di allenamento + stats. A patto che si fornisca un file conforme nessun argomento è discriminato.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages