diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..353b1f1 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,51 @@ +# Instructions Copilot - Projet N3WT-SCHOOL + +## Objectif + +Corriger ou améliorer le projet N3WT-SCHOOL de manière minimaliste et fonctionnelle, sans dépendances inutiles. + +## Architecture du projet + +### Structure + +- **Backend** : Python Django (dossier `Back-End/`) +- **Frontend** : NextJS (dossier `Front-End/`) +- **Tests frontend** : `Front-End/src/test/` +- **Code frontend** : `Front-End/src/` + +## Gestion des tickets + +### Règles générales + +- Chaque **nouvelle fonctionnalité** ou **correction** nécessite un ticket Gitea +- **Exemptions** : modifications documentaires, refactoring, chore, style + +### Cycle de vie d'un ticket + +1. **Création** → label `etat/En Pause` +2. **Affectation** → label `etat/En Cours` +3. **Développement terminé** → label `etat/Codé` +4. **Tests validés** → label `etat/Testé` + +### Gestion des branches + +- **Base** : branche `develop` +- **Nomenclature** : `--` (ex: `feat-ma_super_feat-1234`) +- **Types** : feat, fix, docs, style, refactor, test, chore + +## Exigences qualité + +### Tests + +- Tests unitaires obligatoires pour chaque nouvelle fonctionnalité +- Localisation : `Front-End/src/test/` + +### Documentation + +- Documentation en français pour les nouvelles fonctionnalités (si applicable) +- Référence : [documentation guidelines](./instructions/documentation.instruction.md) + +## Références + +- **Tickets** : [issues guidelines](./instructions/issues.instruction.md) +- **Commits** : [commit guidelines](./instructions/general-commit.instruction.md) diff --git a/.github/instructions/documentation.instruction.md b/.github/instructions/documentation.instruction.md new file mode 100644 index 0000000..cfc35e4 --- /dev/null +++ b/.github/instructions/documentation.instruction.md @@ -0,0 +1,6 @@ +La documentation doit être en français et claire pour les utilisateurs francophones. +Toutes la documentation doit être dans le dossier docs/ +Seul les fichiers README.md, CHANGELOG.md doivent être à la racine. +La documentation doit être conscise et pertinente, sans répétitions inutiles entre les documents. +Tout ce qui concerne la gestion de projet, roadmap ne doit pas apparaître dans la documentation. +Tout ce qui concerne les modifications de type chore n'a pas besoin d'être documenté. diff --git a/.github/instructions/general-commit.instruction.md b/.github/instructions/general-commit.instruction.md new file mode 100644 index 0000000..e7279d4 --- /dev/null +++ b/.github/instructions/general-commit.instruction.md @@ -0,0 +1,28 @@ +### **Commit Guidelines (Conventionnel)** + +Les messages de commits se basent sur **Conventional Commits** (https://www.conventionalcommits.org/en/v1.0.0/) , pour une meilleure gestion des versions et une génération automatique du changelog. + +#### **Format standard** : + +``` +(): [#] +``` + +- **Types autorisés** : + + - `feat` : Nouvelle fonctionnalité. + - `fix` : Correction d’un bug. + - `docs` : Modifications liées à la documentation. + - `style` : Mise en forme du code (pas de changements fonctionnels). + - `refactor` : Refactorisation sans ajout de fonctionnalités ni correction de bugs. + - `test` : Ajout ou modification de tests. + - `chore` : Maintenance ou tâches diverses (ex. mise à jour des dépendances). + +- **Scope (optionnel)** : Précisez une partie spécifique du projet (`backend`, `frontend`, `API`, etc.). + +- **Exemples** : + ``` + feat(frontend): ajout de la gestion des utilisateurs dans le dashboard [#1] + fix(backend): correction du bug lié à l'authentification JWT [#1] + docs: mise à jour du README avec les nouvelles instructions d’installation [#2] + ``` diff --git a/.github/instructions/issues.instruction.md b/.github/instructions/issues.instruction.md new file mode 100644 index 0000000..1a2e3fe --- /dev/null +++ b/.github/instructions/issues.instruction.md @@ -0,0 +1,22 @@ +- Chaque nouveau ticket doit faire l'objet d'une analyse pour définir les modifications à effectuer. +- l'analyse doit être présente dans la description du ticket au format: + +# Description de la modification + +Définir la modification + +# Solution envisagée + +Définir l'implementation avec l'impact dans le code + +# Modification documentaire + +Définir les documents à modifier si il existe il peut ne pas y en avoir. + +# Tests + +Définir ici comment va être tester la fonctionnalité et les cas de test. + +- Une fois créer son label doit passer à `etat/En Pause` +- Les labels 'subject' sont ensuites ajouté en fonction du sujet de modification. +- le label 'workload' est défini en fonction de si la modification de code est longue (gros impact) à faire ou rapide (faible impact) diff --git a/.vscode/settings.json b/.vscode/settings.json index 0101710..3faed76 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,6 @@ { - "eslint.workingDirectories": ["./Front-End"] + "eslint.workingDirectories": ["./Front-End"], + "giteaCopilotTools.owner": "n3wt-innov", + "giteaCopilotTools.repo": "n3wt-school", + "giteaCopilotTools.autoRefreshInterval": 15 }