# 1. Installer les dépendances
pip install -r requirements.txt
# 2. Initialiser la base de données avec des données d'exemple
python backend/init_db.py
# 3. Lancer l'application
python backend/main.pyPuis dans un autre terminal :
python -m http.server 3000 --directory frontendAccéder à l'application :
- Frontend: http://localhost:3000
- API Backend: http://localhost:8000
- Documentation API: http://localhost:8000/docs
- Ouvrir http://localhost:3000
- Cliquer sur "Leçons"
- Ouvrir "Les Bases de Python"
- Faire l'exercice "Hello World"
- Cliquer sur "Connexion"
- Entrer un email (ex:
user@test.com) - Copier le token affiché (mode dev)
- Cliquer sur "Se connecter"
- Se connecter avec :
admin@pylearn.local - Demander un magic link
- Le token s'affiche en mode dev
- Après connexion, un onglet "Admin" apparaît
- Créer des leçons, exercices et tests !
PythonTaMère/
├── backend/ # API FastAPI
│ ├── main.py # Point d'entrée
│ ├── database.py # Config DB
│ ├── models.py # Modèles SQLAlchemy
│ ├── schemas.py # Schémas Pydantic
│ ├── auth.py # Authentification
│ ├── init_db.py # Script d'init + données exemple
│ └── routes/ # Endpoints API
│ ├── auth_routes.py
│ ├── lessons_routes.py
│ ├── exercises_routes.py
│ └── submissions_routes.py
│
├── frontend/ # Application Web
│ ├── index.html # Page principale
│ ├── css/
│ │ └── style.css # Styles
│ └── js/
│ ├── app.js # Application principale
│ ├── api.js # Client API
│ ├── editor.js # Monaco Editor
│ └── runner.js # Pyodide (Python en WASM)
│
├── requirements.txt # Dépendances Python
├── README.md # Documentation complète
├── TUTORIAL.md # Guide détaillé
├── QUICKSTART.md # Ce fichier
├── start.bat # Script Windows
└── start.sh # Script Linux/Mac
- Authentification par magic link (OTP)
- CRUD complet pour leçons, exercices, tests
- Système de soumissions avec validation
- Suivi de progression par utilisateur
- Base de données SQLite avec données d'exemple
- Documentation API auto-générée (FastAPI/Swagger)
- Interface responsive et moderne
- Navigation entre pages (Home, Leçons, Exercices, Profil, Admin)
- Éditeur de code Monaco Editor (comme VS Code)
- Exécution Python dans le navigateur (Pyodide/WebAssembly)
- Tests automatiques avec feedback visuel
- Suivi de progression temps réel
- Interface admin pour créer du contenu
- JWT pour l'authentification
- CORS configuré
- Rate limiting
- Sandbox Python côté client (pas d'exécution serveur)
La base de données est pré-remplie avec :
- 3 leçons : Les Bases, Opérations & Conditions, Les Boucles
- 5 exercices progressifs avec tests
- 1 compte admin :
admin@pylearn.local
Éditer backend/main.py ligne finale :
uvicorn.run(..., port=8000) # Changer 8000python -m http.server 3001 --directory frontend # Changer 3000Puis mettre à jour frontend/js/api.js :
const API_BASE_URL = 'http://localhost:8000';- Créer plus de contenu : Utiliser l'interface admin
- Personnaliser : Modifier les styles CSS
- Déployer : Utiliser Docker (voir
docker-compose.yml) - Améliorer : Ajouter plus de fonctionnalités (voir TODO dans README.md)
# Windows
netstat -ano | findstr :8000
taskkill /PID <PID> /F
# Linux/Mac
lsof -ti:8000 | xargs kill- Vérifier la connexion internet (Pyodide est chargé depuis CDN)
- Ouvrir la console navigateur (F12) pour voir les erreurs
- Les tests sont exécutés côté client
- Vérifier que le code respecte exactement la consigne
- Voir les messages d'erreur dans l'onglet "Tests"
- Mode Dev : Le token magic link s'affiche directement (pas besoin d'email)
- Admin : Se connecter avec
admin@pylearn.localpour accéder à l'admin - API Docs : Explorer http://localhost:8000/docs pour tester l'API
- Console Python : Utiliser
print()dans le code pour déboguer
Vous êtes prêt à utiliser PythonTaMère ! Bon apprentissage Python ! 🐍
Pour plus de détails, consultez :
README.md: Documentation complèteTUTORIAL.md: Guide pas à pas détaillé