Application Nuxt.js moderne pour l'analyse de sécurité et l'audit de sites web avec workflow GitFlow automatisé et gestion intelligente des versions.
- 🚀 Fonctionnalités
- 🏗️ Architecture
- 📱 Captures d'écran
- 🚀 Démarrage rapide
- 📚 Documentation
- 🔧 Scripts et commandes
- 🏷️ Gestion des versions
- 🤝 Contribution
- 🧪 Tests
- 🚀 Déploiement
- 📊 Structure du projet
- 🔒 Sécurité
- 📈 Performance
- 🌐 Internationalisation
- 📋 Prérequis
- ❓ FAQ
- 📄 Licence
- Analyse des en-têtes HTTP : Vérification des en-têtes de sécurité (CSP, HSTS, X-Frame-Options)
- Test SSL/TLS : Validation des certificats et configuration de sécurité
- Scan de vulnérabilités : Détection automatique des failles de sécurité connues
- Lighthouse Security : Intégration avec Google Lighthouse pour l'audit complet
- Rapports détaillés : Génération de rapports PDF et export des données
- Vue d'ensemble en temps réel : Monitoring des scores de sécurité
- Graphiques interactifs : Visualisation des métriques avec Chart.js
- Comparaison de projets : Analyse comparative entre différents sites
- Historique des audits : Suivi de l'évolution de la sécurité
- Alertes intelligentes : Notifications pour les problèmes critiques
- Support FR/EN : Interface complètement traduite avec i18n
- Mode sombre/clair : Thèmes adaptatifs avec persistance
- Responsive design : Optimisé pour tous les appareils
- Accessibilité WCAG : Conformité aux standards d'accessibilité
- Suite Cypress E2E : Tests automatisés complets
- Tests de régression : Validation continue des fonctionnalités
- Tests de performance : Monitoring des métriques de performance
- Tests de sécurité : Validation des mesures de sécurité
- Framework : Nuxt.js 4 avec Vue 3 Composition API
- Styling : Tailwind CSS avec système de thèmes personnalisé
- State Management : Pinia avec persistance automatique
- Routing : Vue Router avec middleware d'authentification
- Icons : Nuxt Icon avec collections Fluent et Heroicons
- Runtime : Nuxt Nitro (SSR/SSG hybride)
- API Routes : Endpoints RESTful pour les services externes
- Middleware : Authentification, validation, rate limiting
- Prerendering : Génération statique pour Netlify
- Cloud Database : Firebase Firestore
- Authentification : Firebase Auth avec gestion des rôles
- Storage : Firebase Storage pour les fichiers
- Real-time : Synchronisation en temps réel des données
- Hébergement : Netlify avec build local
- CDN : Distribution globale avec Netlify Edge
- Functions : Serverless functions pour les tâches lourdes
- Monitoring : Logs et métriques intégrés
Note : Les captures d'écran seront ajoutées ici pour montrer l'interface utilisateur
- Vue d'ensemble des projets
- Scores de sécurité en temps réel
- Graphiques de tendances
- Formulaires d'analyse
- Résultats détaillés
- Recommandations d'amélioration
# Cloner le repository
git clone https://github.com/TakCastel/serpenter.git
cd serpenter
# Installer les dépendances
npm install
# Configurer les variables d'environnement
cp .env.example .env.local
# Éditer .env.local avec vos clés Firebase# Créer un projet Firebase
# Activer Firestore, Auth et Storage
# Copier les clés dans .env.local
NUXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NUXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
# ... autres variables Firebase# Mode développement
npm run dev
# Build de production
npm run generate
# Tests E2E
npm run test:e2e- Guide du Workflow - GitFlow et déploiement Netlify
- Documentation Nuxt - Guide officiel Nuxt.js
- Guide Cypress - Tests end-to-end
- Architecture - Détails techniques et décisions
- API Reference - Documentation des endpoints
- Database Schema - Structure des données Firestore
npm run dev # Serveur de développement (localhost:3000)
npm run build # Build de production
npm run generate # Build statique pour Netlify
npm run preview # Prévisualiser le build de productionnpm run test:e2e # Tests end-to-end Cypress
npm run test:e2e:headless # Tests Cypress en mode headless
npm run test:e2e:open # Interface Cypress interactive
npm run test:smoke # Tests de fumée rapides
npm run test:auth # Tests d'authentification
npm run test:projects # Tests des projets
npm run test:checklist # Tests des checklists
npm run test:ui # Tests de l'interfacenpm run build:netlify # Build optimisé pour Netlify
npm run deploy:netlify # Déploiement manuel sur Netlify
npm run publish:netlify # Build + déploiement completnpm run version:show # Afficher la version actuelle
npm run version:auto:feature # Incrémenter version feature (1.0.0 → 1.1.0)
npm run version:auto:hotfix # Incrémenter version hotfix (1.0.0 → 1.0.1)
npm run version:auto:major # Incrémenter version majeure (1.0.0 → 2.0.0)
npm run version:patch # Incrémenter patch manuellement
npm run version:minor # Incrémenter minor manuellement
npm run version:major # Incrémenter major manuellementLe projet utilise le Semantic Versioning (SemVer) avec gestion automatique :
MAJOR(2.0.0) : Breaking changes, changements incompatiblesMINOR(1.1.0) : Nouvelles fonctionnalités, compatiblesPATCH(1.0.1) : Corrections de bugs, compatibles
- Feature → develop :
MINOR(1.0.0 → 1.1.0) - Hotfix → main :
PATCH(1.0.0 → 1.0.1) - Develop → main :
MINOR(1.1.0 → 1.2.0) - Breaking change :
MAJOR(1.0.0 → 2.0.0)
# ⚡ Automatique (recommandé)
.\scripts\merge-with-version.ps1 -MergeType "feature" -BranchName "feature/nom-feature"
.\scripts\merge-with-version.ps1 -MergeType "hotfix" -BranchName "hotfix/nom-hotfix"
.\scripts\merge-with-version.ps1 -MergeType "develop" -BranchName "develop" -PushTag
# Script de version intelligent
npm run version:auto # Détection automatique du typeChaque version est automatiquement taguée :
v1.0.0,v1.0.1,v1.1.0, etc.- Tags poussés automatiquement avec
-PushTag - Historique complet des releases dans Git
- Messages de commit standardisés
# Mettre à jour develop
git checkout develop
git pull origin develop
# Créer la branche feature
git checkout -b feature/nom-de-votre-feature# Faire vos modifications
# Tester localement
npm run dev
npm run test:e2e
# Commiter régulièrement
git add .
git commit -m "feat(scope): description de la modification"# Merger vers develop
.\scripts\merge-with-version.ps1 -MergeType "feature" -BranchName "feature/nom-feature"
# Merger vers main
.\scripts\merge-with-version.ps1 -MergeType "develop" -BranchName "develop" -PushTag# Format
type(scope): description courte
# Types
feat: nouvelle fonctionnalité
fix: correction de bug
docs: documentation
style: formatage, espaces, etc.
refactor: refactorisation
test: ajout/modification de tests
chore: tâches de maintenance
# Exemples
git commit -m "feat(auth): ajout de la validation 2FA"
git commit -m "fix(dashboard): correction du calcul des scores"
git commit -m "docs: mise à jour du guide utilisateur"
git commit -m "build: mise à jour des artefacts Netlify"- Code conforme aux standards ESLint
- Tests passent (
npm run test:e2e) - Build de production fonctionne (
npm run generate) - Documentation mise à jour
- Commit message suit les conventions
- Branche feature supprimée après merge
- Tests unitaires : Composants Vue et utilitaires
- Tests d'intégration : API et services
- Tests E2E : Scénarios utilisateur complets avec Cypress
- Tests de performance : Lighthouse et métriques Web Vitals
cypress/
├── e2e/ # Tests end-to-end
│ ├── auth.cy.js # Tests d'authentification
│ ├── dashboard.cy.js # Tests du dashboard
│ ├── projects.cy.js # Tests des projets
│ └── smoke.cy.js # Tests de fumée
├── fixtures/ # Données de test
├── support/ # Commandes et configuration
└── scripts/ # Scripts utilitaires
# Tests interactifs
npm run cypress:open
# Tests en CI
npm run test:e2e:headless
# Tests spécifiques
npm run test:smoke # Tests de fumée
npm run test:auth # Tests d'authentification
npm run test:projects # Tests des projetsLe projet utilise Netlify avec build local pour un contrôle total :
- Build local :
npm run generatecrée une version statique - Déploiement : Fichiers copiés dans
.netlify/publish/ - SSR : Prerendering complet pour des performances optimales
- Versioning : Chaque déploiement correspond à un commit Git
# 1. Générer la version statique
npm run generate
# 2. Les fichiers sont automatiquement copiés vers .netlify/publish/
# 3. Commiter et pousser (déclenche le déploiement)
git add .
git commit -m "build: mise à jour des artefacts de déploiement"
git push origin main✅ SSR fonctionnel : Prerendering complet des pages
✅ Performance : Fichiers statiques servis rapidement
✅ Contrôle : Build local, pas de surprise sur Netlify
✅ Versioning : Chaque déploiement correspond à un commit Git
✅ Rollback : Retour facile à une version précédente
serpenter/
├── app/ # Code source principal
│ ├── components/ # Composants Vue réutilisables
│ ├── composables/ # Logique métier partagée
│ ├── layouts/ # Layouts de l'application
│ ├── middleware/ # Middleware d'authentification
│ ├── pages/ # Pages et routing
│ ├── plugins/ # Plugins Nuxt
│ ├── stores/ # Stores Pinia
│ └── utils/ # Utilitaires et helpers
├── cypress/ # Tests end-to-end
├── docs/ # Documentation technique
├── netlify/ # Configuration Netlify
├── public/ # Assets statiques
├── scripts/ # Scripts de build et déploiement
├── server/ # API routes et middleware
├── .netlify/ # Artefacts de déploiement
├── nuxt.config.ts # Configuration Nuxt
├── netlify.toml # Configuration Netlify
└── package.json # Dépendances et scripts
- Dashboard : Interface principale avec métriques
- SecurityScanner : Scanner de sécurité automatisé
- ProjectSelector : Gestion des projets
- ChecklistManager : Gestion des checklists de sécurité
- AuthSystem : Système d'authentification complet
- Authentification Firebase : Gestion sécurisée des utilisateurs
- Validation des entrées : Protection contre les injections
- En-têtes de sécurité : CSP, HSTS, X-Frame-Options
- Rate limiting : Protection contre les attaques par déni de service
- HTTPS obligatoire : Chiffrement des communications
- Validation des permissions : Contrôle d'accès granulaire
- Variables d'environnement pour les secrets
- Validation côté client et serveur
- Sanitisation des données utilisateur
- Logs de sécurité pour audit
- Mises à jour régulières des dépendances
- Code splitting : Chargement à la demande des composants
- Lazy loading : Images et composants chargés au besoin
- Prerendering : Pages générées statiquement
- CDN : Distribution globale avec Netlify Edge
- Compression : Gzip et Brotli automatiques
- Cache : Stratégies de cache optimisées
- Lighthouse Score : >90 sur tous les critères
- First Contentful Paint : <1.5s
- Largest Contentful Paint : <2.5s
- Cumulative Layout Shift : <0.1
- First Input Delay : <100ms
- Français : Langue par défaut
- Anglais : Support complet
- i18n : Gestion automatique des traductions
- Détection automatique : Basée sur les préférences navigateur
- Persistance : Choix de langue sauvegardé
i18n/
├── fr.json # Traductions françaises
├── en.json # Traductions anglaises
└── locales/ # Fichiers de traduction
- OS : Windows 10+, macOS 10.15+, Ubuntu 18.04+
- Node.js : Version 20.19.4 ou supérieure
- npm : Version 9+ ou yarn 1.22+
- Git : Version 2.30+ avec GitFlow configuré
- Chrome : Version 90+
- Firefox : Version 88+
- Safari : Version 14+
- Edge : Version 90+
- VS Code : Éditeur recommandé
- Cypress : Tests E2E
- Lighthouse : Audit de performance
- DevTools : Outils de développement navigateur
Q: Comment démarrer rapidement le projet ? R: Suivez le guide de démarrage rapide ci-dessus. Assurez-vous d'avoir Node.js 20+ et configurez Firebase.
Q: Comment gérer les versions automatiquement ?
R: Utilisez les scripts automatisés : .\scripts\merge-with-version.ps1 -MergeType "feature" -BranchName "feature/nom"
Q: Comment déployer sur Netlify ?
R: Le déploiement est automatique via Git. Poussez sur main et Netlify déploiera automatiquement.
Q: Comment ajouter une nouvelle fonctionnalité ?
R: Créez une branche feature depuis develop, développez, testez, puis utilisez le script de merge automatisé.
Q: Comment configurer Firebase ?
R: Créez un projet Firebase, activez Firestore/Auth/Storage, et copiez les clés dans .env.local.
Q: Comment exécuter les tests ?
R: npm run test:e2e pour tous les tests, npm run cypress:open pour l'interface interactive.
Q: Comment optimiser les performances ?
R: Utilisez npm run generate pour le build de production, et surveillez les métriques Lighthouse.
Q: Comment gérer les traductions ?
R: Modifiez les fichiers dans i18n/locales/ et utilisez la composable useI18n().
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
- Nuxt.js : Framework Vue.js moderne
- Tailwind CSS : Framework CSS utilitaire
- Firebase : Backend-as-a-Service
- Cypress : Tests end-to-end
- Netlify : Hébergement et déploiement
- Issues : GitHub Issues
- Discussions : GitHub Discussions
- Documentation : Guide du Workflow
💡 Important : Consultez toujours le WORKFLOW_GUIDE.md avant de commencer une nouvelle feature !
⭐ N'oubliez pas de mettre une étoile au projet si vous l'aimez !