Aller au contenu principal

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 :

  1. intro.md — Vue d'ensemble du projet
  2. architecture/overview.md — Schéma global
  3. architecture/decisions.md — Pourquoi ces choix techniques
  4. 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 --force sur main
  • ✅ Toujours passer par une PR
  • ✅ Tester avant de push

Comment Faire une Bonne PR

Titre

Format : type(scope): description

TypeUsage
featNouvelle fonctionnalité
fixCorrection de bug
docsDocumentation uniquement
refactorRefactoring sans changement fonctionnel
testAjout 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

Comment tester l'auth ?

Voir security/auth-flow.md