Skip to content

Latest commit

 

History

History
121 lines (96 loc) · 3.27 KB

File metadata and controls

121 lines (96 loc) · 3.27 KB

Contributing to Code Quest RPG

Merci de ton intérêt pour contribuer à Code Quest RPG! 🎮✨

Comment contribuer

Signaler des bugs

Si tu trouves un bug:

  1. Vérifie qu'il n'a pas déjà été signalé dans les Issues
  2. Crée une nouvelle issue avec:
    • Une description claire du problème
    • Les étapes pour reproduire
    • Le comportement attendu vs actuel
    • Des captures d'écran si pertinent

Proposer des nouvelles fonctionnalités

Pour proposer une nouvelle fonctionnalité:

  1. Vérifie le fichier PRODUCT_VISION.md pour voir si c'est aligné avec la vision
  2. Crée une issue avec le tag "enhancement"
  3. Décris clairement le besoin et la solution proposée

Ajouter du contenu pédagogique

On accueille chaleureusement les contributions de quêtes!

Pour ajouter une nouvelle quête:

  1. Lis le guide dans README.md
  2. Assure-toi que:
    • La théorie est claire et progressive
    • Les exemples de code sont corrects
    • La difficulté est appropriée
    • Le challenge est testable
  3. Fork le repo
  4. Crée une branche (git checkout -b quest/my-new-quest)
  5. Ajoute ta quête dans src/data/quests.js
  6. Teste localement
  7. Commit et push
  8. Crée une Pull Request

Pull Requests

  1. Fork le projet
  2. Crée une branche pour ta feature (git checkout -b feature/amazing-feature)
  3. Commit tes changements (git commit -m 'Add some amazing feature')
  4. Push vers la branche (git push origin feature/amazing-feature)
  5. Ouvre une Pull Request

Guidelines pour les PRs

  • Respecte le style de code existant
  • Teste tes changements localement
  • Mets à jour la documentation si nécessaire
  • Garde les commits atomiques et descriptifs
  • Référence les issues concernées

Code Style

  • JavaScript: ESLint config du projet
  • CSS: Utilise les variables CSS définies dans DESIGN_GUIDE.md
  • Composants: Functional components avec hooks
  • Naming: camelCase pour variables/fonctions, PascalCase pour composants

Structure de quête

Chaque quête doit suivre cette structure:

{
  id: 'unique-id',
  title: 'Titre clair et engageant',
  description: 'Description courte',
  difficulty: 'beginner|intermediate|advanced',
  xpReward: number,
  skillUnlock: 'skill-id',
  requiredLevel: number,
  category: 'Category',
  story: 'Narrative accrocheuse',
  lesson: {
    title: 'Titre de la leçon',
    sections: [
      // Voir README pour les types de sections
    ]
  },
  challenge: {
    type: 'code',
    instructions: 'Instructions claires',
    starterCode: '...',
    solution: '...',
    tests: ['...']
  }
}

Validation pédagogique

Les quêtes doivent:

  • Enseigner un seul concept à la fois
  • Progresser du simple au complexe
  • Inclure des exemples concrets
  • Avoir un challenge qui teste vraiment le concept
  • Être accessibles (langage clair, pas de jargon inutile)

Tests

Avant de soumettre:

npm run dev        # Teste en dev
npm run build      # Vérifie que le build passe
npm run preview    # Teste la version de prod

Questions?

N'hésite pas à:

  • Ouvrir une issue pour poser des questions
  • Rejoindre les discussions
  • Demander de l'aide dans ta PR

Merci de contribuer à rendre l'apprentissage de React plus fun! 🚀