Ce guide vous aidera à lancer PythonTaMère sur votre machine en quelques minutes.
Windows:
start.batLinux/Mac:
chmod +x start.sh
./start.sh- Installer les dépendances
pip install -r requirements.txt- Initialiser la base de données
python backend/init_db.py- Démarrer le backend (Terminal 1)
python backend/main.py- Démarrer le frontend (Terminal 2)
python -m http.server 3000 --directory frontend- Ouvrir dans le navigateur
- Frontend: http://localhost:3000
- API Docs: http://localhost:8000/docs
docker-compose up- Cliquez sur "Connexion" dans la barre de navigation
- Entrez votre email
- En mode développement, un token s'affiche directement
- Cliquez sur "Se connecter"
Note: En production, le token serait envoyé par email.
- Allez sur "Leçons"
- Cliquez sur une leçon pour voir son contenu
- Chaque leçon contient des exercices pratiques
- Cliquez sur un exercice
- Écrivez votre code dans l'éditeur (Monaco Editor)
- Cliquez sur "Exécuter" pour tester votre code
- Cliquez sur "Valider" pour lancer les tests automatiques
- Si tous les tests passent, l'exercice est validé !
Allez sur "Profil" pour voir:
- Nombre de leçons complétées
- Exercices réussis
- Historique des soumissions
Exercice: Hello World
- Aller à "Leçons" → "Les Bases de Python"
- Cliquer sur l'exercice "Hello World"
- Écrire dans l'éditeur:
print("Hello, World!")- Cliquer sur "Valider"
- ✅ Tous les tests passent !
Créez un fichier .env à la racine:
SECRET_KEY=your-super-secret-key-here
DATABASE_URL=sqlite:///./pylearn.db
APP_URL=http://localhost:8000
FRONTEND_URL=http://localhost:3000
DEBUG=True- Se connecter normalement
- Ouvrir la base de données SQLite:
sqlite3 pylearn.db- Mettre à jour votre utilisateur:
UPDATE users SET is_admin = 1 WHERE email = 'votre@email.com';Les administrateurs peuvent créer des leçons et exercices via l'API:
Documentation API: http://localhost:8000/docs
Si le port 8000 ou 3000 est déjà utilisé:
# Trouver le processus
netstat -ano | findstr :8000
# Tuer le processus (Windows)
taskkill /PID <PID> /F
# Linux/Mac
kill -9 <PID># Créer un environnement virtuel
python -m venv venv
# Activer l'environnement
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
# Réinstaller les dépendances
pip install -r requirements.txt# Supprimer et recréer
rm pylearn.db
python backend/init_db.py- Documentation API: http://localhost:8000/docs
- Code source: Consultez le README.md
- Structure du projet: Voir l'arborescence dans README.md
# 1. Se connecter et récupérer le token
TOKEN="votre-jwt-token"
# 2. Créer une leçon
curl -X POST http://localhost:8000/lessons \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"slug": "ma-lecon",
"title": "Ma Première Leçon",
"body_md": "# Contenu en Markdown\n\nVoici ma leçon...",
"module": "Mon Module",
"order": 1
}'
# 3. Créer un exercice
curl -X POST http://localhost:8000/exercises \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"lesson_id": 1,
"title": "Mon Exercice",
"prompt_md": "## Énoncé\n\nFaites ceci...",
"difficulty": 1,
"starter_code": "# Votre code ici\n",
"order": 1
}'
# 4. Ajouter un test
curl -X POST http://localhost:8000/exercises/testcases \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"exercise_id": 1,
"name": "Test basique",
"visibility": "public",
"code_snippet": "assert 1 + 1 == 2",
"timeout_ms": 5000,
"order": 1
}'import requests
# Token JWT
token = "votre-jwt-token"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
# Créer une leçon
lesson_data = {
"slug": "python-advanced",
"title": "Python Avancé",
"body_md": "# Python Avancé\n\nApprenons des concepts avancés...",
"module": "Avancé",
"order": 10
}
response = requests.post(
"http://localhost:8000/lessons",
json=lesson_data,
headers=headers
)
lesson = response.json()
print(f"Leçon créée: {lesson['id']}")Vous êtes maintenant prêt à utiliser PythonTaMère ! Bon apprentissage ! 🐍👵