Skip to main content

Système interactif de +200 exercices pour apprendre Python

Project description

🎓 EduCode - Apprendre Python par la pratique

Python Version License: MIT PyPI version Downloads

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

🔐 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

Documentation technique

Ressources communautaires


🤝 Contribution

Comment contribuer

  1. Fork le projet sur GitHub
  2. Créer une branche pour votre fonctionnalité : git checkout -b feature/ma-fonctionnalite
  3. Implémenter vos modifications avec tests
  4. Tester avec python -m pytest
  5. Commiter : git commit -m "Ajout: ma fonctionnalité"
  6. Push : git push origin feature/ma-fonctionnalite
  7. 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

🔮 Roadmap complète et votes


📞 Support et communauté

Channels officiels

Stats du projet

GitHub Stars GitHub Forks GitHub Issues GitHub Pull Requests


⭐ 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

educode-1.1.1.tar.gz (80.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

educode-1.1.1-py3-none-any.whl (76.0 kB view details)

Uploaded Python 3

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

Hashes for educode-1.1.1.tar.gz
Algorithm Hash digest
SHA256 76bb0247a829cef88b6a046aaed314267ac436b19a3c882e9b451f87f0401cf9
MD5 e0390aaf55ee2d1788891aeff7aaae20
BLAKE2b-256 16ec9e5e248819938ba5e71e44c57a2764b2433bef8c0c596bee2e1f7a816732

See more details on using hashes here.

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

Hashes for educode-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 920a8a261fd29e1b48761cdee0de882c5528dad424e44b04f6cc90205be3a42b
MD5 7b2cbb5bf241615a2781cb0b19ad65bc
BLAKE2b-256 e0c79466437eec979a9594a843e6bcd9b3d246edb7bd3a2f5cd1046ab15064dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page