đ 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.