Contribuer au Projet
Ce fichier décrit comment contribuer au projet StageConnect.
Avant de Commencer
Lectures Obligatoires
Avant de commencer à coder, lire dans l'ordre :
- intro.md — Vue d'ensemble du projet
- architecture/overview.md — Schéma global
- architecture/decisions.md — Pourquoi ces choix techniques
- security/auth-flow.md — Comprendre l'authentification
Environnement Local
S'assurer que l'environnement local fonctionne :
- backend/setup.md — Lancer le backend
- Frontend : voir dans
frontend/{app}/setup.md
Workflow de Contribution
1. Créer une Branche
# Depuis main, récupérer les dernières modifications
git checkout main
git pull origin main
# Créer une nouvelle branche
git checkout -b feat/description-courte
# ou
git checkout -b fix/description-courte
2. Coder
- Implémenter la fonctionnalité ou le fix
- Coder proprement, suivre les standards du projet
- Ajouter des tests si pertinent
3. Tester Localement
# Backend
cd backend
pip install -r requirements.txt
pytest -v
# Frontend
cd career-stageconnect
npm run lint
npm run build
4. Commiter
git add .
git commit -m "feat(auth): description du changement"
Format des commits : voir guides/git-workflow.md
5. Pousser et Ouvrir une PR
git push origin feat/description-courte
Puis créer une PR sur GitHub avec :
- Description claire du changement
- Comment tester le changement
- Screenshots si changement UI
6. Review
- Attendre la review d'au moins 1 autre développeur
- Corriger les commentaires si nécessaire
7. Merger
- Merger uniquement si les tests passent et la review est validée
- Supprimer la branche après merge
Standards de Code
Python (Backend)
- PEP 8 — Style guide Python
- Type hints — Obligatoires sur les fonctions publiques
- Docstrings — Pour les fonctions complexes
- Lint :
flake8(si configuré)
JavaScript/TypeScript (Frontend)
- ESLint — Configuré dans chaque projet
- Pas de
any— Utiliser les types appropriés - Composants — Garder sous 200 lignes
Règles Absolues
- ❌ Jamais de commit direct sur
main - ❌ Jamais de
git push --forcesurmain - ✅ Toujours passer par une PR
- ✅ Tester avant de push
Comment Faire une Bonne PR
Titre
Format : type(scope): description
| Type | Usage |
|---|---|
feat | Nouvelle fonctionnalité |
fix | Correction de bug |
docs | Documentation uniquement |
refactor | Refactoring sans changement fonctionnel |
test | Ajout ou modification de tests |
Exemple : feat(auth): ajout du refresh token automatique
Description
Inclure :
- Quoi : Description du changement
- Pourquoi : Contexte ou raison du changement
- Comment : Comment tester le changement
- Screenshots : Si changement UI
Checklist
- Le code suit les standards
- Tests ajoutés ou mis à jour
- Documentation mise à jour si nécessaire
- Pas de code mort (commentaires inutiles, console.log, etc.)
Taille
- Maximum 400 lignes par PR
- Si plus : découper en plusieurs PRs
Questions Fréquentes
Comment trouver une tâche ?
- Voir les issues GitHub
- Contacter l'équipe pour suggestions
Je suis bloqué, qui demander ?
- Questions techniques : voir l'équipe
- Accès : demander au lead technique