Ce guide vous aidera à configurer votre environnement de développement pour contribuer au projet LMS.
- Python 3.10 ou supérieur
- Git
- Un éditeur de code (VS Code, PyCharm, etc.)
- Cloner le projet
git clone https://github.com/Hojgaetan/LMS.git
cd LMS- Créer et activer l'environnement virtuel
Windows:
python -m venv venv
venv\Scripts\activateLinux/macOS:
python3 -m venv venv
source venv/bin/activate- Installer les dépendances
pip install -r requirements.txt- Initialiser la base de données
python -c "from services.database_service import DatabaseService; DatabaseService.initialize_database()"- Lancer l'application
Mode Web:
python app.pyPuis ouvrir http://127.0.0.1:5000/
Mode CLI:
python main.pypytestpytest --cov=. --cov-report=htmlpytest test_member_service.py
pytest -k "test_add_member"feature/nom-de-la-fonctionnalité- Nouvelles fonctionnalitésfix/description-du-bug- Corrections de bugsdocs/sujet-documentation- Modifications de documentationrefactor/nom-du-refactoring- Refactoring de codetest/nom-des-tests- Ajout de tests
# Créer une nouvelle branche
git checkout -b feature/ma-nouvelle-fonctionnalite
# Faire vos changements et les commiter
git add .
git commit -m "feat: ajouter fonctionnalité X"
# Pousser la branche
git push origin feature/ma-nouvelle-fonctionnalite
# Créer une Pull Request sur GitHub- Indentation: 4 espaces
- Longueur de ligne: 88 caractères (Black formatter)
- Noms de variables:
snake_case - Noms de classes:
PascalCase - Noms de constantes:
UPPER_CASE
Utilisez le format Conventional Commits:
type(scope): description
feat: ajouter fonctionnalité de recherche de membres
fix: corriger le bug de validation d'email
docs: mettre à jour le README
style: formater le code selon PEP 8
refactor: restructurer le service de membres
test: ajouter tests pour MemberService
Types courants:
feat: nouvelle fonctionnalitéfix: correction de bugdocs: documentationstyle: formatagerefactor: refactoringtest: testschore: maintenance
LMS/
├── controllers/ # Routes Flask et logique de contrôleur
├── models/ # Modèles de données et logique métier
├── services/ # Logique métier et accès aux données
├── views/ # Vues pour l'interface CLI
├── templates/ # Templates HTML pour Flask
├── static/ # Fichiers statiques (CSS, JS, images)
├── utils/ # Utilitaires et helpers
└── tests/ # Tests unitaires et d'intégration
- Models: Définissent la structure des données et les règles métier
- Views: Gèrent l'affichage et l'interaction utilisateur
- Controllers: Coordonnent les models et views, gèrent les routes
# Installer Black (optionnel)
pip install black
# Formater le code
black .# Installer flake8 (optionnel)
pip install flake8
# Vérifier le style
flake8 .- Python
- Python Docstring Generator
- GitLens
- Auto Rename Tag
- Bracket Pair Colorizer
L'application utilise des print() pour le débogage (à remplacer par un système de logging).
Pour réinitialiser la base de données:
python -c "from services.database_service import DatabaseService; DatabaseService.reset_database()"Port déjà utilisé (Flask):
# Changer le port
export FLASK_RUN_PORT=5001 # Linux/macOS
set FLASK_RUN_PORT=5001 # Windows
python app.pyModules non trouvés: Vérifiez que l'environnement virtuel est activé:
which python # Linux/macOS
where python # WindowsErreurs de base de données:
Supprimez library.db et réinitialisez:
rm library.db # Linux/macOS
del library.db # Windows
python -c "from services.database_service import DatabaseService; DatabaseService.initialize_database()"- Consultez GOOD_FIRST_ISSUES.md pour des tâches adaptées aux débutants
- Lisez CONTRIBUTING.md pour les guidelines détaillées
- Utilisez les templates d'issues et de PR dans
.github/ - N'hésitez pas à poser des questions dans les discussions
Votre contribution, qu'elle soit petite ou grande, est précieuse pour la communauté LMS. Ensemble, nous construisons un meilleur système de gestion de bibliothèque !
Besoin d'aide ? Ouvrez une issue ou démarrez une discussion sur GitHub.