diff --git a/.github/DISCUSSION_TEMPLATE/config.yml b/.github/DISCUSSION_TEMPLATE/config.yml new file mode 100644 index 0000000..ddc0b5a --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: false +contact_links: + - name: 💬 Discussions Communautaires + url: https://github.com/djangocameroon/.github/discussions + about: Rejoignez les discussions de la communauté Django Cameroon + - name: 📧 Contact Email + url: mailto:contact@djangocameroon.org + about: Contactez-nous directement par email + - name: 🌐 Site Web + url: https://djangocameroon.org + about: Visitez notre site web officiel \ No newline at end of file diff --git a/.github/DISCUSSION_TEMPLATE/event-announcement.md b/.github/DISCUSSION_TEMPLATE/event-announcement.md new file mode 100644 index 0000000..a1e0b7d --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/event-announcement.md @@ -0,0 +1,83 @@ +--- +name: 🎉 Annonce d'Événement +about: Annoncer un événement de la communauté Django Cameroon +title: '[EVENT] ' +labels: ['event', 'announcement'] +--- + +## 🎉 Informations de l'événement +**Titre :** [Nom de l'événement] +**Date :** [Date et heure] +**Lieu :** [Adresse ou lien en ligne] +**Format :** [Présentiel/En ligne/Hybride] + +## 📝 Description +Décrivez l'événement en détail : +- Objectif de l'événement +- Contenu prévu +- Public cible +- Intervenants + +## 🎯 Programme +1. **14h00 - 14h15** : Accueil et introduction +2. **14h15 - 15h00** : [Session 1] +3. **15h00 - 15h15** : Pause +4. **15h15 - 16h00** : [Session 2] +5. **16h00 - 16h30** : Q&A et networking + +## 👥 Intervenants +- **Nom** - Rôle - Bio courte +- **Nom** - Rôle - Bio courte + +## 📋 Prérequis +- [ ] Aucun +- [ ] Connaissances de base en Python +- [ ] Connaissances de base en Django +- [ ] Autre : [précisez] + +## 💻 Matériel nécessaire +- [ ] Ordinateur portable +- [ ] Connexion internet +- [ ] Logiciels : [liste] +- [ ] Autre : [précisez] + +## 🎫 Inscription +- [ ] Gratuite +- [ ] Payante : [montant] +- [ ] Lien d'inscription : [URL] + +## 📍 Lieu détaillé +**Adresse :** [Adresse complète] +**Accès :** [Instructions d'accès] +**Parking :** [Informations sur le parking] +**Transport en commun :** [Lignes de bus/métro] + +## 🍕 Nourriture/Boissons +- [ ] Fournies +- [ ] À la charge des participants +- [ ] Non nécessaires + +## 📢 Partenaires/Sponsors +- [Nom du partenaire] - [Type de support] +- [Nom du sponsor] - [Type de support] + +## 📱 Contact +- **Email :** [email] +- **Téléphone :** [numéro] +- **Réseaux sociaux :** [liens] + +## 🔗 Liens utiles +- [Site web de l'événement] +- [Documentation] +- [Ressources préparatoires] + +## 📸 Photos/Vidéos +- [ ] Photos autorisées +- [ ] Enregistrement vidéo prévu +- [ ] Partage sur les réseaux sociaux + +## ✅ Checklist +- [ ] Toutes les informations essentielles sont fournies +- [ ] Les détails pratiques sont clairs +- [ ] Les liens de contact fonctionnent +- [ ] L'événement est bien décrit \ No newline at end of file diff --git a/.github/DISCUSSION_TEMPLATE/general-discussion.md b/.github/DISCUSSION_TEMPLATE/general-discussion.md new file mode 100644 index 0000000..9330551 --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/general-discussion.md @@ -0,0 +1,60 @@ +--- +name: 💬 Discussion Générale +about: Démarrer une discussion générale sur Django Cameroon +title: '[DISCUSSION] ' +labels: ['discussion', 'community'] +--- + +## 💬 Sujet de discussion +Décrivez le sujet que vous souhaitez discuter avec la communauté. + +## 🎯 Objectif +- [ ] 💡 Partager une idée +- [ ] ❓ Poser une question +- [ ] 🤝 Chercher des collaborateurs +- [ ] 📢 Annoncer quelque chose +- [ ] 🔍 Demander des retours +- [ ] Autre : [précisez] + +## 📝 Description détaillée +Développez votre idée, question ou annonce de manière claire et détaillée. + +## 🔗 Contexte +Ajoutez tout contexte pertinent : +- Projet sur lequel vous travaillez +- Problème que vous rencontrez +- Objectif que vous poursuivez +- Ressources que vous avez consultées + +## 💻 Code/Exemples (si applicable) +```python +# Ajoutez du code d'exemple si pertinent +``` + +## 🤔 Questions spécifiques +Listez les questions spécifiques auxquelles vous aimeriez des réponses : +1. Question 1 +2. Question 2 +3. Question 3 + +## 🎯 Résultat attendu +Décrivez ce que vous espérez obtenir de cette discussion : +- [ ] Des suggestions concrètes +- [ ] Des retours sur une approche +- [ ] Des collaborateurs pour un projet +- [ ] Des ressources ou outils +- [ ] Autre : [précisez] + +## 🏷️ Tags suggérés +Ajoutez des tags pertinents pour faciliter la découverte : +- django +- python +- web-development +- cameroon +- [autres tags pertinents] + +## ✅ Checklist +- [ ] J'ai fourni suffisamment de contexte +- [ ] Ma question/sujet est clair +- [ ] J'ai ajouté des détails pertinents +- [ ] J'ai spécifié ce que j'attends de la discussion \ No newline at end of file diff --git a/.github/DISCUSSION_TEMPLATE/help-wanted.md b/.github/DISCUSSION_TEMPLATE/help-wanted.md new file mode 100644 index 0000000..82538bb --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/help-wanted.md @@ -0,0 +1,80 @@ +--- +name: 🆘 Demande d'Aide +about: Demander de l'aide pour un projet ou un problème technique +title: '[HELP] ' +labels: ['help-wanted', 'question'] +--- + +## 🆘 Type d'aide demandée +- [ ] 💻 Aide technique +- [ ] 👥 Collaboration sur un projet +- [ ] 📚 Ressources d'apprentissage +- [ ] 🎯 Orientation professionnelle +- [ ] 🔧 Debugging +- [ ] 🏗️ Architecture/Design +- [ ] Autre : [précisez] + +## 📝 Description du problème +Décrivez clairement le problème ou le besoin d'aide. + +## 🎯 Objectif +Qu'essayez-vous d'accomplir ? + +## 🔍 Ce que vous avez essayé +Listez les solutions que vous avez déjà tentées : +- [ ] Recherche dans la documentation +- [ ] Recherche sur Google/Stack Overflow +- [ ] Demande à des collègues +- [ ] Autres tentatives... + +## 💻 Code (si applicable) +```python +# Ajoutez votre code ici +``` + +## 🖥️ Environnement +**OS :** [ex. Ubuntu 20.04] +**Python :** [ex. 3.9.0] +**Django :** [ex. 4.2.0] +**Base de données :** [ex. PostgreSQL 13] + +## 📸 Captures d'écran/Logs +Ajoutez des captures d'écran ou des logs d'erreur si pertinents. + +## 🔗 Ressources consultées +- [Documentation Django](https://docs.djangoproject.com/) +- [Autres ressources](lien) + +## ⏰ Urgence +- [ ] 🔥 Critique - Bloque complètement +- [ ] ⚡ Haute - Important mais pas bloquant +- [ ] 📈 Moyenne - Peut attendre +- [ ] 💡 Faible - Pas urgent + +## 🎯 Type de réponse souhaitée +- [ ] 💡 Suggestions générales +- [ ] 🔧 Solution technique détaillée +- [ ] 📚 Ressources d'apprentissage +- [ ] 👥 Collaboration directe +- [ ] 🎯 Orientation vers un expert + +## 📅 Disponibilité +**Quand êtes-vous disponible pour :** +- [ ] Discussion en ligne +- [ ] Appel vidéo +- [ ] Session de pair programming +- [ ] Autre : [précisez] + +## 🏷️ Compétences requises +- [ ] Débutant +- [ ] Intermédiaire +- [ ] Avancé +- [ ] Expert +- [ ] Spécifique : [précisez] + +## ✅ Checklist +- [ ] J'ai fourni suffisamment de contexte +- [ ] J'ai décrit ce que j'ai essayé +- [ ] J'ai inclus le code pertinent +- [ ] J'ai spécifié l'urgence +- [ ] Ma demande est claire et spécifique \ No newline at end of file diff --git a/.github/DISCUSSION_TEMPLATE/project-idea.md b/.github/DISCUSSION_TEMPLATE/project-idea.md new file mode 100644 index 0000000..1e5b82e --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/project-idea.md @@ -0,0 +1,108 @@ +--- +name: 💡 Idée de Projet +about: Proposer une idée de projet pour la communauté Django Cameroon +title: '[IDEA] ' +labels: ['project-idea', 'brainstorming'] +--- + +## 💡 Titre du projet +[Un titre accrocheur pour votre idée de projet] + +## 🎯 Description +Décrivez votre idée de projet de manière claire et détaillée. + +## 🚀 Objectif +Quel problème ce projet résout-il ? Quel est son objectif principal ? + +## 👥 Public cible +- [ ] Développeurs Django +- [ ] Entreprises camerounaises +- [ ] Organisations à but non lucratif +- [ ] Étudiants +- [ ] Grand public +- [ ] Autre : [précisez] + +## 🛠️ Technologies proposées +- [ ] Django +- [ ] Python +- [ ] Frontend : [React/Vue/Angular/etc.] +- [ ] Base de données : [PostgreSQL/MySQL/etc.] +- [ ] Déploiement : [Docker/AWS/etc.] +- [ ] Autres : [précisez] + +## 📋 Fonctionnalités principales +1. Fonctionnalité 1 +2. Fonctionnalité 2 +3. Fonctionnalité 3 + +## 🎨 Interface utilisateur +Décrivez l'interface utilisateur envisagée : +- [ ] Web application +- [ ] Mobile app +- [ ] API +- [ ] Desktop app +- [ ] Autre : [précisez] + +## 📊 Impact attendu +- [ ] Améliorer la vie des Camerounais +- [ ] Promouvoir l'utilisation de Django +- [ ] Créer des opportunités d'emploi +- [ ] Résoudre un problème local +- [ ] Autre : [précisez] + +## 👥 Équipe nécessaire +- [ ] Développeurs backend +- [ ] Développeurs frontend +- [ ] Designers UI/UX +- [ ] Testeurs +- [ ] Gestionnaires de projet +- [ ] Autres rôles : [précisez] + +## ⏰ Timeline estimée +- [ ] 1-2 semaines +- [ ] 1 mois +- [ ] 2-3 mois +- [ ] 6 mois +- [ ] Plus d'un an + +## 💰 Budget/Financement +- [ ] Projet bénévole +- [ ] Financement communautaire +- [ ] Sponsors privés +- [ ] Subventions +- [ ] Autre : [précisez] + +## 🔗 Projets similaires +Listez des projets similaires existants : +- [Nom du projet] - [Lien] - [Différences] + +## 📚 Ressources nécessaires +- [ ] Serveurs/Infrastructure +- [ ] Outils de développement +- [ ] Design assets +- [ ] Documentation +- [ ] Autres : [précisez] + +## 🎯 Prochaines étapes +1. Étape 1 +2. Étape 2 +3. Étape 3 + +## 🤝 Collaboration +- [ ] Je veux diriger ce projet +- [ ] Je veux participer activement +- [ ] Je veux contribuer occasionnellement +- [ ] Je veux juste donner des idées + +## 📞 Contact +**Email :** [votre email] +**GitHub :** [votre username] +**Autres :** [liens pertinents] + +## ✅ Checklist +- [ ] L'idée est clairement décrite +- [ ] L'objectif est bien défini +- [ ] Le public cible est identifié +- [ ] Les technologies sont appropriées +- [ ] L'impact est considéré +- [ ] La faisabilité est évaluée \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..450082c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,58 @@ +--- +name: 🐛 Rapport de Bug +about: Créer un rapport pour nous aider à améliorer le projet +title: '[BUG] ' +labels: ['bug', 'needs-triage'] +assignees: '' +--- + +## 🐛 Description du Bug +Une description claire et concise du problème. + +## 🔄 Étapes pour reproduire +Étapes pour reproduire le comportement : +1. Aller à '...' +2. Cliquer sur '....' +3. Faire défiler vers '....' +4. Voir l'erreur + +## ✅ Comportement attendu +Une description claire et concise de ce que vous attendiez. + +## ❌ Comportement observé +Une description claire et concise de ce qui s'est passé. + +## 📸 Captures d'écran +Si applicable, ajoutez des captures d'écran pour expliquer votre problème. + +## 🖥️ Environnement +**Desktop (complétez les informations suivantes):** + - OS: [ex. iOS] + - Navigateur [ex. chrome, safari] + - Version [ex. 22] + +**Smartphone (complétez les informations suivantes):** + - Appareil: [ex. iPhone6] + - OS: [ex. iOS8.1] + - Navigateur [ex. stock browser, safari] + - Version [ex. 22] + +## 📋 Informations supplémentaires +**Version Python :** [ex. 3.9.0] +**Version Django :** [ex. 4.2.0] +**Base de données :** [ex. PostgreSQL 13] + +## 📝 Logs d'erreur +``` +Coller les logs d'erreur ici si disponibles +``` + +## 🔗 Liens utiles +- [Documentation Django](https://docs.djangoproject.com/) +- [Documentation du projet](lien vers la doc) + +## ✅ Checklist +- [ ] J'ai vérifié que ce bug n'a pas déjà été signalé +- [ ] J'ai fourni toutes les informations nécessaires +- [ ] J'ai testé avec la dernière version +- [ ] J'ai vérifié les logs d'erreur \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/community_event.md b/.github/ISSUE_TEMPLATE/community_event.md new file mode 100644 index 0000000..aa8fb76 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/community_event.md @@ -0,0 +1,117 @@ +--- +name: 🎉 Événement Communautaire +about: Proposer ou organiser un événement pour la communauté Django Cameroon +title: '[EVENT] ' +labels: ['event', 'community'] +assignees: '' +--- + +## 🎉 Type d'événement +- [ ] 🎤 Conférence/Présentation +- [ ] 🛠️ Atelier/Workshop +- [ ] 💻 Hackathon +- [ ] 📚 Session d'apprentissage +- [ ] 🤝 Meetup/Networking +- [ ] 🏆 Compétition/Contest +- [ ] Autre : [précisez] + +## 📝 Description de l'événement +Une description claire et détaillée de l'événement proposé. + +## 🎯 Objectifs +- [ ] Apprentissage de nouvelles technologies +- [ ] Networking communautaire +- [ ] Résolution de problèmes locaux +- [ ] Promotion de Django/Python +- [ ] Mentorat +- [ ] Autre : [précisez] + +## 👥 Public cible +- [ ] Débutants +- [ ] Intermédiaires +- [ ] Avancés +- [ ] Tous niveaux +- [ ] Spécifique : [précisez] + +## 📅 Informations pratiques +**Date proposée :** [ex. 15 Mars 2024] +**Heure :** [ex. 14h00 - 17h00] +**Durée :** [ex. 3 heures] +**Format :** +- [ ] En présentiel +- [ ] En ligne +- [ ] Hybride + +**Lieu :** [ex. Université de Yaoundé, Salle 101] + +## 🎤 Contenu/Programme +Décrivez le contenu prévu : +1. **Introduction** (15 min) +2. **Présentation principale** (45 min) +3. **Atelier pratique** (60 min) +4. **Q&A** (30 min) + +## 👨‍🏫 Intervenants +- **Nom :** [ex. Jean Dupont] +- **Rôle :** [ex. Senior Django Developer] +- **Bio :** [ex. 5 ans d'expérience avec Django...] + +## 📋 Prérequis +- [ ] Aucun +- [ ] Connaissances de base en Python +- [ ] Connaissances de base en Django +- [ ] Autre : [précisez] + +## 💻 Matériel nécessaire +- [ ] Ordinateur portable +- [ ] Connexion internet +- [ ] Logiciels spécifiques : [liste] +- [ ] Autre : [précisez] + +## 🎁 Ressources/Matériel +- [ ] Slides de présentation +- [ ] Code d'exemple +- [ ] Documentation +- [ ] Certificats de participation +- [ ] Autre : [précisez] + +## 📊 Capacité d'accueil +**Nombre maximum de participants :** [ex. 50] +**Inscription requise :** +- [ ] Oui +- [ ] Non + +## 💰 Coût +- [ ] Gratuit +- [ ] Payant : [montant] +- [ ] Participation aux frais : [détails] + +## 🍕 Nourriture/Boissons +- [ ] Fournies +- [ ] À la charge des participants +- [ ] Non nécessaires + +## 📢 Communication +**Comment promouvoir l'événement :** +- [ ] Site web Django Cameroon +- [ ] Réseaux sociaux +- [ ] Email communautaire +- [ ] Partenaires locaux +- [ ] Autre : [précisez] + +## 🤝 Partenaires/Sponsors +Listez les partenaires ou sponsors potentiels : +- [Nom de l'organisation] - [Type de support] + +## 📈 Suivi post-événement +- [ ] Enquête de satisfaction +- [ ] Partage des ressources +- [ ] Photos/vidéos +- [ ] Retour d'expérience + +## ✅ Checklist +- [ ] J'ai défini clairement l'objectif de l'événement +- [ ] J'ai fourni toutes les informations pratiques +- [ ] J'ai identifié le public cible +- [ ] J'ai préparé le contenu/les intervenants +- [ ] J'ai considéré les aspects logistiques \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..d832277 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: false +contact_links: + - name: 💬 Discussions Communautaires + url: https://github.com/djangocameroon/.github/discussions + about: Posez vos questions et participez aux discussions de la communauté + - name: 📧 Support Email + url: mailto:support@djangocameroon.org + about: Contactez-nous directement par email pour un support personnalisé + - name: 🌐 Site Web + url: https://djangocameroon.org + about: Visitez notre site web pour plus d'informations sur la communauté \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..e6d2745 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,50 @@ +--- +name: ✨ Demande de Fonctionnalité +about: Suggérer une idée pour ce projet +title: '[FEATURE] ' +labels: ['enhancement', 'needs-triage'] +assignees: '' +--- + +## 🚀 Fonctionnalité demandée +Une description claire et concise de la fonctionnalité que vous souhaitez. + +## 💡 Motivation +**Votre demande de fonctionnalité est-elle liée à un problème ? Décrivez-le.** +Une description claire et concise du problème. Ex. Je suis toujours frustré quand [...] + +## 📝 Description détaillée +Décrivez la solution que vous aimeriez voir implémentée. + +## 🎯 Cas d'usage +Décrivez les cas d'usage concrets pour cette fonctionnalité : +1. En tant que [type d'utilisateur] +2. Je veux [objectif] +3. Afin de [bénéfice] + +## 🔄 Alternatives considérées +Une description claire et concise des solutions alternatives que vous avez considérées. + +## 📊 Priorité +- [ ] 🔥 Critique - Bloque l'utilisation +- [ ] ⚡ Haute - Amélioration importante +- [ ] 📈 Moyenne - Amélioration utile +- [ ] 💡 Faible - Nice to have + +## 🎨 Mockups/Exemples +Si applicable, ajoutez des mockups, captures d'écran ou exemples pour expliquer votre idée. + +## 🔧 Implémentation technique +Si vous avez des idées sur l'implémentation technique, partagez-les ici. + +## 📚 Ressources +- [Documentation Django](https://docs.djangoproject.com/) +- [Exemples similaires](lien vers des exemples) +- [Packages Python pertinents](lien vers des packages) + +## ✅ Checklist +- [ ] J'ai vérifié que cette fonctionnalité n'a pas déjà été demandée +- [ ] J'ai fourni une description claire et détaillée +- [ ] J'ai expliqué la motivation et les cas d'usage +- [ ] J'ai considéré les alternatives +- [ ] J'ai fourni des exemples si possible \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 0000000..f6a29ce --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,51 @@ +--- +name: ❓ Question +about: Poser une question sur le projet +title: '[QUESTION] ' +labels: ['question', 'help-wanted'] +assignees: '' +--- + +## ❓ Votre question +Une description claire et concise de votre question. + +## 🔍 Contexte +Décrivez le contexte de votre question : +- Sur quoi travaillez-vous ? +- Quel est votre objectif ? +- À quel niveau êtes-vous bloqué ? + +## 📝 Ce que vous avez essayé +Décrivez les solutions que vous avez déjà essayées : +- [ ] Recherche dans la documentation +- [ ] Recherche dans les issues existantes +- [ ] Recherche sur Stack Overflow +- [ ] Autres tentatives... + +## 📚 Ressources consultées +Listez les ressources que vous avez déjà consultées : +- [Documentation du projet](lien) +- [Documentation Django](https://docs.djangoproject.com/) +- [Autres ressources](lien) + +## 💻 Code (si applicable) +```python +# Coller votre code ici si pertinent +``` + +## 🖥️ Environnement +**Version Python :** [ex. 3.9.0] +**Version Django :** [ex. 4.2.0] +**OS :** [ex. Ubuntu 20.04] + +## 📸 Captures d'écran +Si applicable, ajoutez des captures d'écran pour illustrer votre question. + +## 🎯 Résultat attendu +Décrivez ce que vous espérez obtenir comme réponse ou solution. + +## ✅ Checklist +- [ ] J'ai recherché dans la documentation +- [ ] J'ai vérifié les issues existantes +- [ ] J'ai fourni suffisamment de contexte +- [ ] Ma question est spécifique et claire \ No newline at end of file diff --git a/.github/cspell.json b/.github/cspell.json new file mode 100644 index 0000000..0912354 --- /dev/null +++ b/.github/cspell.json @@ -0,0 +1,57 @@ +{ + "version": "0.2", + "language": "fr,en", + "words": [ + "Django", + "Cameroon", + "djangocameroon", + "Python", + "GitHub", + "markdown", + "workflow", + "template", + "contributor", + "maintainer", + "pullrequest", + "pullrequesttemplate", + "discussion", + "discussiontemplate", + "issuetemplate", + "codeofconduct", + "contributing", + "readme", + "yaounde", + "douala", + "bamenda", + "garoua", + "maroua", + "n'gaoundere", + "bertoua", + "bafoussam", + "ebolowa", + "kumba", + "limbe", + "buea", + "cspell", + "linkcheck", + "workflows", + "templates", + "config", + "yml", + "json", + "md", + "yaml" + ], + "ignorePaths": [ + "node_modules/**", + ".git/**", + "*.log", + "*.lock", + "package-lock.json", + "yarn.lock" + ], + "import": [ + "@cspell/dict-fr-fr", + "@cspell/dict-en-us" + ] +} \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..ace7c25 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,27 @@ +version: 2 +updates: + # Configuration pour les dépendances npm + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + time: "09:00" + open-pull-requests-limit: 10 + reviewers: + - "djangocameroon/maintainers" + assignees: + - "djangocameroon/maintainers" + + # Configuration pour les actions GitHub + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + time: "09:00" + open-pull-requests-limit: 10 + reviewers: + - "djangocameroon/maintainers" + assignees: + - "djangocameroon/maintainers" \ No newline at end of file diff --git a/.github/discussion-categories.yml b/.github/discussion-categories.yml new file mode 100644 index 0000000..0446c45 --- /dev/null +++ b/.github/discussion-categories.yml @@ -0,0 +1,51 @@ +# Catégories de discussions pour Django Cameroon +categories: + - name: "💬 Général" + description: "Discussions générales sur Django Cameroon" + emoji: "💬" + color: "0e8a16" + + - name: "🎉 Événements" + description: "Annonces et discussions sur les événements" + emoji: "🎉" + color: "ff6b6b" + + - name: "💡 Idées de Projets" + description: "Proposer et discuter des idées de projets" + emoji: "💡" + color: "26de81" + + - name: "🆘 Demande d'Aide" + description: "Demander de l'aide technique ou communautaire" + emoji: "🆘" + color: "ffa502" + + - name: "📚 Ressources" + description: "Partager des ressources d'apprentissage" + emoji: "📚" + color: "0075ca" + + - name: "🤝 Collaboration" + description: "Trouver des collaborateurs pour vos projets" + emoji: "🤝" + color: "7057ff" + + - name: "📢 Annonces" + description: "Annonces importantes de la communauté" + emoji: "📢" + color: "ff6348" + + - name: "🎓 Formation" + description: "Discussions sur la formation et l'apprentissage" + emoji: "🎓" + color: "2ed573" + + - name: "💼 Emploi" + description: "Offres d'emploi et opportunités de carrière" + emoji: "💼" + color: "4834d4" + + - name: "🔧 Outils" + description: "Outils et technologies pour le développement" + emoji: "🔧" + color: "feca57" \ No newline at end of file diff --git a/.github/labels.yml b/.github/labels.yml new file mode 100644 index 0000000..3546be5 --- /dev/null +++ b/.github/labels.yml @@ -0,0 +1,124 @@ +# Labels pour Django Cameroon +- name: "bug" + color: "d73a4a" + description: "Quelque chose ne fonctionne pas" + +- name: "enhancement" + color: "a2eeef" + description: "Nouvelle fonctionnalité ou demande" + +- name: "documentation" + color: "0075ca" + description: "Améliorations ou ajouts à la documentation" + +- name: "good first issue" + color: "7057ff" + description: "Bon pour les nouveaux contributeurs" + +- name: "help wanted" + color: "008672" + description: "Besoin d'aide supplémentaire" + +- name: "question" + color: "d876e3" + description: "Question ou demande d'information" + +- name: "duplicate" + color: "cfd3d7" + description: "Cette issue ou pull request existe déjà" + +- name: "invalid" + color: "e4e669" + description: "Cette issue ou pull request n'est pas valide" + +- name: "wontfix" + color: "ffffff" + description: "Cette issue ne sera pas corrigée" + +- name: "community" + color: "ff6b6b" + description: "Lié à la communauté Django Cameroon" + +- name: "event" + color: "ff9f43" + description: "Événement communautaire" + +- name: "project-idea" + color: "26de81" + description: "Idée de projet" + +- name: "discussion" + color: "4834d4" + description: "Discussion communautaire" + +- name: "announcement" + color: "ff6348" + description: "Annonce importante" + +- name: "needs-triage" + color: "feca57" + description: "Nécessite une classification" + +- name: "priority-high" + color: "ff3838" + description: "Priorité élevée" + +- name: "priority-medium" + color: "ffa502" + description: "Priorité moyenne" + +- name: "priority-low" + color: "2ed573" + description: "Priorité faible" + +- name: "django" + color: "092e20" + description: "Lié au framework Django" + +- name: "python" + color: "3776ab" + description: "Lié au langage Python" + +- name: "frontend" + color: "61dafb" + description: "Interface utilisateur" + +- name: "backend" + color: "f7df1e" + description: "Logique métier et API" + +- name: "database" + color: "336791" + description: "Base de données" + +- name: "testing" + color: "25c2a0" + description: "Tests et qualité du code" + +- name: "security" + color: "ff6b6b" + description: "Sécurité" + +- name: "performance" + color: "ff9f43" + description: "Performance" + +- name: "accessibility" + color: "26de81" + description: "Accessibilité" + +- name: "mobile" + color: "4834d4" + description: "Application mobile" + +- name: "api" + color: "ff6348" + description: "Interface de programmation" + +- name: "deployment" + color: "feca57" + description: "Déploiement et infrastructure" + +- name: "maintenance" + color: "ff3838" + description: "Maintenance et refactoring" \ No newline at end of file diff --git a/.github/link-check-config.json b/.github/link-check-config.json new file mode 100644 index 0000000..677a15d --- /dev/null +++ b/.github/link-check-config.json @@ -0,0 +1,30 @@ +{ + "ignorePatterns": [ + { + "pattern": "^http://localhost" + }, + { + "pattern": "^https://localhost" + }, + { + "pattern": "^http://127.0.0.1" + }, + { + "pattern": "^https://127.0.0.1" + } + ], + "replacementPatterns": [ + { + "pattern": "^/", + "replacement": "https://github.com/djangocameroon/.github/blob/main/" + } + ], + "httpHeaders": [ + { + "urls": ["https://djangocameroon.org"], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + } + } + ] +} \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..b1c7598 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,82 @@ +# Pull Request - Django Cameroon + +## 📝 Description +Décrivez brièvement les changements apportés dans cette PR. + +## 🔗 Issue liée +Fixes #(numéro de l'issue) + +## 🎯 Type de changement +- [ ] 🐛 Correction de bug (changement non-breaking qui corrige un problème) +- [ ] ✨ Nouvelle fonctionnalité (changement non-breaking qui ajoute une fonctionnalité) +- [ ] 💥 Breaking change (fix ou fonctionnalité qui causerait un changement non-compatible) +- [ ] 📚 Documentation (changements uniquement dans la documentation) +- [ ] 🎨 Style (formatage, point-virgules manquants, etc. ; pas de changement de code) +- [ ] ♻️ Refactoring (changement de code qui ne corrige pas de bug ni n'ajoute de fonctionnalité) +- [ ] ⚡ Performance (changement de code qui améliore les performances) +- [ ] ✅ Tests (ajout de tests manquants ou correction de tests existants) +- [ ] 🔧 Chores (mise à jour des tâches de build, configuration, etc.) + +## 🧪 Tests +- [ ] J'ai ajouté des tests qui prouvent que mon fix est efficace ou que ma fonctionnalité fonctionne +- [ ] Les tests existants passent avec mes changements +- [ ] J'ai testé manuellement mes changements + +### Tests ajoutés/modifiés +Décrivez les tests que vous avez ajoutés ou modifiés : +```python +# Exemple de test +def test_ma_nouvelle_fonctionnalite(): + # Test code here + pass +``` + +## 📸 Captures d'écran (si applicable) +Ajoutez des captures d'écran pour illustrer vos changements. + +## 🔍 Checklist +### Code +- [ ] Mon code suit les conventions de style de ce projet +- [ ] J'ai effectué une auto-review de mon propre code +- [ ] J'ai commenté mon code, particulièrement dans les zones difficiles à comprendre +- [ ] Mes changements ne génèrent pas de nouveaux warnings +- [ ] J'ai ajouté des tests qui prouvent que mon fix est efficace ou que ma fonctionnalité fonctionne +- [ ] Les tests existants passent avec mes changements + +### Documentation +- [ ] J'ai mis à jour la documentation correspondante +- [ ] J'ai mis à jour le README si nécessaire +- [ ] J'ai ajouté des commentaires dans le code si nécessaire + +### Performance +- [ ] Mes changements n'introduisent pas de problèmes de performance +- [ ] J'ai testé les performances si applicable + +### Sécurité +- [ ] Mes changements n'introduisent pas de vulnérabilités de sécurité +- [ ] J'ai considéré les implications de sécurité de mes changements + +## 🚀 Déploiement +- [ ] Cette PR nécessite des migrations de base de données +- [ ] Cette PR nécessite des changements de configuration +- [ ] Cette PR nécessite des dépendances supplémentaires +- [ ] Cette PR nécessite des instructions de déploiement spéciales + +## 📋 Informations supplémentaires +Ajoutez toute information supplémentaire qui pourrait être utile pour les reviewers. + +## 🔄 Changements de dernière minute +Décrivez tout changement fait après la création de la PR. + +## 👥 Reviewers +Mentionnez les personnes qui devraient reviewer cette PR : +@username1 @username2 + +## 📝 Notes pour les reviewers +- [ ] Points spécifiques à vérifier +- [ ] Zones de code complexes +- [ ] Décisions de design importantes + +--- + +**Merci pour votre contribution à Django Cameroon ! 🚀** \ No newline at end of file diff --git a/.github/repository-settings.yml b/.github/repository-settings.yml new file mode 100644 index 0000000..0d4fd07 --- /dev/null +++ b/.github/repository-settings.yml @@ -0,0 +1,75 @@ +# Configuration des paramètres de dépôt pour Django Cameroon +repository_settings: + # Paramètres généraux + name: "Django Cameroon" + description: "Communauté Django au Cameroun - Ressources et configurations partagées" + website: "https://djangocameroon.org" + topics: + - "django" + - "python" + - "cameroon" + - "community" + - "web-development" + - "open-source" + - "africa" + - "tech-community" + + # Visibilité + visibility: "public" + has_issues: true + has_projects: true + has_wiki: true + has_discussions: true + + # Branches + default_branch: "main" + allow_merge_commit: true + allow_squash_merge: true + allow_rebase_merge: true + delete_branch_on_merge: true + + # Protection de branche + branch_protection: + required_status_checks: + strict: true + contexts: + - "markdown-link-check" + - "spell-check" + enforce_admins: true + required_pull_request_reviews: + required_approving_review_count: 1 + dismiss_stale_reviews: true + require_code_owner_reviews: true + restrictions: null + + # Webhooks + webhooks: + - url: "https://djangocameroon.org/webhook" + content_type: "json" + secret: "webhook-secret" + events: + - "push" + - "pull_request" + - "issues" + - "discussion" + - "release" + + # Notifications + notifications: + email: "notifications@djangocameroon.org" + slack: "https://hooks.slack.com/services/djangocameroon" + + # Intégrations + integrations: + - "dependabot" + - "codeql" + - "security-advisories" + - "secret-scanning" + + # Permissions + permissions: + admin: ["djangocameroon/maintainers"] + maintain: ["djangocameroon/maintainers"] + triage: ["djangocameroon/contributors"] + push: ["djangocameroon/maintainers"] + pull: ["djangocameroon/contributors"] \ No newline at end of file diff --git a/.github/repository-template.yml b/.github/repository-template.yml new file mode 100644 index 0000000..2535e4e --- /dev/null +++ b/.github/repository-template.yml @@ -0,0 +1,43 @@ +# Template de dépôt pour Django Cameroon +name: "Django Cameroon Project Template" +description: "Template de base pour les projets Django Cameroon" +visibility: "public" +include_all_branches: false + +# Fichiers à inclure dans le template +files: + - "README.md" + - "CONTRIBUTING.md" + - "CODE_OF_CONDUCT.md" + - ".github/" + +# Configuration par défaut +default_branch: "main" +allow_merge_commit: true +allow_squash_merge: true +allow_rebase_merge: true +delete_branch_on_merge: true + +# Protection de branche +branch_protection: + required_status_checks: + strict: true + contexts: + - "ci" + enforce_admins: true + required_pull_request_reviews: + required_approving_review_count: 1 + dismiss_stale_reviews: true + require_code_owner_reviews: true + restrictions: null + +# Webhooks +webhooks: + - url: "https://djangocameroon.org/webhook" + content_type: "json" + secret: "webhook-secret" + events: + - "push" + - "pull_request" + - "issues" + - "discussion" \ No newline at end of file diff --git a/.github/security.yml b/.github/security.yml new file mode 100644 index 0000000..3781dab --- /dev/null +++ b/.github/security.yml @@ -0,0 +1,56 @@ +# Configuration de sécurité pour Django Cameroon +name: "Security Policy" + +# Politique de divulgation responsable +responsible_disclosure: + email: "security@djangocameroon.org" + pgp_key: "https://djangocameroon.org/security.asc" + +# Types de vulnérabilités acceptées +accepted_vulnerabilities: + - "Cross-Site Scripting (XSS)" + - "SQL Injection" + - "Cross-Site Request Forgery (CSRF)" + - "Authentication Bypass" + - "Privilege Escalation" + - "Information Disclosure" + - "Denial of Service (DoS)" + - "Remote Code Execution" + - "Insecure Direct Object References" + - "Security Misconfiguration" + +# Processus de divulgation +disclosure_process: + 1: "Signaler la vulnérabilité par email sécurisé" + 2: "Confirmation de réception sous 48h" + 3: "Investigation et validation sous 7 jours" + 4: "Développement d'un correctif" + 5: "Test du correctif" + 6: "Publication du correctif et crédit" + +# Timeline de réponse +response_timeline: + initial_response: "48 hours" + status_update: "7 days" + fix_development: "30 days" + public_disclosure: "90 days" + +# Reconnaissance +acknowledgment: + - "Mention dans les notes de version" + - "Inclusion dans la page de sécurité" + - "Certificat de reconnaissance" + - "Mention sur les réseaux sociaux" + +# Exclusions +exclusions: + - "Vulnérabilités dans des dépendances tierces non maintenues" + - "Problèmes de configuration utilisateur" + - "Attaques nécessitant un accès physique" + - "Problèmes de social engineering" + +# Contact +contact: + email: "security@djangocameroon.org" + website: "https://djangocameroon.org/security" + pgp: "https://djangocameroon.org/security.asc" \ No newline at end of file diff --git a/.github/workflows/markdown-link-check.yml b/.github/workflows/markdown-link-check.yml new file mode 100644 index 0000000..06f53ca --- /dev/null +++ b/.github/workflows/markdown-link-check.yml @@ -0,0 +1,23 @@ +name: Markdown Link Check + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main ] + schedule: + # Vérifier les liens tous les dimanches à 2h du matin + - cron: '0 2 * * 0' + +jobs: + markdown-link-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Markdown Link Check + uses: gaurav-nelson/github-action-markdown-link-check@v1 + with: + use-quiet-mode: 'yes' + use-verbose-mode: 'yes' + config-file: '.github/link-check-config.json' \ No newline at end of file diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml new file mode 100644 index 0000000..98dd3bf --- /dev/null +++ b/.github/workflows/spell-check.yml @@ -0,0 +1,24 @@ +name: Spell Check + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main ] + +jobs: + spell-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + + - name: Install cspell + run: npm install -g cspell + + - name: Spell check + run: cspell "**/*.md" --config .github/cspell.json \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..1a296ff --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,120 @@ +# Code de Conduite - Django Cameroon + +## Notre engagement + +Au nom de Django Cameroon, nous nous engageons à faire de la participation à notre communauté une expérience sans harcèlement pour tous, indépendamment de l'âge, de la taille, du handicap, de l'ethnicité, des caractéristiques sexuelles, de l'identité et de l'expression de genre, du niveau d'expérience, de l'éducation, du statut socio-économique, de la nationalité, de l'apparence personnelle, de la race, de la religion ou de l'identité et de l'orientation sexuelles. + +## Nos standards + +Exemples de comportements qui contribuent à créer un environnement positif : + +### ✅ Comportements acceptables +- Utiliser un langage accueillant et inclusif +- Respecter les points de vue et expériences différents +- Accepter gracieusement les critiques constructives +- Se concentrer sur ce qui est le mieux pour la communauté +- Faire preuve d'empathie envers les autres membres de la communauté + +### ❌ Comportements inacceptables +- L'utilisation de langage ou d'images sexualisés ou d'attention ou d'avances sexuelles non désirées +- Le trolling, les commentaires insultants ou désobligeants, et les attaques personnelles ou politiques +- Le harcèlement public ou privé +- La publication d'informations privées d'autrui sans autorisation explicite +- Toute autre conduite qui pourrait raisonnablement être considérée comme inappropriée dans un environnement professionnel + +## Responsabilités de l'équipe + +L'équipe de Django Cameroon est responsable de clarifier les standards de comportement acceptables et est censée prendre des mesures correctives appropriées et équitables en réponse à tout comportement inacceptable. + +L'équipe a le droit et la responsabilité de supprimer, modifier ou rejeter les commentaires, commits, code, modifications de wiki, issues et autres contributions qui ne sont pas alignées avec ce Code de Conduite, et communiquera les raisons des décisions de modération quand c'est approprié. + +## Portée + +Ce Code de Conduite s'applique dans tous les espaces communautaires, et s'applique également dans les espaces publics lorsqu'une personne représente la communauté ou ses projets. Exemples de représentation de la communauté ou des projets incluent l'utilisation d'une adresse email officielle de projet, la publication via un compte de média social officiel, ou agir en tant que représentant désigné à un événement en ligne ou hors ligne. La représentation d'un projet peut être définie et clarifiée par les mainteneurs du projet. + +## Application + +Les cas de comportement abusif, harcelant ou autrement inacceptable peuvent être signalés en contactant l'équipe de Django Cameroon à [email à ajouter]. Toutes les plaintes seront examinées et enquêtées et se traduiront par une réponse qui est considérée comme nécessaire et appropriée aux circonstances. L'équipe est obligée de maintenir la confidentialité concernant le rapporteur d'un incident. Des détails supplémentaires sur les politiques d'application spécifiques peuvent être postés séparément. + +Les mainteneurs de projet qui ne suivent pas ou n'appliquent pas le Code de Conduite de bonne foi peuvent faire face à des répercussions temporaires ou permanentes telles que déterminées par d'autres membres de la direction du projet. + +## Principes directeurs + +### 🌍 Inclusion +Nous croyons en une communauté inclusive qui accueille et valorise la diversité. Chaque membre a le droit de participer pleinement, peu importe son origine, son expérience ou ses perspectives. + +### 🤝 Respect mutuel +Nous nous traitons tous avec respect et dignité. Les désaccords sont normaux, mais nous les gérons de manière constructive et professionnelle. + +### 📚 Apprentissage continu +Nous encourageons l'apprentissage et la croissance. Il n'y a pas de questions stupides, et nous soutenons tous ceux qui cherchent à améliorer leurs compétences. + +### 🎯 Focus sur la communauté +Nos décisions et actions sont guidées par ce qui est le mieux pour la communauté Django Cameroon dans son ensemble. + +### 🔒 Confidentialité +Nous respectons la vie privée de nos membres et ne partageons pas d'informations personnelles sans consentement explicite. + +## Processus de résolution des conflits + +### 1. Résolution informelle +- Essayez de résoudre le conflit directement avec la personne concernée +- Utilisez un langage respectueux et constructif +- Concentrez-vous sur le problème, pas sur la personne + +### 2. Médiation +- Si la résolution directe n'est pas possible, contactez un modérateur +- Un membre de l'équipe peut servir de médiateur neutre +- L'objectif est de trouver une solution mutuellement acceptable + +### 3. Action formelle +- Pour les violations graves ou répétées, l'équipe peut prendre des mesures formelles +- Cela peut inclure des avertissements, des suspensions temporaires ou des exclusions permanentes +- Toutes les actions formelles sont documentées et communiquées de manière appropriée + +## Signaler un problème + +### Comment signaler +- **Email** : [email à ajouter] +- **GitHub** : Créez une issue privée ou contactez directement les mainteneurs +- **En personne** : Parlez à un organisateur lors d'événements + +### Que signaler +- Harcèlement ou intimidation +- Comportement discriminatoire +- Spam ou contenu inapproprié +- Violation de confidentialité +- Toute autre violation de ce code de conduite + +### Ce qui se passe après un signalement +1. **Accusé de réception** - Nous confirmons la réception de votre signalement +2. **Enquête** - Nous enquêtons sur la situation de manière impartiale +3. **Action** - Nous prenons les mesures appropriées +4. **Suivi** - Nous vous tenons informé du résultat + +## Ressources et support + +### Ressources internes +- Guide de contribution : [CONTRIBUTING.md](CONTRIBUTING.md) +- Documentation communautaire : [djangocameroon.org](https://djangocameroon.org) +- Discussions GitHub : [lien vers les discussions] + +### Ressources externes +- [Django Code of Conduct](https://www.djangoproject.com/conduct/) +- [Python Community Code of Conduct](https://www.python.org/psf/conduct/) +- [Contributor Covenant](https://www.contributor-covenant.org/) + +## Modifications + +Ce Code de Conduite peut être modifié par l'équipe de Django Cameroon. Les modifications importantes seront communiquées à la communauté avec un préavis approprié. + +## Reconnaissance + +Ce Code de Conduite est adapté du [Contributor Covenant](https://www.contributor-covenant.org), version 2.0, disponible à https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +--- + +**Dernière mise à jour** : [Date à ajouter] +**Version** : 1.0 + +Pour toute question concernant ce Code de Conduite, contactez-nous à [email à ajouter]. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..ed255a6 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,197 @@ +# Guide de Contribution - Django Cameroon + +Merci de votre intérêt à contribuer à Django Cameroon ! Ce guide vous aidera à comprendre comment participer efficacement à notre communauté. + +## 🎯 Comment contribuer + +### 1. Rejoindre la communauté +- Consultez notre [site web](https://djangocameroon.org) +- Rejoignez notre liste de diffusion +- Suivez notre profil GitHub +- Participez aux discussions sur GitHub + +### 2. Types de contributions + +#### 📝 Documentation +- Améliorer la documentation existante +- Rédiger des tutoriels et guides +- Traduire la documentation +- Corriger les erreurs de typographie + +#### 💻 Code +- Corriger des bugs +- Ajouter de nouvelles fonctionnalités +- Améliorer les performances +- Ajouter des tests + +#### 🎨 Design +- Améliorer l'interface utilisateur +- Créer des assets graphiques +- Améliorer l'expérience utilisateur +- Créer des templates + +#### 📢 Communication +- Organiser des événements +- Donner des présentations +- Rédiger des articles de blog +- Partager sur les réseaux sociaux + +#### 🧠 Mentorat +- Aider les nouveaux membres +- Répondre aux questions +- Partager vos connaissances +- Organiser des sessions de formation + +## 🚀 Processus de contribution + +### Pour les contributions de code + +1. **Fork le projet** + ```bash + git clone https://github.com/votre-username/nom-du-projet.git + cd nom-du-projet + ``` + +2. **Créer une branche** + ```bash + git checkout -b feature/nom-de-votre-fonctionnalite + ``` + +3. **Faire vos modifications** + - Écrire du code propre et bien commenté + - Ajouter des tests si nécessaire + - Mettre à jour la documentation + +4. **Tester vos modifications** + ```bash + # Exécuter les tests + python manage.py test + + # Vérifier le style de code + flake8 . + black --check . + ``` + +5. **Commiter vos changements** + ```bash + git add . + git commit -m "feat: ajouter une nouvelle fonctionnalité" + ``` + +6. **Pousser vers votre fork** + ```bash + git push origin feature/nom-de-votre-fonctionnalite + ``` + +7. **Créer une Pull Request** + - Utilisez le template de PR fourni + - Décrivez clairement vos changements + - Référencez les issues liées + +### Pour les contributions non-code + +1. **Créer une issue** pour discuter de votre idée +2. **Attendre l'approbation** de la communauté +3. **Proposer votre contribution** via une issue ou discussion +4. **Collaborer** avec l'équipe pour finaliser + +## 📋 Standards de contribution + +### Code +- Suivez les conventions PEP 8 pour Python +- Utilisez des noms de variables et fonctions explicites +- Ajoutez des docstrings pour les fonctions et classes +- Écrivez des tests pour les nouvelles fonctionnalités +- Gardez les commits atomiques et bien décrits + +### Documentation +- Utilisez un langage clair et accessible +- Incluez des exemples pratiques +- Vérifiez l'orthographe et la grammaire +- Structurez le contenu de manière logique + +### Communication +- Soyez respectueux et inclusif +- Utilisez un langage clair et professionnel +- Écoutez les retours de la communauté +- Restez ouvert aux suggestions + +## 🏷️ Convention de commits + +Nous utilisons le format [Conventional Commits](https://www.conventionalcommits.org/) : + +``` +type(scope): description + +[corps optionnel] + +[footer optionnel] +``` + +Types acceptés : +- `feat`: nouvelle fonctionnalité +- `fix`: correction de bug +- `docs`: documentation +- `style`: formatage, point-virgules manquants, etc. +- `refactor`: refactoring du code +- `test`: ajout ou modification de tests +- `chore`: tâches de maintenance + +Exemples : +``` +feat(auth): ajouter l'authentification OAuth2 +fix(api): corriger la pagination des utilisateurs +docs(readme): mettre à jour les instructions d'installation +``` + +## 🔍 Processus de review + +1. **Vérification automatique** - Les tests et linters s'exécutent automatiquement +2. **Review par les pairs** - Au moins un membre de l'équipe examine le code +3. **Tests manuels** - Vérification que tout fonctionne comme attendu +4. **Approbation** - Merge après approbation + +### Critères d'approbation +- ✅ Code fonctionnel et testé +- ✅ Documentation mise à jour +- ✅ Respect des conventions +- ✅ Pas de régression +- ✅ Approbation d'au moins un reviewer + +## 🐛 Signaler un bug + +Utilisez le template d'issue "Bug Report" et incluez : +- Description claire du problème +- Étapes pour reproduire +- Comportement attendu vs observé +- Environnement (OS, version Python, etc.) +- Captures d'écran si applicable + +## 💡 Proposer une fonctionnalité + +Utilisez le template d'issue "Feature Request" et incluez : +- Description de la fonctionnalité +- Cas d'usage et bénéfices +- Alternatives considérées +- Niveau de priorité + +## ❓ Questions et support + +- 📧 Email : [à ajouter] +- 💬 Discussions GitHub : [lien vers les discussions] +- 🐦 Twitter : [à ajouter] +- 💼 LinkedIn : [à ajouter] + +## 📜 Code de conduite + +Notre communauté s'engage à fournir un environnement accueillant et inclusif pour tous. Consultez notre [Code de Conduite](CODE_OF_CONDUCT.md) pour plus de détails. + +## 🙏 Reconnaissance + +Toutes les contributions sont appréciées ! Nous reconnaissons publiquement nos contributeurs dans : +- Le README du projet +- Les notes de version +- Les réseaux sociaux +- Les événements communautaires + +Merci de contribuer à Django Cameroon ! 🚀 \ No newline at end of file diff --git a/README.md b/README.md index a46ae92..19a5341 100644 --- a/README.md +++ b/README.md @@ -1 +1,37 @@ -# .github \ No newline at end of file +# Django Cameroon - .github + +Ce dépôt contient les ressources et configurations partagées pour l'organisation Django Cameroon sur GitHub. + +## 📁 Contenu de ce dépôt + +- **`profile/`** - Profil public de l'organisation Django Cameroon +- **Templates d'issues** - Pour standardiser les rapports de bugs et demandes de fonctionnalités +- **Templates de pull requests** - Pour faciliter les contributions +- **Templates de discussions** - Pour organiser les conversations communautaires +- **Politiques de contribution** - Guidelines et code de conduite + +## 🚀 À propos de Django Cameroon + +Django Cameroon est une communauté de développeurs, designers et technologues utilisant le framework web Django pour construire des projets et applications impactants au Cameroun. + +### Notre mission +Nous organisons des ateliers, conférences, hackathons et autres événements pour promouvoir l'utilisation de Django, Python et des technologies open source. Notre communauté est passionnée par l'utilisation de la technologie pour résoudre les problèmes locaux et autonomiser les entreprises, organisations à but non lucratif et entreprises sociales au Cameroun. + +## 🤝 Comment contribuer + +Nous accueillons toujours de nouveaux membres ! Nous fournissons des ressources et du support pour les développeurs de tous niveaux pour apprendre, collaborer et construire avec Django et Python. + +### Types de contributions +- 💡 Idées d'événements et présentations +- ✍️ Rédaction d'articles de blog ou tutoriels +- 🔧 Projets et outils open source +- 👥 Mentorat et enseignement +- 💬 Suggestions pour améliorer la communauté + +## 📞 Nous rejoindre + +- 🌐 Site web : [djangocameroon.org](https://djangocameroon.org) +- 📧 Liste de diffusion : [à ajouter] +- 👥 Profil GitHub : Consultez notre [profil](./profile/) + +Construisons ensemble des solutions pour l'avenir du Cameroun ! 🇨🇲 \ No newline at end of file