Application web pour la gestion des urgences.
- Installation
- Structure du projet
- Branches Git
- Développement
- CI/CD
- Conventional Commits
- Déploiement
- Contribution
# Cloner le dépôt
git clone <repository-url>
cd Urgences
# Installer les dépendances du client
cd client
npm installUrgences/
├── client/ # Application frontend
├── .github/
│ └── workflows/ # Workflows CI/CD
│ ├── ci.yml # Pipeline CI
│ └── deploy-vercel.yml # Déploiement Vercel
├── .commitlintrc.json # Configuration Conventional Commits
└── README.md
Le projet utilise deux branches principales :
- Usage : Tous les développements et modifications de code
- Workflow : C'est sur cette branche que vous codez et testez vos fonctionnalités
- CI : Le pipeline CI s'exécute automatiquement sur chaque push
- Usage : Uniquement pour le déploiement sur Vercel
- Workflow : Mergez
devdansmainuniquement quand le code est prêt pour la production - Déploiement : Déploiement automatique sur Vercel à chaque push
# 1. Travailler sur la branche dev
git checkout dev
git pull origin dev
# 2. Créer une nouvelle branche de fonctionnalité
git checkout -b feature/ma-fonctionnalite
# 3. Faire vos modifications et commits
git add .
git commit -m "feat: ajouter ma fonctionnalité"
# 4. Pousser et créer une Pull Request vers dev
git push origin feature/ma-fonctionnalite
# 5. Après validation, merger dans dev
git checkout dev
git merge feature/ma-fonctionnalite
git push origin dev
# 6. Quand prĂŞt pour la production, merger dev dans main
git checkout main
git merge dev
git push origin main # Déclenche le déploiement automatiqueDans le dossier client/ :
# Démarrer le serveur de développement
npm run dev
# Linter le code
npm run lint
# Vérifier les types TypeScript
npm run typecheck
# Build de production
npm run build
# Prévisualiser le build de production
npm run previewLe projet utilise GitHub Actions pour l'intégration et le déploiement continus.
Le pipeline CI s'exécute automatiquement sur :
- Push sur les branches
devetmain - Pull Requests vers
devetmain
- Lint Commits : Vérifie que les messages de commit respectent le format Conventional Commits
- Lint Code : Exécute ESLint pour vérifier la qualité du code
- Type Check : Vérifie les types TypeScript
- Security Scan : Audit de sécurité npm (détecte les vulnérabilités CRITICAL et HIGH)
- Build : Compile l'application avec Vite
Toutes ces étapes doivent réussir pour que le pipeline soit validé.
Le déploiement s'exécute automatiquement uniquement sur la branche main :
- Build de production
- Déploiement sur Vercel
Le projet utilise le format Conventional Commits pour standardiser les messages de commit.
<type>(<scope>): <subject>
[body optionnel]
[footer optionnel]
feat: Nouvelle fonctionnalitéfix: Correction de bugdocs: Documentationstyle: Formatage, point-virgules manquants, etc. (pas de changement de code)refactor: Refactoring du codeperf: Amélioration des performancestest: Ajout ou modification de testsbuild: Changements du système de buildci: Changements de configuration CIchore: Tâches de maintenancerevert: Annulation d'un commit précédent
# âś… Valides
git commit -m "feat: ajouter la fonctionnalité de connexion"
git commit -m "fix(client): corriger le bug de chargement"
git commit -m "docs: mettre Ă jour le README"
git commit -m "refactor: réorganiser le code d'authentification"
git commit -m "feat(auth): ajouter l'authentification OAuth
Implémente l'authentification via Google et GitHub"
# ❌ Invalides
git commit -m "ajouter fonctionnalité" # Manque le type
git commit -m "Fix bug" # Type en majuscule
git commit -m "feat: Ajouter fonctionnalité" # Sujet en majusculeLe workflow CI vérifie automatiquement le format des commits et bloque le merge si le format n'est pas respecté.
Le déploiement sur Vercel se fait automatiquement à chaque push sur la branche main.
# Installer Vercel CLI globalement
npm install -g vercel
# Se connecter Ă Vercel
vercel login
# Déployer
vercel --prod-
Créer une branche depuis
devgit checkout dev git pull origin dev git checkout -b feature/ma-fonctionnalite
-
Faire les modifications en respectant les conventions commmit :
- Format Conventional Commits pour les messages
- Code linté et sans erreurs TypeScript
- Tests passants
-
Pousser et créer une Pull Request vers
devgit push origin feature/ma-fonctionnalite
-
Attendre la validation du pipeline CI
-
Après review et validation, la PR sera mergée dans
dev -
Pour déployer en production, créer une PR de
devversmain
- Le pipeline CI doit passer avant tout merge
- Les commits doivent respecter le format Conventional Commits
- Ne jamais push directement sur
mainsans passer pardev - Le déploiement sur Vercel se fait uniquement depuis
main