Ce document décrit les règles et processus pour contribuer au projet Math Conquest Assistant.
main: Code en production (protégée)develop: Branche de développement principalefeature/*: Nouvelles fonctionnalitésfix/*: Corrections de bugshotfix/*: Corrections urgentes
-
Synchroniser avec develop
git checkout develop git pull origin develop
-
Créer une branche feature
git checkout -b feature/nom-fonctionnalite
-
Développer et commiter
# Faire vos modifications git add . git commit -m "feat: description de la fonctionnalité"
-
Pousser la branche
git push origin feature/nom-fonctionnalite
-
Créer une Pull Request sur GitHub vers
develop
Nous utilisons le format Conventional Commits :
<type>(<scope>): <description>
[corps optionnel]
[footer optionnel]
feat: Nouvelle fonctionnalitéfix: Correction de bugdocs: Documentationstyle: Formatage (pas de changement de code)refactor: Refactorisationtest: Ajout/modification de testschore: Tâches de maintenance
feat(auth): add Supabase authentication
fix(api): resolve token validation error
docs(readme): update installation instructions
refactor(frontend): simplify auth context
test(backend): add unit tests for auth endpoints- Composants : PascalCase (
UserProfile.jsx) - Fonctions : camelCase (
handleSubmit) - Constantes : UPPER_SNAKE_CASE (
API_BASE_URL) - Hooks personnalisés : Préfixe
use(useAuth)
- Fichiers : snake_case (
auth_utils.py) - Fonctions : snake_case (
get_current_user) - Classes : PascalCase (
UserService) - Constantes : UPPER_SNAKE_CASE (
MAX_RETRIES)
- Frontend : ESLint + Prettier
- Backend : Black + Flake8
Vérifier avant de commiter :
# Frontend
npm run lint
npm run format
# Backend
black --check .
flake8 .- Code testé localement
- Tests passent
- Linting OK
- Pas de secrets/clés API dans le code
- Documentation à jour si nécessaire
## Description
Brève description de ce qui a été fait.
## Type de changement
- [ ] Bug fix
- [ ] Nouvelle fonctionnalité
- [ ] Refactorisation
- [ ] Documentation
## Tests
- [ ] Tests unitaires ajoutés/modifiés
- [ ] Tests manuels effectués
## Screenshots (si UI)
Ajouter des screenshots si changement d'interface
## Checklist
- [ ] Code respecte les standards
- [ ] Tests passent
- [ ] Documentation à jour
- [ ] Pas de secrets dans le code- Créer la PR vers
develop - Assigner des reviewers (au moins 1)
- Attendre les commentaires et répondre
- Corriger si nécessaire
- Une fois approuvée, merger dans
develop
- ✅ Vérifier que le code respecte les standards
- ✅ Vérifier que les tests passent
- ✅ Vérifier qu'il n'y a pas de secrets
- ✅ Vérifier la lisibilité et maintenabilité
- ✅ Donner un feedback constructif
- ✅ Répondre aux commentaires
- ✅ Corriger les problèmes soulevés
- ✅ Re-merger si nécessaire
- ✅ Remercier les reviewers
- Créer une Issue sur GitHub
- Utiliser le template "Bug Report"
- Inclure :
- Description du bug
- Étapes pour reproduire
- Comportement attendu vs actuel
- Environnement (OS, navigateur, etc.)
- Créer une Issue sur GitHub
- Utiliser le template "Feature Request"
- Décrire :
- Le problème à résoudre
- La solution proposée
- Les alternatives considérées
Merci de contribuer au projet ! 🚀