etbat-gironde/etbat icon
public
Published on 5/28/2025
etbat

Rules

🚀 RĂšgles de DĂ©veloppement EtBat

Build & Development Commands

  • Langue : uniquement en Français
  • DĂ©marrage dĂ©veloppement : npm run dev ou npm run dev:tracked pour le suivi automatique
  • Build production : npm run build - obligatoire avant tout dĂ©ploiement
  • VĂ©rification types : npm run type-check - doit passer sans erreur
  • Lint automatique : npm run lint:fix - corrige automatiquement les erreurs
  • Analyse bundle : npm run analyze - pour optimiser la taille des bundles
  • Environnement Safari : npm run dev:safari - pour tests spĂ©cifiques Safari
  • Kill serveur : npm run dev:kill - arrĂȘt propre du serveur de dĂ©veloppement
  • Synchronisation complĂšte : npm run sync:all - lint + tests + commit automatique
  • Audit sĂ©curitĂ© : npm run security:audit - vĂ©rification complĂšte sĂ©curitĂ©
  • Validation SEO : npm run seo:validate - tests complets SEO et performances

Testing Guidelines

  • Tests unitaires : npm run test:unit - obligatoire avant chaque commit
  • Tests d'intĂ©gration : npm run test:integration - validation des API et DB
  • Tests E2E : npm run test:e2e - parcours utilisateur complets
  • Tests avec UI : npm run test:e2e:ui - interface graphique Playwright
  • Couverture de code : npm run test:coverage - minimum 80% requis
  • Tests en mode watch : npm run test:watch - dĂ©veloppement continu
  • Tests complets : npm run test:all - toute la suite de tests
  • Tests trackĂ©s : npm run test:tracked - avec suivi automatique des mĂ©triques
  • Tests sĂ©curitĂ© : npm run security:test - validation des vulnĂ©rabilitĂ©s
  • Setup base test : npm run db:test:setup - rĂ©initialisation environnement test

RĂšgles de Test Obligatoires

  • ✅ Chaque nouveau composant React doit avoir des tests unitaires
  • ✅ Chaque nouvelle route API doit avoir des tests d'intĂ©gration
  • ✅ Les fonctionnalitĂ©s critiques doivent avoir des tests E2E
  • ✅ Couverture minimum 80% pour les nouvelles fonctionnalitĂ©s
  • ✅ Tests de sĂ©curitĂ© obligatoires pour les endpoints sensibles
  • ❌ Aucun commit sans que npm run test:unit passe

Code Style & Guidelines

  • Prettier : Formatage automatique avec prettier --write
  • ESLint : Configuration Next.js stricte + rĂšgles personnalisĂ©es
  • TypeScript : Mode strict activĂ© - types explicites obligatoires
  • Husky : Hooks Git automatiques pour validation pre-commit
  • Lint-staged : Validation automatique des fichiers modifiĂ©s

Standards de Code Obligatoires

  • ✅ TypeScript strict : Pas de any, interfaces explicites
  • ✅ Nomenclature : PascalCase pour composants, camelCase pour fonctions
  • ✅ Imports : Chemins absolus avec alias @/ obligatoires
  • ✅ Composants : Props typĂ©es avec interfaces dĂ©diĂ©es
  • ✅ Hooks : PrĂ©fixe use et logique mĂ©tier externalisĂ©e
  • ✅ API Routes : Validation Zod obligatoire sur toutes entrĂ©es
  • ✅ Error Handling : Try-catch systĂ©matique + logs Sentry
  • ✅ Performance : React.memo, useCallback, useMemo quand appropriĂ©
  • ✅ SĂ©curitĂ© : Validation CSRF, rate limiting, Ă©chappement XSS
  • ❌ Interdictions : console.log en production, any TypeScript

Architecture des Dossiers

src/
├── app/                 # Next.js App Router
├── components/          # Composants rĂ©utilisables
│   ├── ui/             # Composants UI de base
│   ├── location/       # Composants mĂ©tier location
│   └── simulator/      # Composants simulateur
├── hooks/              # Hooks personnalisĂ©s
├── lib/                # Utilitaires et configurations
├── types/              # Types TypeScript globaux
└── utils/              # Fonctions utilitaires

Documentation Guidelines

  • Standards stricts : Suivre docs/DOCUMENTATION_STANDARDS.md obligatoirement
  • Validation automatique : ./scripts/validate-docs.sh doit passer
  • Composants : Documentation .md obligatoire pour chaque composant
  • API Routes : Documentation complĂšte avec exemples JSON et TypeScript
  • Changelog : Mise Ă  jour obligatoire avant chaque merge en main

Documentation Obligatoire

  • ✅ Chaque composant React → docs/COMPONENTS/[category]/ComponentName.md
  • ✅ Chaque route API → docs/API/[RESOURCE]_ENDPOINTS.md
  • ✅ ModĂšles Prisma → docs/DATABASE/PRISMA_MODELS.md
  • ✅ Modifications → CHANGELOG.md mis Ă  jour avant merge
  • ✅ Breaking changes → Documentation migration fournie
  • ✅ Exemples fonctionnels → Tous les exemples doivent ĂȘtre testĂ©s

Scripts de Validation Documentation

# Validation complĂšte documentation
./scripts/validate-docs.sh

# Validation composants uniquement
./scripts/validate-components-docs.sh

# Validation API uniquement
./scripts/validate-api-docs.sh

# Génération auto documentation composant
node scripts/generate-component-doc.js ComponentName category

Template Structure Obligatoire

# đŸ§© ComponentName

## 📋 Description

[Description détaillée obligatoire]

## 🎯 Utilisation

[Import et exemple basique]

