mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
chore: Initial Commit
feat: Gestion des inscriptions [#1] feat(frontend): Création des vues pour le paramétrage de l'école [#2] feat: Gestion du login [#6] fix: Correction lors de la migration des modèle [#8] feat: Révision du menu principal [#9] feat: Ajout d'un footer [#10] feat: Création des dockers compose pour les environnements de développement et de production [#12] doc(ci): Mise en place de Husky et d'un suivi de version automatique [#14]
This commit is contained in:
122
docs/CODING_GUIDELINES.md
Normal file
122
docs/CODING_GUIDELINES.md
Normal file
@ -0,0 +1,122 @@
|
||||
|
||||
### 1. **Code Guidelines pour N3WT-SCHOOL**
|
||||
#### **Back-end (Python Django)**
|
||||
- **Style** : Adoptez **PEP 8** (https://peps.python.org/pep-0008/) (style standard pour Python) avec des ajustements pour vos besoins spécifiques.
|
||||
Utilisez **Black** pour le formatage automatique.
|
||||
- **Documentation** : Utilisez des docstrings conformes à la convention SWAGGER (https://www.geeksforgeeks.org/python-swagger-annotations-for-api-documentation/).
|
||||
- **Imports** :
|
||||
- Regroupez par sections (bibliothèques standard, dépendances externes, imports internes).
|
||||
- Utilisez des imports explicites, pas de wildcard (`from module import *`).
|
||||
- **Nom des variables** : Suivez un style **snake_case** pour les noms de variables et de fonctions.
|
||||
|
||||
- Path patterns: **/*.py
|
||||
|
||||
#### **Front-end (Next.js avec React et TailwindCSS)**
|
||||
- **Structure des fichiers** :
|
||||
- Un composant = un fichier, placé dans `/components` ou `/pages` selon le cas.
|
||||
- Utilisez des hooks personnalisés pour éviter de dupliquer la logique.
|
||||
- **Style** :
|
||||
- Utilisez TailwindCSS avec des classes utilitaires dans le fichier JSX directement.
|
||||
- Favorisez une approche **mobile-first**.
|
||||
- **Nom des fichiers** :
|
||||
- Composants React : **PascalCase** (e.g., `StudentForm.jsx`).
|
||||
- Variables et fonctions : **camelCase**.
|
||||
- **Linting** :
|
||||
- Activez ESLint avec des règles adaptées à Next.js.
|
||||
- Ajoutez **Prettier** pour formater automatiquement le code.
|
||||
- **Commentaires** : Expliquez uniquement la logique complexe dans des commentaires succincts.
|
||||
|
||||
Path patterns: **/*.ts, **/*.js, **/*.jsx, **/*.tsx
|
||||
|
||||
---
|
||||
|
||||
### 2. **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** :
|
||||
```
|
||||
<type>(<scope>): <description> [#<ticket-id>]
|
||||
```
|
||||
|
||||
- **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]
|
||||
```
|
||||
|
||||
- Template de commit message
|
||||
|
||||
Dans le fichier .gitmessage.txt ajoutez le contenue suivant:
|
||||
```sh
|
||||
<type>(<scope>): <description> [#<ticket-id>]
|
||||
|
||||
# Types:
|
||||
# - feat: Nouvelle fonctionnalité
|
||||
# - fix: Correction de bug
|
||||
# - docs: Documentation
|
||||
# - style: Changements esthétiques
|
||||
# - refactor: Refactorisation
|
||||
# - test: Ajout/modification de tests
|
||||
# - chore: Tâches diverses (e.g., mise à jour des dépendances)
|
||||
#
|
||||
# Scope: Optionnel (ex. backend, frontend, API)
|
||||
#
|
||||
# Ticket ID: Référence à un ticket ou une issue (ex. [#PROJ-123])
|
||||
```
|
||||
|
||||
Ajoutez cette configuration à votre fichier global .gitconfig :
|
||||
|
||||
```
|
||||
git config commit.template .gitmessage.txt
|
||||
```
|
||||
Lors de chaque commit, le modèle s’affichera automatiquement.
|
||||
|
||||
|
||||
---
|
||||
|
||||
### **Automatisation avec Commitlint**
|
||||
Vous pouvez configurer **Commitlint** pour forcer l'inclusion d'un ID de ticket dans chaque message de commit.
|
||||
|
||||
#### **Étape 1 : Installer Commitlint et Husky**
|
||||
```bash
|
||||
npm install --save-dev @commitlint/{config-conventional,cli}
|
||||
npm install --save-dev husky
|
||||
npx husky install
|
||||
```
|
||||
|
||||
#### **Étape 2 : Configurer Commitlint**
|
||||
Créez un fichier `commitlint.config.js` :
|
||||
```javascript
|
||||
module.exports = {
|
||||
extends: ['@commitlint/config-conventional'],
|
||||
rules: {
|
||||
'subject-case': [0, 'always'],
|
||||
'scope-enum': [2, 'always', ['frontend', 'backend', 'api', 'docs', 'ci', 'devops']],
|
||||
'type-enum': [
|
||||
2,
|
||||
'always',
|
||||
['feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore']
|
||||
]
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
#### **Étape 3 : Configurer Husky pour le hook pre-commit**
|
||||
Ajoutez un hook avec Husky pour vérifier les commits :
|
||||
```bash
|
||||
npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"
|
||||
```
|
||||
|
||||
---
|
||||
67
docs/Installation_Manuelle.md
Normal file
67
docs/Installation_Manuelle.md
Normal file
@ -0,0 +1,67 @@
|
||||
# Installation Manuelle
|
||||
|
||||
### Installation de python
|
||||
Lien de téléchargement : https://www.python.org/downloads/
|
||||
Installer une version <= 12.x
|
||||
|
||||
## Création d'un environement virtuel python
|
||||
```sh
|
||||
python -m venv .venv
|
||||
```
|
||||
|
||||
## Activation du virtual env
|
||||
|
||||
Linux: `source .venv/bin/activate`
|
||||
Windows : `.venv\Scripts\activate.bat`
|
||||
|
||||
## Installation des dépendances pip
|
||||
|
||||
```sh
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## MaJ requirements.txt
|
||||
|
||||
Lors de l'ajout d'une dépendance pip (pip install <package>)
|
||||
il faut mettre à jour le fichier requirements.txt
|
||||
```sh
|
||||
pip freeze > requirements.txt
|
||||
```
|
||||
|
||||
## premier lancement
|
||||
|
||||
```sh
|
||||
cd src
|
||||
python maj.py
|
||||
```
|
||||
|
||||
## Lancement de django
|
||||
|
||||
```sh
|
||||
cd src
|
||||
python manage.py runserver
|
||||
```
|
||||
|
||||
## Installation du frontend
|
||||
|
||||
Installer nodejs
|
||||
Dans le dossier Front-End effectuer la commande suivante pour installer les dépendances:
|
||||
|
||||
```sh
|
||||
npm i
|
||||
```
|
||||
## Lancement du Front End
|
||||
|
||||
Dans le dossier Front-End effectuer la commande suivante:
|
||||
|
||||
```sh
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Accès à l'application
|
||||
|
||||
l'application est accessible sur http://127.0.0.1:8080
|
||||
|
||||
## Resources pédagogiques
|
||||
|
||||
Documentation django : https://docs.djangoproject.com/en/5.0/
|
||||
Reference in New Issue
Block a user