---
title: "ExamForge"
url: "https://edoardo.anteprime.edoardogabrielli.com/it/progetti/examforge"
lang: "it"
updated: "2026-11-01"
---

# ExamForge

> ExamForge: legge i materiali di un corso e genera domande d'esame originali con soluzione, teoria e formule. Progetto personale che presto sarà open source.

Un programma che legge i materiali di un corso (PDF, markdown, testo) e genera domande d'esame originali, con soluzione e teoria. È un progetto personale e presto sarà open source.

## Perché l'ho fatto

Per prepararsi a un esame universitario servono domande nuove, costruite sul proprio materiale e non su banche di quiz generiche. Il primo a usarlo sono stato io, per un esame di statistica. Non ho notizie di altri utenti.

È nato come programma da riga di comando e poi è cresciuto in tre parti: un'app web, un'app desktop con lo stesso frontend e alcuni strumenti per lo studio personale.

![Indice degli argomenti ricavato dai materiali del corso (dati di prova).](https://edoardo.anteprime.edoardogabrielli.com/media/originals/2026/11/ee83a1bd08d841e99e328882f56a61a2/examforge-argomenti.webp)

## Come funziona

Il programma legge i file del corso in due passaggi: una chiamata a un modello AI per ogni file per estrarre gli argomenti, poi un'unione che elimina i doppioni. Da quell'indice genera l'esame con il numero di domande, la difficoltà e gli argomenti scelti. Ogni domanda viene controllata dall'AI e rigenerata se incoerente. Le formule sono rese con KaTeX.

Per i modelli si può usare un servizio esterno (OpenRouter) oppure, sul desktop, gli strumenti da riga di comando di Claude o Codex già installati, senza bisogno di una chiave.

## Alcune schermate

![Pagina di generazione dell'esame: numero di domande, difficoltà e argomenti.](https://edoardo.anteprime.edoardogabrielli.com/media/originals/2026/11/b0f44699d5da40d1927fe3c6ee135c60/examforge-genera.webp)

![Esercitazione con timer, domanda con formule e autovalutazione (domanda di prova).](https://edoardo.anteprime.edoardogabrielli.com/media/originals/2026/11/a5907b85d5b94197a09108db9924502f/examforge-esercitazione.webp)

![Pagina di studio con formule, indice laterale e download per Kindle, tablet e A4.](https://edoardo.anteprime.edoardogabrielli.com/media/originals/2026/11/328bcfa0773a4c438e41364a1a315db0/examforge-pagina-studio.webp)

## Scelte tecniche

- Backend in Rust (Axum, sqlx) con PostgreSQL; frontend React e TypeScript condiviso tra web e desktop (Tauri).
- Accesso con hash delle password (Argon2), token di breve durata con rinnovo, limiti di richieste per indirizzo e verifica dell'email. Il piano gratuito è limitato dal server.
- Le formule tra dollari vengono messe da parte prima del markdown e riscritte con KaTeX dopo, perché altrimenti il markdown le rovina.
- Il ciclo di generazione delle domande è scritto due volte, per web e desktop: l'ho lasciato così per ora.

## Strumenti per lo studio

Nello stesso repository ci sono tre strumenti nati dall'uso personale. Il primo trasforma slide e appunti in pagine di studio in HTML con formule, schemi, quiz e trappole, con PDF per Kindle, tablet e A4 ed EPUB. Il secondo è una pagina vocale: il telefono ascolta e legge, mentre la risposta viene generata sul server di casa. Il terzo produce audio-lezioni con una sintesi della mia voce, da ascoltare correndo.

## Limiti onesti

Gira sul mio server di casa e non ha ancora un servizio pubblico né una demo. Mancano la correzione delle risposte scritte, la difficoltà adattiva e un'interfaccia per più utenti che collaborano. Il codice di web e desktop non ha test automatici: lo controllo con la compilazione e con l'uso. Sono circa 72 commit, 5.900 righe di Rust e 10.200 tra TypeScript e CSS; ho lavorato da solo, con Claude Code.

**Stack:** Rust (Axum, sqlx, Tauri), PostgreSQL, React, Vite, TypeScript, KaTeX, Docker, Nginx, Node.js.

[← Tutti i progetti](https://edoardo.anteprime.edoardogabrielli.com/it/progetti)