## 🔧 Props TypeScript

[Interface complÚte avec tableau détaillé]

## đŸ§Ș Tests

[Tests unitaires et d'accessibilité]

## 📝 Exemples Complets

[Exemples simples et avancés fonctionnels]

Base de Données & Prisma

  • GĂ©nĂ©ration client : npm run db:generate aprĂšs modification schema
  • Push dĂ©veloppement : npm run db:push pour changements rapides
  • Migrations : npm run db:migrate pour changements versionnĂ©s
  • Production : npm run db:migrate:prod dĂ©ploiement production uniquement
  • Seeding : npm run db:seed donnĂ©es de test et dĂ©mo
  • Interface graphique : npm run db:studio exploration des donnĂ©es

RÚgles Base de Données

  • ✅ Migrations : Obligatoires pour tous changements de schema
  • ✅ Relations : Contraintes Foreign Keys strictes
  • ✅ Index : Performance sur les champs de recherche frĂ©quents
  • ✅ Validation : Types Zod coherents avec schema Prisma
  • ✅ Seeds : DonnĂ©es de test cohĂ©rentes et rĂ©alistes
  • ❌ Direct DB changes : Pas de modification directe en production

Workflow Git Obligatoire

Pre-commit (Automatique)

npm run pre-commit
# Exécute : lint:fix + type-check + test:unit

Post-commit (Automatique)

npm run post-commit
# Exécute : update-progress (tracking)

Pre-push (Automatique)

npm run test:unit
# Validation finale avant push

Branches et Merges

  • ✅ Feature branches : feature/nom-fonctionnalite
  • ✅ Hotfix branches : hotfix/description-probleme
  • ✅ Documentation : Obligatoire avant merge main
  • ✅ Tests : Tous les tests doivent passer
  • ✅ Review : Code review obligatoire par un pair
  • ❌ Direct push main : Interdit, passer par PR uniquement

Sécurité & Performance

Sécurité Obligatoire

  • ✅ Rate limiting : 100 req/min par IP sur APIs publiques
  • ✅ CSRF Protection : Tokens sur tous POST/PUT/DELETE
  • ✅ Input validation : Zod schemas sur toutes entrĂ©es
  • ✅ SQL Injection : Prisma ORM uniquement, pas de raw queries
  • ✅ XSS Protection : Échappement automatique, validation HTML
  • ✅ Helmet CSP : Content Security Policy strict
  • ✅ Audit rĂ©gulier : npm audit + scan sĂ©curitĂ© automatique

Performance Requise

  • ✅ LCP < 2.5s : Largest Contentful Paint
  • ✅ FID < 100ms : First Input Delay
  • ✅ CLS < 0.1 : Cumulative Layout Shift
  • ✅ Lighthouse Score > 90 : Performance, AccessibilitĂ©, SEO
  • ✅ Bundle size : Monitoring avec npm run analyze
  • ✅ Cache Redis : DonnĂ©es frĂ©quentes en cache
  • ✅ Images optimisĂ©es : WebP + responsive + lazy loading

Monitoring & Logs

SystÚmes Activés

  • Sentry : Erreurs et performance en temps rĂ©el
  • Datadog RUM : Monitoring utilisateur rĂ©el
  • Vercel Analytics : MĂ©triques de performance
  • Custom Logs : SystĂšme de logging personnalisĂ©

Métriques Surveillées

  • ✅ Uptime > 99.9% : DisponibilitĂ© service
  • ✅ Error Rate < 0.1% : Taux d'erreur acceptĂ©
  • ✅ Response Time < 500ms : Temps de rĂ©ponse API
  • ✅ User Experience : Core Web Vitals en continu

Scripts de Maintenance

Backups Automatiques

npm run security:backup        # Backup manuel complet
npm run security:backup:schedule  # Backup programmé

Tracking et Progress

npm run dev:tracked           # Développement avec tracking
npm run test:tracked          # Tests avec métriques
npm run update-progress       # Mise à jour métriques projet

Tests Spécialisés

npm run static:test           # Tests génération statique
npm run static:build          # Build et tests statiques
npm run lighthouse:test       # Tests Lighthouse automatiques

đŸš« Interdictions Absolues

  • ❌ Merge sans tests : Tous les tests doivent passer
  • ❌ Push sans documentation : Documentation obligatoire
  • ❌ console.log production : Utiliser le systĂšme de logs
  • ❌ Types any : TypeScript strict obligatoire
  • ❌ Credentials en dur : Variables d'environnement uniquement
  • ❌ Direct DB queries : Prisma ORM obligatoire
  • ❌ Dependances non auditĂ©es : npm audit doit passer

✅ Checklist Pre-Merge

  • [ ] Tests unitaires passent : npm run test:unit
  • [ ] Tests d'intĂ©gration passent : npm run test:integration
  • [ ] Validation TypeScript : npm run type-check
  • [ ] Lint sans erreur : npm run lint
  • [ ] Documentation complĂšte et validĂ©e : ./scripts/validate-docs.sh
  • [ ] Changelog mis Ă  jour avec dĂ©tails prĂ©cis
  • [ ] Audit sĂ©curitĂ© passĂ© : npm run security:audit
  • [ ] Performance validĂ©e : npm run lighthouse:test
  • [ ] Review de code effectuĂ©e par un pair
  • [ ] Breaking changes documentĂ©s si applicable

📝 Note : Ces rĂšgles sont obligatoires et non nĂ©gociables. Elles garantissent la qualitĂ©, la sĂ©curitĂ© et la maintenabilitĂ© du projet EtBat. En cas de doute, consultez docs/DOCUMENTATION_STANDARDS.md ou demandez une review d'Ă©quipe.