Guide de configuration¶
Prérequis¶
| Composant | Version minimale | Notes |
|---|---|---|
| Python | 3.11+ | Poetry recommandé pour la gestion des dépendances |
| Node.js | 24.0.0+ | LTS actif recommandé |
| npm | inclus avec Node | |
| Git | n'importe laquelle | Requis pour les fonctionnalités Learning Repository |
Cloner et installer¶
git clone https://github.com/astrapi69/adaptive-learner.git
cd adaptive-learner
# Installer Python + Node + toutes les dépendances des plugins
make install
make install exécute :
1. pip install poetry (si absent)
2. cd backend && poetry install
3. npm ci dans frontend/
4. poetry install dans chaque répertoire plugins/
Configuration¶
Clé secrète (obligatoire)¶
L'application refuse de démarrer sans cette variable d'environnement.
Clés API (optionnelles)¶
Ou utilisez ~/.config/adaptive_learner/secrets.yaml :
Fichier de configuration de l'application¶
backend/config/app.yaml contrôle les plugins activés, les paramètres
de base de données et les options de déploiement. Lors du premier démarrage
sans ce fichier, il est créé à partir de app.yaml.example.
Lancer l'application¶
# Backend (port 18001) + frontend (port 15174) en parallèle
make dev
# Ou séparément
make dev-bg # démarre les deux en arrière-plan
make dev-down # arrête les processus en arrière-plan
L'application est disponible à http://localhost:15174.
Tests¶
make test # backend + plugins + Vitest (sans couverture)
make test-backend # pytest backend uniquement
make test-plugins # toutes les suites de tests des plugins
make test-frontend # Vitest uniquement
make test-coverage # avec rapport de couverture (optionnel)
make test-dexie-smoke # gate de version mode Dexie (requis avant une release)
Tests E2E (nécessitent une application en cours d'exécution) :
Linting¶
# Backend Python
cd backend && poetry run ruff check app/ --fix
cd backend && poetry run ruff format app/
# Frontend TypeScript
cd frontend && npx eslint src/ --fix
cd frontend && npx prettier --write src/
# Vérification de types
cd frontend && npx tsc --noEmit
cd backend && poetry run mypy app/
Hooks pré-commit¶
Les hooks s'exécutent automatiquement avant chaque commit : ruff, prettier, ESLint, et vérifications YAML/JSON.