9f09c02a74bd1274d2b35b6829ca41ab10950088
Enuxia Quiz
Application de quiz pédagogique souveraine et auto-hébergée, construite en Rust full-stack.
Conçue pour un usage en présentiel (cours, examens): les étudiants passent le quiz depuis leur navigateur, le professeur consulte les résultats et les statistiques depuis une interface d'administration protégée.
Stack technique
| Composant | Technologie |
|---|---|
| Frontend + Backend | Leptos 0.8 SSR + Axum |
| Base de données | SQLite via SQLx |
| CSS | Tailwind v4 |
| Compilation WASM | wasm-bindgen |
| Déploiement cible | Raspberry Pi 5 (ARM64) |
| Reverse proxy | Traefik |
Fonctionnalités
Côté étudiant
- Accès protégé par un code de session distribué le jour J
- Sélection du quiz, saisie du prénom et nom
- Navigation avant/arrière entre les questions
- Minuteur optionnel avec soumission automatique
- Correction détaillée avec les bonnes réponses après soumission
Côté administration
- Création et édition de quiz (questions, réponses, options)
- Ordre aléatoire des questions et/ou des réponses par quiz
- Blocage anti-doublon — un étudiant ne peut pas repasser sans autorisation
- Reset individuel — le professeur autorise une nouvelle tentative
- Statistiques — moyenne, distribution des scores, taux de réussite par question
- Export CSV des résultats
- Configuration des codes d'accès en live sans recompilation
Sécurité
- Interface admin accessible uniquement via VPN (conseillé)
- Cookies de session httponly
- Normalisation des noms (lowercase + trim) pour l'anti-doublon
Architecture de déploiement optimale
Internet
│
▼
Traefik Gateway (VM OVH)
├── quiz.enuxia.fr → étudiants (public)
└── admin-quiz.enuxia.fr → professeur (VPN uniquement)
│
▼
Raspberry Pi 5
└── enuxia-quiz (binaire Rust)
└── quiz.db (SQLite local)
Installation
Prérequis
rustup target add wasm32-unknown-unknown
cargo install cargo-leptos
Développement
git clone https://git.enuxia.fr/Enuxia-Public/enuxia-quiz
cd enuxia-quiz
cp .env.example .env
# Éditez .env avec vos valeurs
touch quiz.db
cargo leptos serve
Production (binaire)
cargo leptos build --release
# Le binaire est dans target/release/enuxia-quiz
# Les assets sont dans target/site/
Configuration
Créez un fichier .env à la racine :
DATABASE_URL=sqlite:///chemin/absolu/vers/quiz.db
SESSION_PASSWORD=code_distribué_aux_étudiants
ADMIN_PASSWORD=mot_de_passe_admin
LEPTOS_TAILWIND_VERSION=v4.1.13
Les mots de passe sont également modifiables en live depuis /admin/config sans redémarrer l'application.
Licence
MIT — libre d'utilisation, de modification et de déploiement.
Construit par Enuxia — systèmes intelligents souverains sur mesure.
Languages
Rust
80.7%
CSS
17%
TypeScript
1.5%
Dockerfile
0.6%
JavaScript
0.2%