Merci de ton intérêt pour contribuer à Code Quest RPG! 🎮✨
Si tu trouves un bug:
- Vérifie qu'il n'a pas déjà été signalé dans les Issues
- 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
Pour proposer une nouvelle fonctionnalité:
- Vérifie le fichier PRODUCT_VISION.md pour voir si c'est aligné avec la vision
- Crée une issue avec le tag "enhancement"
- Décris clairement le besoin et la solution proposée
On accueille chaleureusement les contributions de quêtes!
Pour ajouter une nouvelle quête:
- Lis le guide dans README.md
- 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
- Fork le repo
- Crée une branche (
git checkout -b quest/my-new-quest) - Ajoute ta quête dans
src/data/quests.js - Teste localement
- Commit et push
- Crée une Pull Request
- Fork le projet
- Crée une branche pour ta feature (
git checkout -b feature/amazing-feature) - Commit tes changements (
git commit -m 'Add some amazing feature') - Push vers la branche (
git push origin feature/amazing-feature) - Ouvre une Pull Request
- 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
- 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
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: ['...']
}
}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)
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 prodN'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! 🚀