Système interactif de +200 exercices pour apprendre Python
Project description
🎓 EduCode - Apprendre Python par la pratique
EduCode est un système interactif de 200+ exercices progressifs pour apprendre Python, avec authentification sécurisée, correction automatique et génération de certificats professionnels.
📋 Table des matières
- ✨ Fonctionnalités
- 🚀 Installation
- 💻 Utilisation
- 🔐 Système d'authentification
- 📚 Catalogue d'exercices
- 🏆 Système de certification
- 📊 Suivi de progression
- 🎯 Exemples d'utilisation
- 🔧 Configuration avancée
- 🛠 Développement
- 📖 Documentation
- 🤝 Contribution
- 📝 Licence
- 🔮 Roadmap
✨ Fonctionnalités
🔐 Authentification et sécurité
- Comptes utilisateur sécurisés avec chiffrement PBKDF2
- Sessions automatiques avec expiration après 24h
- Protection contre les attaques par force brute
- Fichiers de progression individuels et protégés
📚 Apprentissage interactif
- 200+ exercices progressifs répartis en 3 niveaux
- Correction automatique avec tests unitaires intégrés
- Interface colorée avec codes ANSI pour terminal
- Système d'indices et templates pour l'aide
- Installation automatique de modules Python externes
🏆 Certification professionnelle
- Certificats PDF authentifiés avec votre nom complet
- 5 niveaux de certification selon vos performances
- Validation sécurisée de l'identité utilisateur
- QR codes et identifiants uniques pour vérification
📊 Suivi avancé
- Statistiques détaillées personnalisées par utilisateur
- Historique complet des réussites et échecs
- Barres de progression visuelles
- Export des données au format JSON
🚀 Installation
Installation via pip (recommandée)
pip install educode
Installation depuis les sources
git clone https://github.com/Moesthetics-code/educode.git
cd educode
pip install -e .
Vérification de l'installation
python -m educode version
💻 Utilisation
Mode authentifié (expérience complète)
python -m educode
Première utilisation : Créez votre compte sécurisé avec email et mot de passe fort.
Mode démo (fonctionnalités limitées)
python -m educode demo
⚠️ Limitation : Progression non sauvegardée, pas de certificats.
Commandes disponibles
| Commande | Description | Authentification requise |
|---|---|---|
python -m educode |
Interface principale | ✅ |
python -m educode stats |
Vos statistiques | ✅ |
python -m educode certificate |
Générer un certificat | ✅ |
python -m educode demo |
Mode démo | ❌ |
python -m educode help |
Aide complète | ❌ |
python -m educode version |
Informations version | ❌ |
🔐 Système d'authentification
Sécurité avancée
- Chiffrement PBKDF2 avec 100 000 itérations
- Salt aléatoire de 32 octets par mot de passe
- Protection contre les attaques temporelles
- Blocage automatique après 3 tentatives échouées
Politique des mots de passe
Votre mot de passe doit contenir :
- Minimum 8 caractères
- Au moins une majuscule
- Au moins une minuscule
- Au moins un chiffre
- Au moins un caractère spécial
Gestion de session
- Sessions sécurisées avec tokens aléatoires
- Expiration automatique après 24 heures
- Reconnexion transparente si session valide
- Déconnexion sécurisée sur demande
📘 Documentation complète de l'authentification
📚 Catalogue d'exercices
🟢 Niveau Facile (60 exercices)
Thèmes abordés :
- Fonctions basiques (carré, maximum, calculatrice)
- Chaînes de caractères (palindromes, comptage)
- Listes simples (somme, recherche, tri basique)
- Conditions et boucles (factorielle, Fibonacci)
Exemple d'exercice :
# Exercice : Fonction carré
def carre(n):
return n * n
# Tests automatiques : carre(2) = 4, carre(-3) = 9
🟡 Niveau Moyen (70 exercices)
Thèmes abordés :
- Algorithmes de tri (insertion, sélection, bulles)
- Dictionnaires (fréquences, fusion, filtrage)
- Expressions régulières basiques
- Structures de données (piles, files)
- Manipulation avancée de chaînes
🔴 Niveau Difficile (70 exercices)
Thèmes abordés :
- Algorithmes avancés (QuickSort, MergeSort, Dijkstra)
- Structures complexes (arbres binaires, graphes)
- Programmation dynamique
- Problèmes classiques (N-Reines, sac à dos)
- Optimisation et complexité
📚 Catalogue complet des exercices
🏆 Système de certification
Niveaux de certification
| Niveau | Exercices requis | Taux de réussite | Certificat |
|---|---|---|---|
| 🌱 Apprenti Python | 3+ | 50%+ | Certificat basique |
| 📜 Développeur Intermédiaire | 25+ | 60%+ | Certificat bronze |
| 🥉 Développeur Confirmé | 50+ | 75%+ | Certificat argent |
| 🥈 Développeur Avancé | 100+ | 85%+ | Certificat or |
| 🏆 Expert Python | 150+ | 95%+ | Certificat platine |
Fonctionnalités des certificats
- PDF professionnel avec mise en page élégante
- Nom complet authentifié depuis votre profil
- Statistiques détaillées de performance
- QR code de vérification unique
- Horodatage sécurisé de délivrance
- Identifiant de certificat traçable
Exemple de génération
python -m educode certificate
🏆 Guide complet de certification
📊 Suivi de progression
Métriques trackées
- Exercices complétés avec succès
- Taux de réussite global des tentatives
- Temps de progression depuis l'inscription
- Répartition par difficulté des exercices réussis
- Catégories maîtrisées (algorithmes, structures, etc.)
Visualisation des données
📈 Progression:
[██████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 25.0%
🏆 Derniers succès:
✨ Fonction carré (FACILE)
✨ Tri par insertion (MOYEN)
✨ Arbre binaire de recherche (DIFFICILE)
Export des données
# Depuis l'interface → Paramètres → Exporter les données
# Génère un fichier JSON complet sur votre bureau
📊 Guide du suivi de progression
🎯 Exemples d'utilisation
Session d'apprentissage typique
$ python -m educode
🎓 EduCode - Système d'exercices Python avec authentification
═══════════════════════════════════════════════════════════
👋 Bon retour, Marie Dubois !
📧 Connecté en tant que: marie.dubois@email.com
🎯 Menu Principal
─────────────────────────
1. 🎲 Exercice aléatoire
2. 📈 Exercice par difficulté
3. 📚 Exercice par catégorie
4. 📊 Mes statistiques
5. 🏆 Générer certificat
👉 Votre choix (1-8): 2
Résolution d'un exercice
═══════════════════════════════════════════════════
🎓 Maximum de trois nombres
📚 Catégorie: Fonctions basiques
🔥 Difficulté: FACILE
─────────────────────────────────────────────────────
📝 Description:
Écrivez une fonction maximum_trois(a, b, c) qui retourne
le plus grand des trois nombres donnés.
💡 Template de solution:
def maximum_trois(a, b, c):
# Votre code ici
pass
─────────────────────────────────────────────────────
1>>> def maximum_trois(a, b, c):
2... return max(a, b, c)
3...
🧪 Tests en cours...
─────────────────────────────────────────────────────
Test 1: ✅ RÉUSSI
maximum_trois(1, 3, 2) = 3
Test 2: ✅ RÉUSSI
maximum_trois(-1, -5, -2) = -1
🎉 FÉLICITATIONS ! 🎉
Score parfait: 2/2 tests réussis
═══════════════════════════════════════════════════
Génération de certificat
$ python -m educode certificate
🏆 CERTIFICAT GÉNÉRÉ AVEC SUCCÈS !
─────────────────────────────────────────────
✨ Félicitations Marie Dubois !
📄 Votre certificat EduCode a été créé dans ~/EduCode_Certificates/
📁 Fichier: EduCode_Certificate_Marie_Dubois_Confirmé_20251225_143052.pdf
📊 Vos accomplissements:
• 52 exercices réussis
• 78.3% de taux de réussite
• 125 tentatives au total
🎯 Plus d'exemples d'utilisation
🔧 Configuration avancée
Variables d'environnement
# Désactiver les couleurs
export NO_COLOR=1
# Répertoire personnalisé pour les certificats
export EDUCODE_CERT_DIR="/path/to/certificates"
# Durée de session personnalisée (en heures)
export EDUCODE_SESSION_HOURS=48
Fichiers de configuration
# Profils utilisateur
~/.educode_users.json
# Session actuelle
~/.educode_session.json
# Progression individuelle
~/.educode_progress_{user_hash}.json
# Certificats générés
~/EduCode_Certificates/
Personnalisation de l'interface
# Dans votre environnement Python
from educode.core import EduCode, Colors
# Désactiver les couleurs programmatiquement
Colors.is_supported = lambda: False
# Utiliser un fichier de progression personnalisé
educode = EduCode(progress_file="/chemin/custom.json")
🔧 Guide de configuration complète
🛠 Développement
Prérequis de développement
# Cloner le repository
git clone https://github.com/Moesthetics-code/educode.git
cd educode
# Créer un environnement virtuel
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Installer en mode développement
pip install -e .
# Installer les dépendances de développement
pip install -r requirements-dev.txt
Structure du projet
educode/
├── educode/ # Package principal
│ ├── __init__.py # Métadonnées du package
│ ├── __main__.py # Point d'entrée (python -m educode)
│ ├── core.py # Logique principale et interface
│ ├── exercises.py # Base de données des exercices
│ ├── auth.py # Système d'authentification
│ └── certification.py # Génération de certificats PDF
├── tests/ # Tests unitaires
├── docs/ # Documentation
├── setup.py # Configuration d'installation
├── requirements.txt # Dépendances de production
├── requirements-dev.txt # Dépendances de développement
└── README.md # Ce fichier
Ajouter de nouveaux exercices
# Dans educode/exercises.py
from .core import Exercise
def get_all_exercises():
exercises = []
# Nouvel exercice
exercises.append(Exercise(
id="mon_exercice_unique",
title="Titre de l'exercice",
description="Description détaillée avec exemples",
difficulty="facile", # ou "moyen", "difficile"
category="Ma catégorie",
test_cases=[
{
"function": "ma_fonction",
"inputs": [param1, param2],
"expected": resultat_attendu
}
],
solution_template="def ma_fonction():\n pass",
hints=["Indice 1", "Indice 2"]
))
return exercises
Tests
# Lancer tous les tests
python -m pytest
# Tests avec couverture
python -m pytest --cov=educode
# Tests d'un module spécifique
python -m pytest tests/test_core.py
🛠 Guide de développement complet
📖 Documentation
Documentation utilisateur
- 🚀 Guide de démarrage rapide
- 🔐 Authentification et sécurité
- 📚 Catalogue d'exercices complet
- 🏆 Guide de certification
- 📊 Suivi de progression
- 🎯 Exemples d'utilisation
- ❓ FAQ
Documentation technique
- 🛠 Guide de développement
- 🔧 Configuration avancée
- 📡 API Reference
- 🏗 Architecture du système
- 🔒 Modèle de sécurité
Ressources communautaires
🤝 Contribution
Comment contribuer
- Fork le projet sur GitHub
- Créer une branche pour votre fonctionnalité :
git checkout -b feature/ma-fonctionnalite - Implémenter vos modifications avec tests
- Tester avec
python -m pytest - Commiter :
git commit -m "Ajout: ma fonctionnalité" - Push :
git push origin feature/ma-fonctionnalite - Créer une Pull Request
Types de contributions recherchées
- 📚 Nouveaux exercices avec tests complets
- 🐛 Corrections de bugs et améliorations
- 📖 Documentation et tutoriels
- 🌍 Traductions (internationalisation)
- 🎨 Améliorations UX/UI de l'interface terminal
- 🔒 Audits de sécurité et suggestions
Standards de contribution
- Code style : PEP 8 avec Black formatter
- Tests : Couverture minimale de 80%
- Documentation : Docstrings pour toutes les fonctions publiques
- Commits : Messages clairs et descriptifs
- Issues : Template de rapport de bug ou demande de fonctionnalité
🤝 Guide détaillé de contribution
📝 Licence
Ce projet est sous licence MIT - voir le fichier LICENSE pour les détails.
Résumé de la licence
✅ Autorisé :
- Utilisation commerciale
- Modification du code
- Distribution
- Usage privé
❌ Interdit :
- Responsabilité
- Garantie
Attribution
Si vous utilisez EduCode dans votre projet, merci d'inclure :
EduCode - Système d'apprentissage Python
Copyright (c) 2025 Mohamed Ndiaye
Disponible sous licence MIT
🔮 Roadmap
Version 1.2.0 (Q1 2025)
- Support multi-langues (FR, EN, ES)
- Exercices collaboratifs avec revue de code
- Métriques de performance détaillées
- Plugin VS Code officiel
Version 1.3.0 (Q2 2025)
- Interface web complémentaire
- Classements et défis communautaires
- Integration GitHub pour portfolios
- API REST pour intégrations tierces
Version 2.0.0 (Q3 2025)
- Modules d'apprentissage structurés (débutant → expert)
- Mentorat virtuel avec IA
- Certification officielle reconnue industrie
- Plateforme enterprise pour entreprises
📞 Support et communauté
Channels officiels
- 🐛 Bugs et issues : GitHub Issues
- 💬 Discussions : GitHub Discussions
- 📧 Contact direct : mintok2000@gmail.com
- 🐦 Twitter : @EduCodePython
Stats du projet
⭐ Si EduCode vous aide à apprendre Python, donnez-nous une étoile sur GitHub ! ⭐
⭐ Star sur GitHub • 📦 Voir sur PyPI • 📖 Documentation
Fait avec ❤️ pour la communauté Python
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file educode-1.1.1.tar.gz.
File metadata
- Download URL: educode-1.1.1.tar.gz
- Upload date:
- Size: 80.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76bb0247a829cef88b6a046aaed314267ac436b19a3c882e9b451f87f0401cf9
|
|
| MD5 |
e0390aaf55ee2d1788891aeff7aaae20
|
|
| BLAKE2b-256 |
16ec9e5e248819938ba5e71e44c57a2764b2433bef8c0c596bee2e1f7a816732
|
File details
Details for the file educode-1.1.1-py3-none-any.whl.
File metadata
- Download URL: educode-1.1.1-py3-none-any.whl
- Upload date:
- Size: 76.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
920a8a261fd29e1b48761cdee0de882c5528dad424e44b04f6cc90205be3a42b
|
|
| MD5 |
7b2cbb5bf241615a2781cb0b19ad65bc
|
|
| BLAKE2b-256 |
e0c79466437eec979a9594a843e6bcd9b3d246edb7bd3a2f5cd1046ab15064dc
|